Kouhei Sutou
null+****@clear*****
Fri Dec 20 11:41:26 JST 2013
Kouhei Sutou 2013-12-20 11:41:26 +0900 (Fri, 20 Dec 2013) New Revision: 0ae60de5a4bd4cd3952db3e6280de26e9c58cff6 https://github.com/droonga/fluent-plugin-droonga/commit/0ae60de5a4bd4cd3952db3e6280de26e9c58cff6 Message: adapter: split adapter into input/output adapter Copied files: lib/droonga/plugin/input_adapter/groonga.rb (from lib/droonga/plugin/adapter/groonga.rb) lib/droonga/plugin/input_adapter/groonga/select.rb (from lib/droonga/plugin/adapter/groonga/select.rb) Renamed files: lib/droonga/plugin/output_adapter/groonga.rb (from lib/droonga/plugin/adapter/groonga.rb) lib/droonga/plugin/output_adapter/groonga/select.rb (from lib/droonga/plugin/adapter/groonga/select.rb) Copied: lib/droonga/plugin/input_adapter/groonga.rb (+3 -14) 69% =================================================================== --- lib/droonga/plugin/adapter/groonga.rb 2013-12-20 11:34:31 +0900 (cea89ab) +++ lib/droonga/plugin/input_adapter/groonga.rb 2013-12-20 11:41:26 +0900 (331a85d) @@ -14,7 +14,6 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA require "droonga/input_adapter_plugin" -require "droonga/output_adapter_plugin" module Droonga class GroongaInputAdapter < Droonga::InputAdapterPlugin @@ -22,24 +21,14 @@ module Droonga command :select def select(input_message) - command = GroongaAdapter::Select.new + command = Select.new select_request = input_message.body - search_request = command.convert_request(select_request) + search_request = command.convert(select_request) input_message.add_route("select_response") input_message.command = "search" input_message.body = search_request end end - - class GroongaOutputAdapter < Droonga::OutputAdapterPlugin - repository.register("groonga", self) - - command :select_response - def select_response(search_response) - command = GroongaAdapter::Select.new - emit(command.convert_response(search_response)) - end - end end -require "droonga/plugin/adapter/groonga/select" +require "droonga/plugin/input_adapter/groonga/select" Copied: lib/droonga/plugin/input_adapter/groonga/select.rb (+2 -36) 63% =================================================================== --- lib/droonga/plugin/adapter/groonga/select.rb 2013-12-20 11:34:31 +0900 (d79c0ec) +++ lib/droonga/plugin/input_adapter/groonga/select.rb 2013-12-20 11:41:26 +0900 (98f7a43) @@ -14,9 +14,9 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA module Droonga - class GroongaAdapter + class GroongaInputAdapter class Select - def convert_request(select_request) + def convert(select_request) table = select_request["table"] result_name = table + "_result" match_columns = select_request["match_columns"] @@ -58,40 +58,6 @@ module Droonga end search_request end - - def convert_response(search_response) - select_responses = search_response.collect do |key, value| - status_code = 0 - - start_time = value["startTime"] - start_time_in_unix_time = if start_time - Time.parse(start_time).to_f - else - Time.now.to_f - end - elapsed_time = value["elapsedTime"] || 0 - count = value["count"] - - attributes = value["attributes"] || [] - converted_attributes = attributes.collect do |attribute| - name = attribute["name"] - type = attribute["type"] - [name, type] - end - - header = [status_code, start_time_in_unix_time, elapsed_time] - records = value["records"] - if records.empty? - results = [[count], converted_attributes] - else - results = [[count], converted_attributes, records] - end - body = [results] - - [header, body] - end - select_responses.first - end end end end Renamed: lib/droonga/plugin/output_adapter/groonga.rb (+3 -18) 60% =================================================================== --- lib/droonga/plugin/adapter/groonga.rb 2013-12-20 11:34:31 +0900 (cea89ab) +++ lib/droonga/plugin/output_adapter/groonga.rb 2013-12-20 11:41:26 +0900 (95d14fb) @@ -13,33 +13,18 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -require "droonga/input_adapter_plugin" require "droonga/output_adapter_plugin" module Droonga - class GroongaInputAdapter < Droonga::InputAdapterPlugin - repository.register("groonga", self) - - command :select - def select(input_message) - command = GroongaAdapter::Select.new - select_request = input_message.body - search_request = command.convert_request(select_request) - input_message.add_route("select_response") - input_message.command = "search" - input_message.body = search_request - end - end - class GroongaOutputAdapter < Droonga::OutputAdapterPlugin repository.register("groonga", self) command :select_response def select_response(search_response) - command = GroongaAdapter::Select.new - emit(command.convert_response(search_response)) + command = Select.new + emit(command.convert(search_response)) end end end -require "droonga/plugin/adapter/groonga/select" +require "droonga/plugin/output_adapter/groonga/select" Renamed: lib/droonga/plugin/output_adapter/groonga/select.rb (+2 -45) 56% =================================================================== --- lib/droonga/plugin/adapter/groonga/select.rb 2013-12-20 11:34:31 +0900 (d79c0ec) +++ lib/droonga/plugin/output_adapter/groonga/select.rb 2013-12-20 11:41:26 +0900 (35917fa) @@ -14,52 +14,9 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA module Droonga - class GroongaAdapter + class GroongaOutputAdapter class Select - def convert_request(select_request) - table = select_request["table"] - result_name = table + "_result" - match_columns = select_request["match_columns"] - match_to = match_columns ? match_columns.split(/ *\|\| */) : [] - query = select_request["query"] - output_columns = select_request["output_columns"] || "" - attributes = output_columns.split(/, */) - offset = (select_request["offset"] || "0").to_i - limit = (select_request["limit"] || "10").to_i - - search_request = { - "queries" => { - result_name => { - "source" => table, - "output" => { - "elements" => [ - "startTime", - "elapsedTime", - "count", - "attributes", - "records", - ], - "attributes" => attributes, - "offset" => offset, - "limit" => limit, - }, - } - } - } - if query - condition = { - "query" => query, - "matchTo"=> match_to, - "defaultOperator"=> "&&", - "allowPragma"=> false, - "allowColumn"=> true, - } - search_request["queries"][result_name]["condition"] = condition - end - search_request - end - - def convert_response(search_response) + def convert(search_response) select_responses = search_response.collect do |key, value| status_code = 0 -------------- next part -------------- HTML����������������������������...Download