Class: S3Gzip::Writer

Inherits:
Object
  • Object
show all
Defined in:
lib/s3gzip/writer.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access_key_id, secret_access_key, bucket, filename) ⇒ Writer

Returns a new instance of Writer.



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

def initialize(access_key_id, secret_access_key, bucket, filename)

  @access_key_id = access_key_id
  @secret_access_key = secret_access_key
  @bucket = bucket
  @filename = filename
  
  s3 = AWS::S3.new(
    :access_key_id => access_key_id,
    :secret_access_key => secret_access_key
  )
  bucket = s3.buckets[bucket]
  s3_object = bucket.objects[filename]
  @io = S3io.open(s3_object, 'w') 
  @gzip_writer = Zlib::GzipWriter.new(@io)
end

Instance Attribute Details

#bucketObject (readonly)

Returns the value of attribute bucket.



6
7
8
# File 'lib/s3gzip/writer.rb', line 6

def bucket
  @bucket
end

#filenameObject (readonly)

Returns the value of attribute filename.



7
8
9
# File 'lib/s3gzip/writer.rb', line 7

def filename
  @filename
end

Class Method Details

.open(*args) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/s3gzip/writer.rb', line 41

def self.open(*args)
  writer = new(*args)
  return writer unless block_given?
  yield writer
ensure
  writer.close if block_given?
end

.write(access_key_id, secret_access_key, bucket, filename, value) ⇒ Object



49
50
51
52
53
# File 'lib/s3gzip/writer.rb', line 49

def self.write(access_key_id, secret_access_key, bucket, filename, value)
  writer = new(access_key_id, secret_access_key, bucket, filename)
  writer.write(value)
  writer.close
end

Instance Method Details

#closeObject



34
35
36
37
38
39
# File 'lib/s3gzip/writer.rb', line 34

def close
  unless self.closed?
    @gzip_writer.close
    @io=nil
  end
end

#closed?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/s3gzip/writer.rb', line 26

def closed?
  not @gzip_writer.nil? and @gzip_writer.closed?
end

#write(*args) ⇒ Object



30
31
32
# File 'lib/s3gzip/writer.rb', line 30

def write(*args)
  @gzip_writer.write(*args)
end