Module: Krypt::BaseCodec
- Defined in:
- lib/krypt/codec/base_codec.rb
Overview
:nodoc:
Instance Method Summary collapse
- #generic_read(len, read_len) ⇒ Object
- #generic_write(data, blk_size) ⇒ Object
- #update_buffer(data, dlen, remainder) ⇒ Object
Instance Method Details
#generic_read(len, read_len) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/krypt/codec/base_codec.rb', line 3 def generic_read(len, read_len) data = @io.read(read_len) data = yield data if data if @buf data = data || "" data = @buf << data end return data unless len && data dlen = data.size remainder = dlen - len update_buffer(data, dlen, remainder) data end |
#generic_write(data, blk_size) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/krypt/codec/base_codec.rb', line 17 def generic_write(data, blk_size) return 0 unless data @write = true data = @buf ? @buf << data : data.dup dlen = data.size remainder = dlen % blk_size update_buffer(data, dlen, remainder) @io.write(yield data) if data.size > 0 end |
#update_buffer(data, dlen, remainder) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/krypt/codec/base_codec.rb', line 27 def update_buffer(data, dlen, remainder) if remainder > 0 @buf = data.slice!(dlen - remainder, remainder) else @buf = nil end end |