groonga-query-log 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ddc27e0fcae0618400de2f9d3283dfe2b2cb11c6
4
- data.tar.gz: b2a3ed1b2a07396d10d2b810f6c621edbe71a8ad
3
+ metadata.gz: eb5671eabd420c831e66da0a0ecb8c76788e6b7a
4
+ data.tar.gz: 635098f7db2bb18cea3a3f5626c85ef5a924c643
5
5
  SHA512:
6
- metadata.gz: 81cad11fafb5f09332077f8c9b50da20d1d8e674d96e1675f872a17539d0696b177db31f02990f70fd798d5d7caf943950dbcb30822d482d6a0922f4a0a840a7
7
- data.tar.gz: 9fa93309d8bf11f63a0214d464fe632eabde8ce72449a9d8dc0faef93064ba9d027bc84aaa99a23a6263535fb3cb64f917df80dccd25f924ea8095a0495e2531
6
+ metadata.gz: fb4900d64685c1d444756c1fcc10aa02300ae5c198dd8d8998c979158e06d31be0b45c48da74b6152a38408a78bd2ffad1fa961fd70fe94952c30b02049abb1a
7
+ data.tar.gz: 27d9c1647ce24ec881e51fbf774dab77f9fd718cb8c7e81f9d1c017a4e6332b9fbff7884266a4efdfa38624376a7955635ea1047b9d617bc4ad413853cdb40a9
data/doc/text/news.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # News
2
2
 
3
+ ## 1.1.2: 2014-11-20
4
+
5
+ ### Fixes
6
+
7
+ * groonga-query-log-format-regression-test-logs: Fixed a bug
8
+ that the command doesn't work in normal usage.
9
+
3
10
  ## 1.1.1: 2014-11-06
4
11
 
5
12
  ### Improvements
@@ -158,6 +158,30 @@ directory. Test result log file name is the same as input query log
158
158
  file name. If query log file is `query-logs/query-20140508.log`, test
159
159
  result log file is `results/query-20140508.log`.
160
160
 
