Class: Metacrunch::Job::Buffer

Inherits:
Object
  • Object
show all
Defined in:
lib/metacrunch/job/buffer.rb

Instance Method Summary collapse

Constructor Details

#initialize(size_or_proc) ⇒ Buffer

Returns a new instance of Buffer.



4
5
6
7
8
9
10
11
# File 'lib/metacrunch/job/buffer.rb', line 4

def initialize(size_or_proc)
  @size_or_proc = size_or_proc
  @buffer = []

  if @size_or_proc.is_a?(Numeric) && @size_or_proc <= 0
    raise ArgumentError, "Buffer size must be a posive number greater that 0."
  end
end

Instance Method Details

#buffer(data) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/metacrunch/job/buffer.rb', line 13

def buffer(data)
  @buffer << data

  case @size_or_proc
  when Numeric
    flush if @buffer.count >= @size_or_proc.to_i
  when Proc
    flush if @size_or_proc.call == true
  end
end

#flushObject



24
25
26
27
28
# File 'lib/metacrunch/job/buffer.rb', line 24

def flush
  @buffer.presence
ensure
  @buffer = []
end