class Dag::Object

Public Class Methods

new(api, bucket_name, object_name, opts = {}) click to toggle source
Calls superclass method Dag::Model::new
# File lib/dag/client/model/object.rb, line 3
def initialize(api, bucket_name, object_name, opts = {})
  super(api)
  @bucket = bucket_name
  @name = object_name
  @opts = opts
end

Public Instance Methods

delete() click to toggle source
# File lib/dag/client/model/object.rb, line 52
def delete
  @api.delete_object(@bucket, @name)
end
etag() click to toggle source
# File lib/dag/client/model/object.rb, line 18
def etag
  @opts["ETag"][0]
end
lastmodified() click to toggle source
# File lib/dag/client/model/object.rb, line 22
def lastmodified
  Time.parse(@opts["LastModified"][0])
end
name() click to toggle source
# File lib/dag/client/model/object.rb, line 10
def name
  @name
end
read(range = nil) click to toggle source
# File lib/dag/client/model/object.rb, line 26
def read(range = nil)
  @api.get_object(@bucket, @name, range)
end
size() click to toggle source
# File lib/dag/client/model/object.rb, line 14
def size
  @opts["Size"][0].to_i
end
write(data, options = {}) click to toggle source
# File lib/dag/client/model/object.rb, line 30
def write(data, options = {})
  if data.is_a?(String)
    data = StringIO.new(data)
  elsif data.is_a?(Pathname)
    data = File.open(data, 'rb')
  elsif data.respond_to?(:read) && data.respond_to?(:eof?)
  end

  unless options[:multipart]
    @api.create_object(@bucket, @name, options) do
      data
    end
  else
    @api.create_multipart_object(@bucket, @name, options) do
      data
    end
  end
  data.close

  nil
end