161
+ ### Confirm
162
+
163
+ You can show details of different between the current Groonga and the
164
+ new Groonga by `groonga-query-log-format-regression-test-logs` command:
165
+
166
+ % groonga-query-log-format-regression-test-logs results/*.log
167
+
168
+ Here is a sample output:
169
+
170
+ select Logs
171
+ Name: select
172
+ Arguments:
173
+ table: Logs
174
+ --- old
175
+ +++ new
176
+ @@ -1,4 +1,5 @@
177
+ -[[[2],
178
+ +[[[3],
179
+ [["_id", "UInt32"], ["message", "Text"]],
180
+ [1, "log message1"],
181
+ - [2, "log message2"]]]
182
+ + [2, "log message2"],
183
+ + [3, "log message3"]]]
184
+
161
185
  ## Advanced usage
162
186
 
163
187
  There are some advanced usages. This section describes about them.
@@ -21,6 +21,8 @@ require "pp"
21
21
  require "optparse"
22
22
  require "json"
23
23
 
24
+ require "groonga/command/parser"
25
+
24
26
  require "groonga/query-log/version"
25
27
 
26
28
  module Groonga
@@ -60,8 +62,8 @@ module Groonga
60
62
  private
61
63
  def format_log(input, path)
62
64
  command = nil
63
- response1 = nil
64
- response2 = nil
65
+ response_old = nil
66
+ response_new = nil
65
67
 
66
68
  input.each_line do |line|
67
69
  unless line.valid_encoding?
@@ -73,32 +75,32 @@ module Groonga
73
75
  when /\Acommand: /
74
76
  command = $POSTMATCH.chomp
75
77
  when /\Aresponse1: /
76
- response1 = $POSTMATCH.chomp
78
+ response_old = $POSTMATCH.chomp
77
79
  when /\Aresponse2: /
78
- response2 = $POSTMATCH.chomp
79
- next unless valid_entry?(command, response1, response2)
80
- report_diff(command, repsponse1, response2)
80
+ response_new = $POSTMATCH.chomp
81
+ next unless valid_entry?(command, response_old, response_new)
82
+ report_diff(command, response_old, response_new)
81
83
  end
82
84
  end
83
85
  end
84
86
 
85
- def valid_entry?(command, response1, response2)
87
+ def valid_entry?(command, response_old, response_new)
86
88
  valid = true
87
89
 
88
90
  begin
89
- JSON.parse(response1)
91
+ JSON.parse(response_old)
90
92
  rescue JSON::ParserError
91
93
  puts(command)
92
- puts("failed to parse response1: #{$!.message}")
94
+ puts("failed to parse old response: #{$!.message}")
93
95
  puts(response1)
94
96
  valid = false
95
97
  end
96
98
 
97
99
  begin
98
- JSON.parse(response2)
100
+ JSON.parse(response_new)
99
101
  rescue JSON::ParserError
100
102
  puts(command)
101
- puts("failed to parse response2: #{$!.message}")
103
+ puts("failed to parse new response: #{$!.message}")
102
104
  puts(response2)
103
105
  valid = false
104
106
  end
@@ -106,23 +108,37 @@ module Groonga
106
108
  valid
107
109
  end
108
110
 
109
- def report_diff(command, response1, response2)
110
- return if response1 == response2
111
+ def report_diff(command, response_old, response_new)
112
+ return if response_old == response_new
111
113
 
112
- base_name = File.basename(path, ".*")
113
- Tempfile.open("response1-#{base_name}") do |response1_file|
114
- PP.pp(JSON.parse(response1), response1_file)
115
- response1_file.flush
116
- Tempfile.open("response2-#{base_name}") do |response2_file|
117
- PP.pp(JSON.parse(response2), response2_file)
118
- response2_file.flush
119
- puts(command)
114
+ Tempfile.open("response-old") do |response_old_file|
115
+ PP.pp(JSON.parse(response_old), response_old_file)
116
+ response_old_file.flush
117
+ Tempfile.open("response-new") do |response_new_file|
118
+ PP.pp(JSON.parse(response_new), response_new_file)
119
+ response_new_file.flush
120
+ report_command(command)
120
121
  system("diff",
122
+ "--label=old",
123
+ "--label=new",
121
124
  "-u",
122
- response1_file.path, response2_file.path)
125
+ response_old_file.path, response_new_file.path)
123
126
  end
124
127
  end
125
128
  end
129
+
130
+ def report_command(command)
131
+ puts(command)
132
+ parsed_command = Groonga::Command::Parser.parse(command)
133
+ puts("Name: #{parsed_command.name}")
134
+ puts("Arguments:")
135
+ sorted_arguments = parsed_command.arguments.sort_by do |key, value|
136
+ key
137
+ end
138
+ sorted_arguments.each do |key, value|
139
+ puts(" #{key}: #{value}")
140
+ end
141
+ end
126
142
  end
127
143
  end
128
144
  end
@@ -18,6 +18,6 @@
18
18
 
19
19
  module Groonga
20
20
  module QueryLog
21
- VERSION = "1.1.1"
21
+ VERSION = "1.1.2"
22
22
  end
23
23
  end
@@ -0,0 +1,88 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2014 Kouhei Sutou <kou@clear-code.com>
4
+ #
5
+ # This library is free software; you can redistribute it and/or
6
+ # modify it under the terms of the GNU Lesser General Public
7
+ # License as published by the Free Software Foundation; either
8
+ # version 2.1 of the License, or (at your option) any later version.
9
+ #
10
+ # This library is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ # Lesser General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU Lesser General Public
16
+ # License along with this library; if not, write to the Free Software
17
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
+
19
+ require "groonga/query-log/command/format-regression-test-logs"
20
+
21
+ class FormatRegressionTestLogsCommandTest < Test::Unit::TestCase
22
+ include Path
23
+
24
+ def setup
25
+ @command = Groonga::QueryLog::Command::FormatRegressionTestLogs.new
26
+ end
27
+
28
+ def run_command(command_line)
29
+ stdout = $stdout.dup
30
+ output = Tempfile.open("output")
31
+ $stdout.reopen(output)
32
+ succees = @command.run(command_line)
33
+ output.rewind
34
+ [succees, output.read]
35
+ ensure
36
+ $stdout.reopen(stdout)
37
+ end
38
+
39
+ def fixture_path(*components)
40
+ super("regression-test-logs", *components)
41
+ end
42
+
43
+ def test_nothing
44
+ input = Tempfile.new("format-regression-test-logs")
45
+ assert_equal([true, ""],
46
+ run_command([input.path]))
47
+ end
48
+
49
+ def test_command_format
50
+ output = <<-OUTPUT
51
+ select Logs
52
+ Name: select
53
+ Arguments:
54
+ table: Logs
55
+ --- old
56
+ +++ new
57
+ @@ -1,4 +1,4 @@
58
+ [[[2],
59
+ [[\"_id\", \"UInt32\"], [\"message\", \"Text\"]],
60
+ [1, \"log message1\"],
61
+ - [2, \"log message2\"]]]
62
+ + [3, \"log message3\"]]]
63
+ OUTPUT
64
+ assert_equal([true, output],
65
+ run_command([fixture_path("command-format.log")]))
66
+ end
67
+
68
+ def test_url_format
69
+ output = <<-OUTPUT
70
+ /d/select?table=Logs&match_columns=message&query=%E7%84%BC%E8%82%89
71
+ Name: select
72
+ Arguments:
73
+ match_columns: message
74
+ query: 焼肉
75
+ table: Logs
76
+ --- old
77
+ +++ new
78
+ @@ -1,4 +1,4 @@
79
+ [[[2],
80
+ [[\"_id\", \"UInt32\"], [\"message\", \"Text\"]],
81
+ [1, \"log message1: 焼肉\"],
82
+ - [2, \"log message2: 焼肉\"]]]
83
+ + [3, \"log message3: 焼肉\"]]]
84
+ OUTPUT
85
+ assert_equal([true, output],
86
+ run_command([fixture_path("url-format.log")]))
87
+ end
88
+ end
@@ -0,0 +1,3 @@
1
+ command: select Logs
2
+ response1: [[[2], [["_id", "UInt32"], ["message", "Text"]], [1, "log message1"], [2, "log message2"]]]
3
+ response2: [[[2], [["_id", "UInt32"], ["message", "Text"]], [1, "log message1"], [3, "log message3"]]]
@@ -0,0 +1,3 @@
1
+ command: /d/select?table=Logs&match_columns=message&query=%E7%84%BC%E8%82%89
2
+ response1: [[[2], [["_id", "UInt32"], ["message", "Text"]], [1, "log message1: 焼肉"], [2, "log message2: 焼肉"]]]
3
+ response2: [[[2], [["_id", "UInt32"], ["message", "Text"]], [1, "log message1: 焼肉"], [3, "log message3: 焼肉"]]]
data/test/helper.rb ADDED
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2011-2012 Kouhei Sutou <kou@clear-code.com>
4
+ #
5
+ # This library is free software; you can redistribute it and/or
6
+ # modify it under the terms of the GNU Lesser General Public
7
+ # License as published by the Free Software Foundation; either
8
+ # version 2.1 of the License, or (at your option) any later version.
9
+ #
10
+ # This library is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ # Lesser General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU Lesser General Public
16
+ # License along with this library; if not, write to the Free Software
17
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
+
19
+ require "cgi"
20
+ require "stringio"
21
+
22
+ require "groonga/command"
23
+
24
+ require "groonga/query-log"
25
+
26
+ module Path
27
+ def fixture_path(*components)
28
+ File.join(File.dirname(__FILE__), "fixtures", *components)
29
+ end
30
+ end
data/test/run-test.rb CHANGED
@@ -47,7 +47,7 @@ Test::Unit::Priority.enable
47
47
  $LOAD_PATH.unshift(lib_dir.to_s)
48
48
 
49
49
  $LOAD_PATH.unshift(test_dir.to_s)
50
- require "groonga-query-log-test-utils"
50
+ require "helper"
51
51
 
52
52
  Dir.glob("#{base_dir}/test/**/test{_,-}*.rb") do |file|
