Kouhei Sutou
null+****@clear*****
Tue Oct 11 16:56:05 JST 2016
Kouhei Sutou 2016-10-11 16:56:05 +0900 (Tue, 11 Oct 2016) New Revision: c48fc059a67ecc509fdd4c5b34b77b7ecb07099f https://github.com/groonga/groonga-command/commit/c48fc059a67ecc509fdd4c5b34b77b7ecb07099f Message: select: support newly added parameters Supported parameters: * adjuster * drilldown_calc_types * drilldown_calc_target * sort_keys * drilldown_sort_keys The following methods are added for keep backward compatibility: * Groonga::Command::Select#sort_keys * Groonga::Command::Select#drilldown_sort_keys Modified files: lib/groonga/command/select.rb test/command/test-select.rb Modified: lib/groonga/command/select.rb (+27 -0) =================================================================== --- lib/groonga/command/select.rb 2016-10-11 16:38:52 +0900 (a8f8861) +++ lib/groonga/command/select.rb 2016-10-11 16:56:05 +0900 (f7d5476) @@ -45,16 +45,32 @@ module Groonga :query_expansion, :query_flags, :query_expander, + :adjuster, + :drilldown_calc_types, + :drilldown_calc_target, + :sort_keys, + :drilldown_sort_keys, ] end end Command.register(command_name, self) + # @return [String] The sort keys as String. Each key is + # separated by "," or spaces. + # + # @deprecated since 1.2.8. Use {#sort_keys} instead. def sortby self[:sortby] end + # @return [::Array<String>] The sort keys. + # + # @since 1.2.8 + def sort_keys + parse_array_value(self[:sort_keys] || self[:sortby] || "") + end + def scorer self[:scorer] end @@ -75,6 +91,17 @@ module Groonga @drilldowns ||= array_value(:drilldown) end + # @return [::Array<String>] The sort keys for drilldowns. + # + # @since 1.2.8 + def drilldown_sort_keys + value = self[:drilldown_sort_keys] || self[:drilldown_sortby] || "" + parse_array_value(value) + end + + # @return [::Hash<String, Drilldown>] The labeled drilldowns. + # + # @since 1.2.8 def labeled_drilldowns @labeled_drilldowns ||= parse_labeled_drilldowns end Modified: test/command/test-select.rb (+43 -0) =================================================================== --- test/command/test-select.rb 2016-10-11 16:38:52 +0900 (9598009) +++ test/command/test-select.rb 2016-10-11 16:56:05 +0900 (a2b7e86) @@ -41,6 +41,11 @@ class SelectCommandTest < Test::Unit::TestCase query_expansion = "deprecated" query_flags = "ALLOW_LEADING_NOT" query_expander = "Terms.synonym" + adjuster = "tag * 10" + drilldown_calc_types = "MIN, MAX" + drilldown_calc_target = "age" + sort_keys = "-_score" + drilldown_sort_keys = "-_nsubrecs" ordered_arguments = [ table, @@ -62,6 +67,11 @@ class SelectCommandTest < Test::Unit::TestCase query_expansion, query_flags, query_expander, + adjuster, + drilldown_calc_types, + drilldown_calc_target, + sort_keys, + drilldown_sort_keys, ] command = select_command({}, ordered_arguments) @@ -85,6 +95,11 @@ class SelectCommandTest < Test::Unit::TestCase :query_expansion => query_expansion, :query_flags => query_flags, :query_expander => query_expander, + :adjuster => adjuster, + :drilldown_calc_types => drilldown_calc_types, + :drilldown_calc_target => drilldown_calc_target, + :sort_keys => sort_keys, + :drilldown_sort_keys => drilldown_sort_keys, }, command.arguments) end @@ -125,6 +140,34 @@ class SelectCommandTest < Test::Unit::TestCase end end + class SortKeysTest < self + def test_reader + command = select_command(:sort_keys => "-_score,_key") + assert_equal(["-_score", "_key"], + command.sort_keys) + end + + def test_sortby + command = select_command(:sortby => "-_score,_key") + assert_equal(["-_score", "_key"], + command.sort_keys) + end + end + + class DrilldownSortKeysTest < self + def test_reader + command = select_command(:drilldown_sort_keys => "-_nsubrecs,_key") + assert_equal(["-_nsubrecs", "_key"], + command.drilldown_sort_keys) + end + + def test_sortby + command = select_command(:drilldown_sortby => "-_nsubrecs,_key") + assert_equal(["-_nsubrecs", "_key"], + command.drilldown_sort_keys) + end + end + class LabeledDrilldownsTest < self def test_multiple parameters = { -------------- next part -------------- HTML����������������������������... Download