Class: Lifter::FileUpload

Inherits:
Object
  • Object
show all
Defined in:
lib/lifter/file_upload.rb

Constant Summary collapse

DEFAULT_PROLOGUE_SIZE =
10 * 1024

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file, opts = {}) ⇒ FileUpload

Returns a new instance of FileUpload.



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/lifter/file_upload.rb', line 12

def initialize(file, opts = {})
  @file = file

  @hash = setup_hash(opts[:hash_method])

  @prologue_limit = opts[:prologue_size] || DEFAULT_PROLOGUE_SIZE
  @prologue = ''

  @original_request = opts[:original_request]
  @original_name = opts[:original_name]
  @param = opts[:param]
end

Instance Attribute Details

#original_nameObject (readonly)

Returns the value of attribute original_name.



10
11
12
# File 'lib/lifter/file_upload.rb', line 10

def original_name
  @original_name
end

#original_requestObject (readonly)

Returns the value of attribute original_request.



10
11
12
# File 'lib/lifter/file_upload.rb', line 10

def original_request
  @original_request
end

#paramObject (readonly)

Returns the value of attribute param.



10
11
12
# File 'lib/lifter/file_upload.rb', line 10

def param
  @param
end

#prologueObject (readonly)

Returns the value of attribute prologue.



10
11
12
# File 'lib/lifter/file_upload.rb', line 10

def prologue
  @prologue
end

Instance Method Details

#closeObject



39
40
41
# File 'lib/lifter/file_upload.rb', line 39

def close
  @file.close
end

#flushObject



35
36
37
# File 'lib/lifter/file_upload.rb', line 35

def flush
  @file.flush
end

#full_pathObject



51
52
53
# File 'lib/lifter/file_upload.rb', line 51

def full_path
  File.expand_path(@file.path)
end

#hashObject



55
56
57
# File 'lib/lifter/file_upload.rb', line 55

def hash
  @hash.hexdigest
end

#mv(new_path) ⇒ Object



47
48
49
# File 'lib/lifter/file_upload.rb', line 47

def mv(new_path)
  FileUtils.mv(full_path, new_path)
end

#rmObject



43
44
45
# File 'lib/lifter/file_upload.rb', line 43

def rm
  FileUtils.rm(full_path)
end

#write(data) ⇒ Object



25
26
27
28
29
30
31
32
33
# File 'lib/lifter/file_upload.rb', line 25

def write(data)
  @file.write(data)

  @hash << data

  if @prologue.length < @prologue_limit
    @prologue << data[0, @prologue_limit - @prologue.length]
  end
end