Kouhei Sutou
null+****@clear*****
Mon Apr 21 15:56:03 JST 2014
Kouhei Sutou 2014-04-21 15:56:03 +0900 (Mon, 21 Apr 2014) New Revision: ecbf85adc194b3188557afa1609c19b3a6759d1a https://github.com/droonga/droonga-engine/commit/ecbf85adc194b3188557afa1609c19b3a6759d1a Message: Extract long code as small methods Modified files: lib/droonga/engine/command/droonga_engine.rb Modified: lib/droonga/engine/command/droonga_engine.rb (+33 -29) =================================================================== --- lib/droonga/engine/command/droonga_engine.rb 2014-04-21 15:45:57 +0900 (42ed8bf) +++ lib/droonga/engine/command/droonga_engine.rb 2014-04-21 15:56:03 +0900 (c6f7ac0) @@ -105,35 +105,7 @@ module Droonga end def run_receiver(loop, engine) - receiver_options = { - :host => @host, - :port => @port, - } - on_message = lambda do |tag, time, record| - prefix, type, *arguments = tag.split(/\./) - if type.nil? or type.empty? or type == "message" - message = record - else - message = { - "type" => type, - "arguments" => arguments, - "body" => record - } - end - reply_to = message["replyTo"] - if reply_to.is_a? String - message["replyTo"] = { - "type" => "#{message["type"]}.result", - "to" => reply_to - } - end - message - - engine.process(message) - end - receiver = FluentMessageReceiver.new(loop, - receiver_options, - &on_message) + receiver = create_receiver(loop, engine) begin receiver.start yield(receiver) @@ -141,6 +113,38 @@ module Droonga receiver.shutdown end end + + def create_receiver(loop, engine) + options = { + :host => @host, + :port => @port, + } + FluentMessageReceiver.new(loop, options) do |tag, time, record| + on_message(engine, tag, time, record) + end + end + + def on_message(engine, tag, time, record) + prefix, type, *arguments = tag.split(/\./) + if type.nil? or type.empty? or type == "message" + message = record + else + message = { + "type" => type, + "arguments" => arguments, + "body" => record + } + end + reply_to = message["replyTo"] + if reply_to.is_a? String + message["replyTo"] = { + "type" => "#{message["type"]}.result", + "to" => reply_to + } + end + + engine.process(message) + end end end end -------------- next part -------------- HTML����������������������������...Download