53
53
  require file.sub(/\.rb\z/, '')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: groonga-query-log
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-06 00:00:00.000000000 Z
11
+ date: 2014-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: groonga-command-parser
@@ -211,7 +211,7 @@ files:
211
211
  - lib/groonga/query-log/response-comparer.rb
212
212
  - lib/groonga/query-log/server-verifier.rb
213
213
  - lib/groonga/query-log/version.rb
214
- - test/command/test-select.rb
214
+ - test/command/test-format-regression-test-logs.rb
215
215
  - test/fixtures/multi.expected
216
216
  - test/fixtures/n_entries.expected
217
217
  - test/fixtures/no-report-summary.expected
@@ -221,11 +221,13 @@ files:
221
221
  - test/fixtures/order/start-time.expected
222
222
  - test/fixtures/other-query.log
223
223
  - test/fixtures/query.log
224
+ - test/fixtures/regression-test-logs/command-format.log
225
+ - test/fixtures/regression-test-logs/url-format.log
224
226
  - test/fixtures/reporter/console.expected
225
227
  - test/fixtures/reporter/html.expected
226
228
  - test/fixtures/reporter/json-stream.expected
227
229
  - test/fixtures/reporter/json.expected
228
- - test/groonga-query-log-test-utils.rb
230
+ - test/helper.rb
229
231
  - test/run-test.rb
