19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/em-riak/map_reduce.rb', line 19
def submit(*args)
mode_or_string,params,result_handler,callback,callback_proc=args.first
if mode_or_string.class==Hash
submit_work=mode_or_string
elsif mode_or_string.class==Symbol
map_reduce_work=MRMAPPER[mode_or_string]
submit_work=map_reduce_work.gsub(/@!(.{1,}?)!@/){|m| params[$1] }
submit_work=eval(submit_work)
end
url="/mapred"
map_reduce_json=EmRiak.send :json_encode ,submit_work
data={:head=>{"Content-Type"=>"application/json"},:body=>map_reduce_json}
callback_proc=Proc.new{|results| callback.call(callback_handler(results,result_handler)) } if callback
res=EmRiak.http("post","mapred",url,data,callback_proc)
res=callback_handler(res,result_handler) if !callback_proc
res
rescue Exception=>e
puts "Map Reduce Error #{e} #{e.backtrace}"
[]
end
|