Class: FakeAWS::S3::S3Object

Inherits:
Object
  • Object
show all
Defined in:
lib/fake_aws/s3/s3_object.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(bucket, key) ⇒ S3Object

Returns a new instance of S3Object.



6
7
8
9
10
# File 'lib/fake_aws/s3/s3_object.rb', line 6

def initialize(bucket, key)
  @bucket = bucket
  @key = key
	@metadata = {}
end

Instance Attribute Details

#bucketObject (readonly)

Returns the value of attribute bucket.



12
13
14
# File 'lib/fake_aws/s3/s3_object.rb', line 12

def bucket
  @bucket
end

#keyObject (readonly)

Returns the value of attribute key.



13
14
15
# File 'lib/fake_aws/s3/s3_object.rb', line 13

def key
  @key
end

#metadataObject (readonly)

Returns the value of attribute metadata.



14
15
16
# File 'lib/fake_aws/s3/s3_object.rb', line 14

def 
  @metadata
end

Instance Method Details

#content_lengthObject



40
41
42
43
# File 'lib/fake_aws/s3/s3_object.rb', line 40

def content_length
  must_exist!
  @data.length
end

#copy_from(source, options = {}) ⇒ Object



36
37
38
# File 'lib/fake_aws/s3/s3_object.rb', line 36

def copy_from(source, options = {})
  write(resolve_object_reference(source, options).read)
end

#copy_to(target, options = {}) ⇒ Object



32
33
34
# File 'lib/fake_aws/s3/s3_object.rb', line 32

def copy_to(target, options = {})
  resolve_object_reference(target, options).write(self.read)
end

#deleteObject



49
50
51
# File 'lib/fake_aws/s3/s3_object.rb', line 49

def delete
  @data = nil
end

#exists?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/fake_aws/s3/s3_object.rb', line 45

def exists?
  !!@data
end

#readObject



22
23
24
25
26
27
28
29
30
# File 'lib/fake_aws/s3/s3_object.rb', line 22

def read
  must_exist!
  if block_given?
    @data.each_line do |line|
      yield line
    end
  end
  @data
end

#write(data, options = {}) ⇒ Object



16
17
18
19
20
# File 'lib/fake_aws/s3/s3_object.rb', line 16

def write(data, options = {})
  data = data.read if data.respond_to?(:read)
  data = data.dup.force_encoding("BINARY") if data.respond_to?(:force_encoding)
  @data = data
end