class Basil::Buffer
Public Class Methods
new(args={})
click to toggle source
Create a new buffer
# File lib/basil/buffer.rb, line 7 def initialize(args={}) @buffer = Hash.new { |h, k| h[k] = Array.new } @buffer_max = args[:buffer_max] || 100_000 end
Public Instance Methods
[](k)
click to toggle source
# File lib/basil/buffer.rb, line 32 def [](k) @buffer[k] end
add_to(bucket, obj)
click to toggle source
Add an object to the buffer
# File lib/basil/buffer.rb, line 15 def add_to(bucket, obj) @buffer[bucket] << obj 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()
click to toggle source
Writes out leftover objects
# File lib/basil/buffer.rb, line 39 def finalize @buffer.each_key do |bucket| File.open(bucket, 'a+') do |out| @buffer[bucket].each do |v| out.puts v end end end end