[Groonga-commit] ranguba/groonga-client at 5cd6b18 [master] Support nil as the initial parameters

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Mar 1 16:01:33 JST 2017


Kouhei Sutou	2017-03-01 16:01:33 +0900 (Wed, 01 Mar 2017)

  New Revision: 5cd6b186c539e1d394eb4639fcac5eafdec72452
  https://github.com/ranguba/groonga-client/commit/5cd6b186c539e1d394eb4639fcac5eafdec72452

  Message:
    Support nil as the initial parameters

  Added files:
    test/request/test-merger.rb
  Modified files:
    lib/groonga/client/request/generic.rb

  Modified: lib/groonga/client/request/generic.rb (+13 -1)
===================================================================
--- lib/groonga/client/request/generic.rb    2017-03-01 14:52:55 +0900 (2d9dcbf)
+++ lib/groonga/client/request/generic.rb    2017-03-01 16:01:33 +0900 (7299e4b)
@@ -172,7 +172,19 @@ module Groonga
 
       class OverwriteMerger < ParameterMerger
         def to_parameters
-          @parameters1.to_parameters.merge(@parameters2.to_parameters)
+          if****@param*****?
+            if****@param*****?
+              {}
+            else
+              @parameters2.to_parameters
+            end
+          else
+            if****@param*****?
+              @parameters1.to_parameters
+            else
+              @parameters1.to_parameters.merge(@parameters2.to_parameters)
+            end
+          end
         end
       end
     end

  Added: test/request/test-merger.rb (+48 -0) 100644
===================================================================
--- /dev/null
+++ test/request/test-merger.rb    2017-03-01 16:01:33 +0900 (add65c7)
@@ -0,0 +1,48 @@
+# Copyright (C) 2017  Kouhei Sutou <kou �� clear-code.com>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+class TestRequestMerger < Test::Unit::TestCase
+  sub_test_case "OverwriteMerger" do
+    def merge(parameters1, parameters2)
+      klass = Groonga::Client::Request::OverwriteMerger
+      klass.new(parameters1, parameters2).to_parameters
+    end
+
+    def param(name, value)
+      Groonga::Client::Request::RequestParameter.new(name, value)
+    end
+
+    test "(nil, nil)" do
+      assert_equal({}, merge(nil, nil))
+    end
+
+    test "(nil, parameter)" do
+      assert_equal({"name" => "value"},
+                   merge(nil, param("name", "value")))
+    end
+
+    test "(parameter, nil)" do
+      assert_equal({"name" => "value"},
+                   merge(param("name", "value"), nil))
+    end
+
+    test "(parameter, parameter)" do
+      assert_equal({"name" => "value2"},
+                   merge(param("name", "value1"),
+                         param("name", "value2")))
+    end
+  end
+end
-------------- next part --------------
HTML����������������������������...
下載 



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