Sha256: 3d82fbde098e89d98a8965f55046d4cc2a1461e5173cc32f14b583eaa05ca53f

Contents?: true

Size: 534 Bytes

Versions: 7

Compression:

Stored size: 534 Bytes

Contents

Wukong.processor(:accumulator) do
  attr_accessor :count, :current

  def reset!() @current = nil ; @count = 0 ; end

  def report_then_reset!(&blk)
    yield [current, count].join("\t") unless current.nil?
    reset!
  end

  def accumulate(word, seen)
    @current = word if @current.nil?
    @count  += seen
  end

  def process(pair, &blk)
    word, seen = pair.split("\t")
    report_then_reset!(&blk) unless word == current
    accumulate(word, seen.to_i)
  end
  
  def finalize(&blk)
    report_then_reset!(&blk)
  end
  
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
ul-wukong-4.1.1 examples/basic/word_count/accumulator.rb
ul-wukong-4.1.0 examples/basic/word_count/accumulator.rb
wukong-4.0.0 examples/basic/word_count/accumulator.rb
wukong-3.0.1 examples/basic/word_count/accumulator.rb
wukong-3.0.0 examples/basic/word_count/accumulator.rb
wukong-3.0.0.pre3 examples/basic/word_count/accumulator.rb
wukong-3.0.0.pre2 examples/word_count/accumulator.rb