Kouhei Sutou
null+****@clear*****
Thu Apr 13 13:29:23 JST 2017
Kouhei Sutou 2017-04-13 13:29:23 +0900 (Thu, 13 Apr 2017) New Revision: 05795caa6e16061835f9dc07684b73d386bff347 https://github.com/ranguba/groonga-client/commit/05795caa6e16061835f9dc07684b73d386bff347 Message: Ignore no values in_values() Modified files: lib/groonga/client/request/select.rb test/request/test-select.rb Modified: lib/groonga/client/request/select.rb (+15 -12) =================================================================== --- lib/groonga/client/request/select.rb 2017-04-13 13:25:54 +0900 (f6f561b) +++ lib/groonga/client/request/select.rb 2017-04-13 13:29:23 +0900 (810098c) @@ -178,29 +178,30 @@ module Groonga @request = request end - # @example: Use in_values function + # Adds a `in_values` condition then return a new `select` + # request object. + # + # @example: Multiple conditions # request. # filter.in_values("tags", "tag1", "tag2"). # # -> --filter 'in_values(tags, "tag1", "tag2")' # filter("user", "alice") # # -> --filter '(in_values(tags, "tag1", "tag2")) && (user == "alice")' # + # @example: Ignore no values case + # request. + # filter.in_values("tags") + # # -> --filter '' + # # @param [String, Symbol] column_name The target column name. # - # @param [Object] value A column value that cover target + # @param [Object] values The column values that cover target # column values. # - # @param [Object] values The rest column values that cover - # target column values. - # - # Adds a `in_values` condition then return a new `select` - # request object. - # # @return [Groonga::Client::Request::Select] # The new request with the given condition. - def in_values(column_name, value, *values) - parameters = - FilterInValuesParameters.new(column_name, value, *values) + def in_values(column_name, *values) + parameters = FilterInValuesParameters.new(column_name, *values) add_parameter(FilterMerger, parameters) end @@ -359,7 +360,7 @@ module Groonga filter2 = params2[:filter] if filter1 and filter2 params[:filter] = "(#{filter1}) && (#{filter2})" - else + elsif filter1 or filter2 params[:filter] = (filter1 || filter2) end params @@ -462,6 +463,8 @@ module Groonga end def to_parameters + return {} if****@value*****? + escaped_values =****@value***** do |value| escape_script_syntax_value(value) end Modified: test/request/test-select.rb (+4 -3) =================================================================== --- test/request/test-select.rb 2017-04-13 13:25:54 +0900 (1a9358e) +++ test/request/test-select.rb 2017-04-13 13:29:23 +0900 (e282f00) @@ -114,9 +114,10 @@ class TestRequestSelect < Test::Unit::TestCase end test("no values") do - assert_raise(ArgumentError) do - in_values("tags") - end + assert_equal({ + :table => "posts", + }, + in_values("tags")) end end end -------------- next part -------------- HTML����������������������������... Download