Class: Uplink::Upload

Inherits:
Object
  • Object
show all
Defined in:
lib/uplink/upload.rb

Instance Method Summary collapse

Constructor Details

#initialize(upload_result) ⇒ Upload

Returns a new instance of Upload.



5
6
7
# File 'lib/uplink/upload.rb', line 5

def initialize(upload_result)
  @upload = upload_result[:upload]
end

Instance Method Details

#abortObject



44
45
46
47
48
49
# File 'lib/uplink/upload.rb', line 44

def abort
  error = UplinkLib.uplink_upload_abort(@upload)
  ErrorUtil.handle_error(error)
ensure
  UplinkLib.uplink_free_error(error) if error
end

#commitObject



37
38
39
40
41
42
# File 'lib/uplink/upload.rb', line 37

def commit
  error = UplinkLib.uplink_upload_commit(@upload)
  ErrorUtil.handle_error(error)
ensure
  UplinkLib.uplink_free_error(error) if error
end

#infoObject



51
52
53
54
55
56
57
58
# File 'lib/uplink/upload.rb', line 51

def info
  result = UplinkLib.uplink_upload_info(@upload)
  ErrorUtil.handle_result_error(result)

  Object.new(result)
ensure
  UplinkLib.uplink_free_object_result(result) if result
end

#set_custom_metadata(custom) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/uplink/upload.rb', line 28

def (custom)
   = UplinkUtil.(custom)

  error = UplinkLib.(@upload, )
  ErrorUtil.handle_error(error)
ensure
  UplinkLib.uplink_free_error(error) if error
end

#write(bytes, length) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/uplink/upload.rb', line 9

def write(bytes, length)
  raise ArgumentError, 'bytes argument is nil' if bytes.nil?

  if bytes.is_a?(Array) && bytes.first.is_a?(Integer)
    mem_bytes = FFI::MemoryPointer.new(:uint8, length)
    mem_bytes.write_array_of_uint8(bytes)
  else
    mem_bytes = bytes
  end

  result = UplinkLib.uplink_upload_write(@upload, mem_bytes, length)
  abort unless result[:error].null?
  ErrorUtil.handle_result_error(result)

  result[:bytes_written]
ensure
  UplinkLib.uplink_free_write_result(result) if result
end