[Groonga-commit] droonga/fluent-plugin-droonga at 0ae60de [master] adapter: split adapter into input/output adapter

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index