Sha256: 52aedef6a4829ce0d96fd94428fe883735b8625f87982e8872ed20efbb838fb9
Contents?: true
Size: 953 Bytes
Versions: 5
Compression:
Stored size: 953 Bytes
Contents
module S3io def self.open(s3object, mode_string = 'r', options = {}, &block) wrapper_class = case mode_string when 'r' ReadWrapper when 'w' WriteWrapper else fail "S3IO only supports 'r' or 'w' as access modes" end wrapper = wrapper_class.new(s3object, options) if block_given? result = yield wrapper if block_given? wrapper.close return result else return wrapper end end # This class wraps an AWS S3 object in order to provide IO-like API. # S3 objects wrapped this way can be used in methods that would otherwise expect an instance of File, StringIO etc. class Wrapper # Wraps an AWS::S3::S3Object into IO-like object. # # @param [AWS::S3::S3Object] s3object an object to wrap def initialize(s3object) @s3object = s3object @pos = 0 end def close @s3object = nil @pos = 0 return nil end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
s3io-1.1.5 | lib/s3io/wrapper.rb |
s3io-1.1.4 | lib/s3io/wrapper.rb |
s3io-1.1.1 | lib/s3io/wrapper.rb |
s3io-1.1.0 | lib/s3io/wrapper.rb |
s3io-1.0.0 | lib/s3io/wrapper.rb |