Kouhei Sutou
null+****@clear*****
Thu Apr 27 11:47:35 JST 2017
Kouhei Sutou 2017-04-27 11:47:35 +0900 (Thu, 27 Apr 2017) New Revision: 7501860b3255b80ed59a0e762b25a6346af6c9ad https://github.com/ranguba/groonga-client/commit/7501860b3255b80ed59a0e762b25a6346af6c9ad Message: Deprecate filter("column", value) Use filter(:column, value) instead. Modified files: lib/groonga/client/request/select.rb test/request/select/test-filter.rb Modified: lib/groonga/client/request/select.rb (+24 -18) =================================================================== --- lib/groonga/client/request/select.rb 2017-04-27 11:43:18 +0900 (c5393a0) +++ lib/groonga/client/request/select.rb 2017-04-27 11:47:35 +0900 (6f1d1f4) @@ -121,7 +121,9 @@ module Groonga else expression = "%{column} == %{value}" column_name = expression_or_column_name - column_name = column_name.to_sym if column_name.is_a?(String) + column_name = Filter.column_namify(column_name, + "first", + "#{self.class}\##{__method__}") values = { column: column_name, value: values_or_value, @@ -199,6 +201,19 @@ module Groonga # @since 0.4.3 class Filter + class << self + # @private + def column_namify(column_name, ith, signature) + return column_name unless column_name.is_a?(String) + + message = "column name (the #{ith} argument) of #{signature} " + message << "should be Symbol: #{column_name.inspect}: " + message << caller(2, 1)[0] + warn(message) + column_name.to_sym + end + end + def initialize(request) @request = request end @@ -304,9 +319,10 @@ module Groonga def between(column_name, min, min_border, max, max_border) # TODO: Accept not only column name but also literal as # the first argument. - column_name = column_namify(column_name, - "first", - "#{self.class}\##{__method__}") + column_name = + self.class.column_namify(column_name, + "first", + "#{self.class}\##{__method__}") expression = "between(%{column_name}" expression << ", %{min}" expression << ", %{min_border}" @@ -351,9 +367,10 @@ module Groonga # TODO: Accept not only column name but also literal as # the first argument. - column_name = column_namify(column_name, - "first", - "#{self.class}\##{__method__}") + column_name = + self.class.column_namify(column_name, + "first", + "#{self.class}\##{__method__}") expression_values = {column_name: column_name} expression = "in_values(%{column_name}" values.each_with_index do |value, i| @@ -363,17 +380,6 @@ module Groonga expression << ")" @request.filter(expression, expression_values) end - - private - def column_namify(column_name, ith, signature) - return column_name unless column_name.is_a?(String) - - message = "column name (the #{ith} argument) of #{signature} " - message << "should be Symbol: #{column_name.inspect}: " - message << caller(2, 1)[0] - warn(message) - column_name.to_sym - end end class LabeledDrilldown Modified: test/request/select/test-filter.rb (+12 -22) =================================================================== --- test/request/select/test-filter.rb 2017-04-27 11:43:18 +0900 (5b1eeda) +++ test/request/select/test-filter.rb 2017-04-27 11:47:35 +0900 (d8886aa) @@ -138,22 +138,12 @@ title == "[\"He\\ llo\"]" end end - sub_test_case("column name") do - test("String") do - assert_equal({ - :table => "posts", - :filter => "_key == 29", - }, - filter("_key", 29)) - end - - test("Symbol") do - assert_equal({ - :table => "posts", - :filter => "_key == 29", - }, - filter(:_key, 29)) - end + test("column name") do + assert_equal({ + :table => "posts", + :filter => "_key == 29", + }, + filter(:_key, 29)) end sub_test_case("value") do @@ -165,7 +155,7 @@ title == "[\"He\\ llo\"]" :table => "posts", :filter => filter, }, - filter("title", "[\"He\\ llo\"]")) + filter(:title, "[\"He\\ llo\"]")) end sub_test_case("Symbol") do @@ -174,7 +164,7 @@ title == "[\"He\\ llo\"]" :table => "posts", :filter => "title == normalized_title", }, - filter("title", :normalized_title)) + filter(:title, :normalized_title)) end test("invalid ID") do @@ -182,7 +172,7 @@ title == "[\"He\\ llo\"]" :table => "posts", :filter => "title == \"Hello World\"", }, - filter("title", :"Hello World")) + filter(:title, :"Hello World")) end end @@ -191,7 +181,7 @@ title == "[\"He\\ llo\"]" :table => "posts", :filter => "age == 29", }, - filter("age", 29)) + filter(:age, 29)) end test("true") do @@ -199,7 +189,7 @@ title == "[\"He\\ llo\"]" :table => "posts", :filter => "published == true", }, - filter("published", true)) + filter(:published, true)) end test("false") do @@ -207,7 +197,7 @@ title == "[\"He\\ llo\"]" :table => "posts", :filter => "published == false", }, - filter("published", false)) + filter(:published, false)) end end -------------- next part -------------- HTML����������������������������... 下載