public
Description: Simple map/reduce in Ruby
Homepage: http://romeda.org/blog/2007/04/mapreduce-in-36-lines-of-ruby.html
Clone URL: git://github.com/defunkt/mapreducerb.git
mapreducerb / mapreduce_runner.rb
100644 17 lines (14 sloc) 0.395 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
require 'rubygems'
require 'ruby2ruby'
require 'ringy_dingy'
 
ring_server = RingyDingy.new(nil).ring_server
 
loop do
  pid, block, element, idx = ring_server.take([:dmap, nil, nil, nil, nil]).last(4)
  begin
    result = eval(block).call(element)
  rescue Object => err
    result = err
  end
  puts "Got #{result} from #{element} for #{pid}."
  ring_server.write([:dmap, pid, result, idx])
end