Kouhei Sutou
null+****@clear*****
Thu Apr 27 11:19:37 JST 2017
Kouhei Sutou 2017-04-27 11:19:37 +0900 (Thu, 27 Apr 2017) New Revision: e4e285bbd2d401e980b4864a05788269e2f955d3 https://github.com/ranguba/groonga-client/commit/e4e285bbd2d401e980b4864a05788269e2f955d3 Message: Remove needless FilterBetweenParameter between("column", ...) is deprecated. Use between(:column, ...) instead. Modified files: lib/groonga/client/request/select.rb test/request/select/test-filter.rb Modified: lib/groonga/client/request/select.rb (+28 -40) =================================================================== --- lib/groonga/client/request/select.rb 2017-04-27 11:14:40 +0900 (1bdc5c2) +++ lib/groonga/client/request/select.rb 2017-04-27 11:19:37 +0900 (92556c6) @@ -302,10 +302,23 @@ module Groonga # # @since 0.4.4 def between(column_name, min, min_border, max, max_border) - parameter = FilterBetweenParameter.new(column_name, - min, min_border, - max, max_border) - add_parameter(FilterMerger, parameter) + # TODO: Accept not only column name but also literal as + # the first argument. + column_name = column_namify(column_name, + "first", + "#{self.class}\##{__method__}") + expression = "between(%{column_name}" + expression << ", %{min}" + expression << ", %{min_border}" + expression << ", %{max}" + expression << ", %{max_border}" + expression << ")" + @request.filter(expression, + column_name: column_name, + min: min, + min_border: min_border, + max: max, + max_border: max_border) end # Adds a `in_values` condition then returns a new `select` @@ -338,14 +351,9 @@ module Groonga # TODO: Accept not only column name but also literal as # the first argument. - if column_name.is_a?(String) - message = "column name (the first argument) " - message << "of #{self.class}\##{__method__} " - message << "should be Symbol: #{column_name.inspect}: " - message << caller(1, 1)[0] - warn(message) - column_name = column_name.to_sym - end + column_name = 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| @@ -357,8 +365,14 @@ module Groonga end private - def add_parameter(merger, parameter) - @request.__send__(:add_parameter, merger, parameter) + 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 @@ -615,32 +629,6 @@ module Groonga end end - class FilterBetweenParameter - include ScriptSyntaxValueEscapable - - def initialize(column_name, - min, min_border, - max, max_border) - @column_name = column_name - @min = min - @min_border = min_border - @max = max - @max_border = max_border - end - - def to_parameters - filter = "between(#{@column_name}" - filter << ", #{escape_script_syntax_value(@min)}" - filter << ", #{escape_script_syntax_value(@min_border)}" - filter << ", #{escape_script_syntax_value(@max)}" - filter << ", #{escape_script_syntax_value(@max_border)}" - filter << ")" - { - filter: filter, - } - end - end - # @private class OutputColumnsParameter < ValuesParameter def initialize(prefix, output_columns) Modified: test/request/select/test-filter.rb (+1 -1) =================================================================== --- test/request/select/test-filter.rb 2017-04-27 11:14:40 +0900 (151c65a) +++ test/request/select/test-filter.rb 2017-04-27 11:19:37 +0900 (5b1eeda) @@ -256,7 +256,7 @@ title == "[\"He\\ llo\"]" :table => "posts", :filter => "between(ages, 2, \"include\", 29, \"exclude\")", }, - between("ages", 2, "include", 29, "exclude")) + between(:ages, 2, "include", 29, "exclude")) end end -------------- next part -------------- HTML����������������������������... 다운로드