230
232
  - test/test-analyzer.rb
231
233
  - test/test-extractor.rb
@@ -263,9 +265,8 @@ summary: Groonga-query-log is a collection of library and tools to process [Groo
263
265
  test_files:
264
266
  - test/test-analyzer.rb
265
267
  - test/test-parser.rb
266
- - test/groonga-query-log-test-utils.rb
267
268
  - test/test-response-comparer.rb
268
- - test/command/test-select.rb
269
+ - test/command/test-format-regression-test-logs.rb
269
270
  - test/fixtures/other-query.log
270
271
  - test/fixtures/reporter/console.expected
271
272
  - test/fixtures/reporter/html.expected
@@ -274,11 +275,14 @@ test_files:
274
275
  - test/fixtures/query.log
275
276
  - test/fixtures/multi.expected
276
277
  - test/fixtures/no-report-summary.expected
278
+ - test/fixtures/regression-test-logs/url-format.log
279
+ - test/fixtures/regression-test-logs/command-format.log
277
280
  - test/fixtures/n_entries.expected
278
281
  - test/fixtures/order/-start-time.expected
279
282
  - test/fixtures/order/elapsed.expected
280
283
  - test/fixtures/order/start-time.expected
281
284
  - test/fixtures/order/-elapsed.expected
285
+ - test/helper.rb
282
286
  - test/run-test.rb
283
287
  - test/test-incompatibility-detector.rb
284
288
  - test/test-extractor.rb
@@ -1,162 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2011-2012 Kouhei Sutou <kou@clear-code.com>
4
- #
5
- # This library is free software; you can redistribute it and/or
6
- # modify it under the terms of the GNU Lesser General Public
7
- # License as published by the Free Software Foundation; either
8
- # version 2.1 of the License, or (at your option) any later version.
9
- #
10
- # This library is distributed in the hope that it will be useful,
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- # Lesser General Public License for more details.
14
- #
15
- # You should have received a copy of the GNU Lesser General Public
16
- # License along with this library; if not, write to the Free Software
17
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
-
19
- class SelectCommandTest < Test::Unit::TestCase
20
- module ParseTests
21
- def test_parameters
22
- select = parse("select",
23
- :table => "Users",
24
- :filter => "age<=30")
25
- assert_equal(command("select",
26
- "table" => "Users",
27
- "filter" => "age<=30",
28
- "output_type" => "json"),
29
- select)
30
- end
31
-
32
- def test_scorer
33
- select = parse("select",
34
- :table => "Users",
35
- :filter => "age<=30",
36
- :scorer => "_score = random()")
37
- assert_equal("_score = random()", select.scorer)
38
- end
39
-
40
- def test_to_uri_format
41
- select = parse("select",
42
- :table => "Users",
43
- :filter => "age<=30")
44
- assert_equal("/d/select.json?filter=age%3C%3D30&table=Users",
45
- select.to_uri_format)
46
- end
47
-
48
- def test_to_command_format
49
- select = parse("select",
50
- :table => "Users",
51
- :filter => "age<=30")
52
- assert_equal("select --filter \"age<=30\" " +
53
- "--output_type \"json\" --table \"Users\"",
54
- select.to_command_format)
55
- end
56
- end
57
-
58
- module ParseFilterTests
59
- def test_parenthesis
60
- filter = 'geo_in_rectangle(location,' +
61
- '"35.73360x139.7394","62614x139.7714") && ' +
62
- '((type == "たいやき" || type == "和菓子")) && ' +
63
- 'keyword @ "たいやき" &! keyword @ "白" &! keyword @ "養殖"'
64
- select = parse("select",
65
- :table => "Users",
66
- :filter => filter)
67
- assert_equal(['geo_in_rectangle(location,' +
68
- '"35.73360x139.7394","62614x139.7714")',
69
- 'type == "たいやき"',
70
- 'type == "和菓子"',
71
- 'keyword @ "たいやき"',
72
- 'keyword @ "白"',
73
- 'keyword @ "養殖"'],
74
- select.conditions)
75
- end
76
-
77
- def test_to_uri_format
78
- filter = 'geo_in_rectangle(location,' +
79
- '"35.73360x139.7394","62614x139.7714") && ' +
80
- '((type == "たいやき" || type == "和菓子")) && ' +
81
- 'keyword @ "たいやき" &! keyword @ "白" &! keyword @ "養殖"'
82
- select = parse("select",
83
- :table => "Users",
84
- :filter => filter)
85
- assert_equal("/d/select.json?filter=geo_in_rectangle%28location%2C" +
86
- "%2235.73360x139.7394%22%2C%2262614x139.7714%22%29+" +
87
- "%26%26+%28%28type+" +
88
- "%3D%3D+%22%E3%81%9F%E3%81%84%E3%82%84%E3%81%8D%22+" +
89
- "%7C%7C+type+%3D%3D+" +
90
- "%22%E5%92%8C%E8%8F%93%E5%AD%90%22%29%29+" +
91
- "%26%26+keyword+%40+" +
92
- "%22%E3%81%9F%E3%81%84%E3%82%84%E3%81%8D%22+%26%21+" +
93
- "keyword+%40+%22%E7%99%BD%22+%26%21+" +
94
- "keyword+%40+%22%E9%A4%8A%E6%AE%96%22&table=Users",
95
- select.to_uri_format)
96
- end
97
-
98
- def test_to_command_format
99
- filter = 'geo_in_rectangle(location,' +
100
- '"35.73360x139.7394","62614x139.7714") && ' +
101
- '((type == "たいやき" || type == "和菓子")) && ' +
102
- 'keyword @ "たいやき" &! keyword @ "白" &! keyword @ "養殖"'
103
- select = parse("select",
104
- :table => "Users",
105
- :filter => filter)
106
- assert_equal("select " +
107
- "--filter " +
108
- "\"geo_in_rectangle(location," +
109
- "\\\"35.73360x139.7394\\\",\\\"62614x139.7714\\\") && " +
110
- "((type == \\\"たいやき\\\" || " +
111
- "type == \\\"和菓子\\\")) && " +
112
- "keyword @ \\\"たいやき\\\" &! keyword @ \\\"白\\\" &! " +
113
- "keyword @ \\\"養殖\\\"\" " +
114
- "--output_type \"json\" --table \"Users\"",
115
- select.to_command_format)
116
- end
117
- end
118
-
119
- class HTTPTest < self
120
- include GroongaQueryLogTestUtils::HTTPCommandParser
121
-
122
- def test_uri_format?
123
- command = parse("status")
124
- assert_predicate(command, :uri_format?)
125
- end
126
-
127
- def test_command_format?
128
- command = parse("status")
129
- assert_not_predicate(command, :command_format?)
130
- end
131
-
132
- class ParseTest < self
133
- include ParseTests
134
- end
135
-
136
- class ParseFilterTest < self
137
- include ParseFilterTests
138
- end
139
- end
140
-
141
- class CommandLineTest < self
142
- include GroongaQueryLogTestUtils::CommandLineCommandParser
143
-
144
- def test_uri_format?
145
- command = parse("status")
146
- assert_not_predicate(command, :uri_format?)
147
- end
148
-
149
- def test_command_format?
150
- command = parse("status")
151
- assert_predicate(command, :command_format?)
152
- end
153
-
154
- class ParseTest < self
155
- include ParseTests
156
- end
157
-
158
- class ParseFilterTest < self
159
- include ParseFilterTests
160
- end
161
- end
162
- end
@@ -1,79 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2011-2012 Kouhei Sutou <kou@clear-code.com>
4
- #
5
- # This library is free software; you can redistribute it and/or
6
- # modify it under the terms of the GNU Lesser General Public
7
- # License as published by the Free Software Foundation; either
8
- # version 2.1 of the License, or (at your option) any later version.
9
- #
10
- # This library is distributed in the hope that it will be useful,
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- # Lesser General Public License for more details.
14
- #
15
- # You should have received a copy of the GNU Lesser General Public
16
- # License along with this library; if not, write to the Free Software
17
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
-
19
- require "cgi"
20
- require "stringio"
21
-
22
- require "groonga/command"
23
-
24
- require "groonga/query-log"
25
-
26
- module GroongaQueryLogTestUtils
27
- module CommandParser
28
- private
29
- def command(name, parameters)
30
- command_class = Groonga::Command.find(name)
31
- command = command_class.new(name, parameters)
32
- command.original_format = :command
33
- command
34
- end
35
-
36
- def parse_http_path(command, parameters)
37
- path = "/d/#{command}.json"
38
- unless parameters.empty?
39
- uri_parameters = parameters.collect do |key, value|
40
- [CGI.escape(key.to_s), CGI.escape(value.to_s)].join("=")
41
- end
42
- path << "?"
43
- path << uri_parameters.join("&")
44
- end
45
- Groonga::Command::Parser.parse(path)
46
- end
47
-
48
- def parse_command_line(command, parameters)
49
- command_line = "#{command} --output_type json"
50
- parameters.each do |key, value|
51
- if /"| / =~ value
52
- escaped_value = '"' + value.gsub(/"/, '\"') + '"'
53
- else
54
- escaped_value = value
55
- end
56
- command_line << " --#{key} #{escaped_value}"
57
- end
58
- Groonga::Command::Parser.parse(command_line)
59
- end
60
- end
61
-
62
- module HTTPCommandParser
63
- include CommandParser
64
-
65
- private
66
- def parse(command, parameters={})
67
- parse_http_path(command, parameters)
68
- end
69
- end
70
-
71
- module CommandLineCommandParser
72
- include CommandParser
73
-
74
- private
75
- def parse(command, parameters={})
76
- parse_command_line(command, parameters)
77
- end
78
- end
79
- end