Navigation Menu

Skip to content

Commit

Permalink
Extract long code as small methods
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Apr 21, 2014
1 parent 4f13d15 commit ecbf85a
Showing 1 changed file with 33 additions and 29 deletions.
62 changes: 33 additions & 29 deletions lib/droonga/engine/command/droonga_engine.rb
Expand Up @@ -105,42 +105,46 @@ def engine_name
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)
ensure
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
Expand Down

0 comments on commit ecbf85a

Please sign in to comment.