Class: Lederhosen::Buffer
- Inherits:
-
Object
- Object
- Lederhosen::Buffer
- Defined in:
- lib/lederhosen/buffer.rb
Instance Method Summary collapse
- #[](k) ⇒ Object
-
#add_to(bucket, obj) ⇒ Object
Add an object to the buffer.
-
#finalize ⇒ Object
Writes out leftover objects.
-
#initialize(args = {}) ⇒ Buffer
constructor
Create a new buffer.
Constructor Details
#initialize(args = {}) ⇒ Buffer
Create a new buffer
9 10 11 12 |
# File 'lib/lederhosen/buffer.rb', line 9 def initialize(args={}) @buffer = Hash.new { |h, k| h[k] = Array.new } @buffer_max = args[:buffer_max] || 100_000 end |
Instance Method Details
#[](k) ⇒ Object
34 35 36 |
# File 'lib/lederhosen/buffer.rb', line 34 def [] k @buffer[k] end |
#add_to(bucket, obj) ⇒ Object
Add an object to the buffer
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/lederhosen/buffer.rb', line 17 def add_to bucket, obj @buffer[bucket] << obj.to_s if @buffer[bucket].length > @buffer_max # write out File.open(bucket, 'a+') do |out| @buffer[bucket].each do |v| out.puts v end end # clear that bucket @buffer[bucket].clear end end |
#finalize ⇒ Object
Writes out leftover objects
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/lederhosen/buffer.rb', line 41 def finalize @buffer.each_key do |bucket| File.open(bucket, 'a+') do |out| @buffer[bucket].each do |v| out.puts v end end end @buffer = Hash.new { |h, k| h[k] = Array.new } end |