groonga-command 1.0.0 → 1.0.1
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.
- data/.yardopts +6 -0
- data/doc/text/news.md +13 -0
- data/groonga-command.gemspec +1 -0
- data/lib/groonga/command/base.rb +4 -0
- data/lib/groonga/command/parser.rb +24 -1
- data/lib/groonga/command/register.rb +35 -0
- data/lib/groonga/command/version.rb +1 -1
- data/test/command/test-register.rb +39 -0
- metadata +8 -4
data/.yardopts
ADDED
data/doc/text/news.md
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
# News
|
2
2
|
|
3
|
+
## 1.0.1: 2012-12-06
|
4
|
+
|
5
|
+
It's bug fix release.
|
6
|
+
|
7
|
+
### Improvements
|
8
|
+
|
9
|
+
* Supported "register" command.
|
10
|
+
|
11
|
+
### Fixes
|
12
|
+
|
13
|
+
* Asigned value and columns of "load" command to a result command
|
14
|
+
correctly in stand alone parsing.
|
15
|
+
|
3
16
|
## 1.0.0: 2012-11-29
|
4
17
|
|
5
18
|
The first release!!!
|
data/groonga-command.gemspec
CHANGED
@@ -40,6 +40,7 @@ Gem::Specification.new do |spec|
|
|
40
40
|
spec.summary, spec.description, = description.split(/\n\n+/, 3)
|
41
41
|
|
42
42
|
spec.files = ["README.md", "Rakefile", "Gemfile", "#{spec.name}.gemspec"]
|
43
|
+
spec.files += [".yardopts"]
|
43
44
|
spec.files += Dir.glob("lib/**/*.rb")
|
44
45
|
spec.files += Dir.glob("doc/text/*")
|
45
46
|
spec.test_files += Dir.glob("test/**/*")
|
data/lib/groonga/command/base.rb
CHANGED
@@ -24,6 +24,7 @@ require "yajl"
|
|
24
24
|
require "groonga/command/error"
|
25
25
|
|
26
26
|
require "groonga/command/base"
|
27
|
+
|
27
28
|
require "groonga/command/get"
|
28
29
|
require "groonga/command/select"
|
29
30
|
require "groonga/command/suggest"
|
@@ -36,6 +37,7 @@ require "groonga/command/column-remove"
|
|
36
37
|
require "groonga/command/column-rename"
|
37
38
|
require "groonga/command/delete"
|
38
39
|
require "groonga/command/truncate"
|
40
|
+
require "groonga/command/register"
|
39
41
|
|
40
42
|
module Groonga
|
41
43
|
module Command
|
@@ -70,6 +72,16 @@ module Groonga
|
|
70
72
|
|
71
73
|
class Parser
|
72
74
|
class << self
|
75
|
+
|
76
|
+
# parses groonga command or HTTP (starts with "/d/") command.
|
77
|
+
# @overload parse(data)
|
78
|
+
# @!macro [new] parser.parse.argument
|
79
|
+
# @param [String] data parsed command.
|
80
|
+
# @return [Groonga::Command] Returns
|
81
|
+
# {Groonga::Command} including parsed data.
|
82
|
+
# @!macro parser.parse.argument
|
83
|
+
# @overload parse(data, &block)
|
84
|
+
# @!macro parser.parse.argument
|
73
85
|
def parse(data, &block)
|
74
86
|
if block_given?
|
75
87
|
event_parse(data, &block)
|
@@ -111,8 +123,16 @@ module Groonga
|
|
111
123
|
parser.on_command do |command|
|
112
124
|
parsed_command = command
|
113
125
|
end
|
126
|
+
parser.on_load_columns do |command, columns|
|
127
|
+
command[:columns] ||= columns.join(",")
|
128
|
+
end
|
129
|
+
values = []
|
130
|
+
parser.on_load_value do |_, value|
|
131
|
+
values << value
|
132
|
+
end
|
114
133
|
parser.on_load_complete do |command|
|
115
134
|
parsed_command = command
|
135
|
+
parsed_command[:values] ||= Yajl::Encoder.encode(values)
|
116
136
|
end
|
117
137
|
|
118
138
|
consume_data(parser, data)
|
@@ -140,11 +160,15 @@ module Groonga
|
|
140
160
|
initialize_hooks
|
141
161
|
end
|
142
162
|
|
163
|
+
# Streaming parsing command.
|
164
|
+
# @param [String] chunk parsed chunk of command.
|
143
165
|
def <<(chunk)
|
144
166
|
@buffer << chunk
|
145
167
|
consume_buffer
|
146
168
|
end
|
147
169
|
|
170
|
+
# Finishes parsing. If Parser is loading values specified "load"
|
171
|
+
# command, this method raises {ParseError}.
|
148
172
|
def finish
|
149
173
|
if @loading
|
150
174
|
raise ParseError.new("not completed",
|
@@ -403,7 +427,6 @@ module Groonga
|
|
403
427
|
command
|
404
428
|
end
|
405
429
|
|
406
|
-
private
|
407
430
|
def reset
|
408
431
|
@command = nil
|
409
432
|
@loading = false
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# Copyright (C) 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 "groonga/command/base"
|
20
|
+
|
21
|
+
module Groonga
|
22
|
+
module Command
|
23
|
+
class Register < Base
|
24
|
+
Command.register("register", self)
|
25
|
+
|
26
|
+
class << self
|
27
|
+
def parameter_names
|
28
|
+
[
|
29
|
+
:path,
|
30
|
+
]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# Copyright (C) 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 RegisterCommandTest < Test::Unit::TestCase
|
20
|
+
class CommandLineTest < self
|
21
|
+
include GroongaCommandTestUtils::CommandLineCommandParser
|
22
|
+
|
23
|
+
def test_ordered_arguments
|
24
|
+
path = "tokenizers/mecab"
|
25
|
+
|
26
|
+
command = parse(path)
|
27
|
+
assert_instance_of(Groonga::Command::Register, command)
|
28
|
+
assert_equal({
|
29
|
+
:path => path,
|
30
|
+
},
|
31
|
+
command.arguments)
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
def parse(*arguments)
|
36
|
+
super("register", arguments, :output_type => false)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: groonga-command
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: yajl-ruby
|
@@ -150,6 +150,7 @@ files:
|
|
150
150
|
- Rakefile
|
151
151
|
- Gemfile
|
152
152
|
- groonga-command.gemspec
|
153
|
+
- .yardopts
|
153
154
|
- lib/groonga/command/parser.rb
|
154
155
|
- lib/groonga/command/load.rb
|
155
156
|
- lib/groonga/command/table-remove.rb
|
@@ -160,6 +161,7 @@ files:
|
|
160
161
|
- lib/groonga/command/get.rb
|
161
162
|
- lib/groonga/command/suggest.rb
|
162
163
|
- lib/groonga/command/table-rename.rb
|
164
|
+
- lib/groonga/command/register.rb
|
163
165
|
- lib/groonga/command/column-rename.rb
|
164
166
|
- lib/groonga/command/table-create.rb
|
165
167
|
- lib/groonga/command/delete.rb
|
@@ -182,6 +184,7 @@ files:
|
|
182
184
|
- test/command/test-column-remove.rb
|
183
185
|
- test/command/test-column-rename.rb
|
184
186
|
- test/command/test-table-rename.rb
|
187
|
+
- test/command/test-register.rb
|
185
188
|
- test/command/test-select.rb
|
186
189
|
- test/groonga-command-test-utils.rb
|
187
190
|
- test/test-parser.rb
|
@@ -200,7 +203,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
200
203
|
version: '0'
|
201
204
|
segments:
|
202
205
|
- 0
|
203
|
-
hash: -
|
206
|
+
hash: -126866082870084770
|
204
207
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
205
208
|
none: false
|
206
209
|
requirements:
|
@@ -209,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
212
|
version: '0'
|
210
213
|
segments:
|
211
214
|
- 0
|
212
|
-
hash: -
|
215
|
+
hash: -126866082870084770
|
213
216
|
requirements: []
|
214
217
|
rubyforge_project:
|
215
218
|
rubygems_version: 1.8.23
|
@@ -231,6 +234,7 @@ test_files:
|
|
231
234
|
- test/command/test-column-remove.rb
|
232
235
|
- test/command/test-column-rename.rb
|
233
236
|
- test/command/test-table-rename.rb
|
237
|
+
- test/command/test-register.rb
|
234
238
|
- test/command/test-select.rb
|
235
239
|
- test/groonga-command-test-utils.rb
|
236
240
|
- test/test-parser.rb
|