groonga-client 0.0.1 → 0.0.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.
data/doc/text/news.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # NEWS
2
2
 
3
+ ## 0.0.2 - 2013-07-08
4
+
5
+ ### Improvements
6
+
7
+ * Supported "select" command.
8
+ * Supported Enumerable type interface in
9
+ Response::TableList and Response::ColumnList
10
+
3
11
  ## 0.0.1 - 2013-06-27
4
12
 
5
13
  Initial release!!!
@@ -46,13 +46,14 @@ Gem::Specification.new do |spec|
46
46
  # spec.executables = Dir.glob("*")
47
47
  # end
48
48
 
49
- spec.add_runtime_dependency("gqtp")
50
- spec.add_runtime_dependency("groonga-command", ">= 1.0.1")
49
+ spec.add_runtime_dependency("gqtp", ">= 1.0.4")
50
+ spec.add_runtime_dependency("groonga-command", ">= 1.0.2")
51
51
 
52
52
  spec.add_development_dependency("bundler")
53
53
  spec.add_development_dependency("rake")
54
54
  spec.add_development_dependency("test-unit")
55
55
  spec.add_development_dependency("test-unit-notify")
56
+ spec.add_development_dependency("test-unit-rr")
56
57
  spec.add_development_dependency("packnga")
57
58
  spec.add_development_dependency("redcarpet")
58
59
  end
@@ -117,6 +117,7 @@ module Groonga
117
117
  end
118
118
 
119
119
  def select(parameters)
120
+ execute_command("select", parameters)
120
121
  end
121
122
 
122
123
  def shutdown(parameters={})
@@ -32,8 +32,7 @@ module Groonga
32
32
 
33
33
  response = nil
34
34
  request = connection.send(@command) do |raw_response|
35
- response_class = Groonga::Client::Response.find(@command.name)
36
- response = response_class.parse(raw_response, @command.output_type)
35
+ response = parse_raw_response(raw_response)
37
36
  yield(response) if async
38
37
  end
39
38
 
@@ -44,6 +43,12 @@ module Groonga
44
43
  response
45
44
  end
46
45
  end
46
+
47
+ private
48
+ def parse_raw_response(raw_response)
49
+ response_class = Groonga::Client::Response.find(@command.name)
50
+ response_class.parse(raw_response, @command.output_type)
51
+ end
47
52
  end
48
53
  end
49
54
  end
@@ -32,5 +32,6 @@ require "groonga/client/response/log_put"
32
32
  require "groonga/client/response/log_reopen"
33
33
  require "groonga/client/response/quit"
34
34
  require "groonga/client/response/register"
35
+ require "groonga/client/response/select"
35
36
  require "groonga/client/response/status"
36
37
  require "groonga/client/response/table_list"
@@ -23,16 +23,32 @@ module Groonga
23
23
  class Client
24
24
  module Response
25
25
  class ColumnList < Base
26
+ include Enumerable
27
+
26
28
  Response.register("column_list", self)
27
29
 
28
30
  def initialize(header, body)
29
31
  super(header, parse_body(body))
30
32
  end
31
33
 
34
+ def each
35
+ @columns.each do |column|
36
+ yield column
37
+ end
38
+ end
39
+
40
+ def size
41
+ @columns.size
42
+ end
43
+
44
+ def [](index)
45
+ @columns[index]
46
+ end
47
+
32
48
  def parse_body(body)
33
49
  properties = body.first
34
50
  infos = body[1..-1]
35
- infos.collect do |info|
51
+ @columns = infos.collect do |info|
36
52
  column = Column.new
37
53
  properties.each_with_index do |(name, _), i|
38
54
  column.send("#{name}=", info[i])
@@ -0,0 +1,53 @@
1
+ require "groonga/client/response/base"
2
+
3
+ module Groonga
4
+ class Client
5
+ module Response
6
+ class Select < Base
7
+ Response.register("select", self)
8
+
9
+ attr_accessor :records, :n_records
10
+ attr_accessor :drilldowns
11
+
12
+ def initialize(header, body)
13
+ super(header, parse_body(body))
14
+ end
15
+
16
+ private
17
+ def parse_body(body)
18
+ @n_records, @records = parse_match_records(body.first)
19
+ @drilldowns = parse_drilldowns(body[1..-1])
20
+ body
21
+ end
22
+
23
+ def parse_result(raw_result)
24
+ n_items = raw_result.first.first
25
+ properties = raw_result[1]
26
+ infos = raw_result[2..-1]
27
+ items = infos.collect do |info|
28
+ item = {}
29
+ properties.each_with_index do |(name, _), i|
30
+ item[name] = info[i]
31
+ end
32
+ item
33
+ end if infos
34
+ [n_items, items]
35
+ end
36
+
37
+ def parse_match_records(raw_records)
38
+ parse_result(raw_records)
39
+ end
40
+
41
+ def parse_drilldowns(raw_drilldowns)
42
+ raw_drilldowns.collect do |raw_drilldown|
43
+ n_hits, items = parse_result(raw_drilldown)
44
+ Drilldown.new(n_hits, items)
45
+ end if raw_drilldowns
46
+ end
47
+
48
+ Drilldown = Struct.new(:n_hits, :items)
49
+ end
50
+ end
51
+ end
52
+ end
53
+
@@ -23,17 +23,33 @@ module Groonga
23
23
  class Client
24
24
  module Response
25
25
  class TableList < Base
26
+ include Enumerable
27
+
26
28
  Response.register("table_list", self)
27
29
 
28
30
  def initialize(header, body)
29
31
  super(header, parse_body(body))
30
32
  end
31
33
 
34
+ def each
35
+ @tables.each do |table|
36
+ yield table
37
+ end
38
+ end
39
+
40
+ def size
41
+ @tables.size
42
+ end
43
+
44
+ def [](index)
45
+ @tables[index]
46
+ end
47
+
32
48
  private
33
49
  def parse_body(body)
34
50
  properties = body.first
35
51
  infos = body[1..-1]
36
- infos.collect do |info|
52
+ @tables = infos.collect do |info|
37
53
  table = Table.new
38
54
  properties.each_with_index do |(name, _), i|
39
55
  table.send("#{name}=", info[i])
@@ -1,5 +1,5 @@
1
1
  module Groonga
2
2
  class Client
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
@@ -0,0 +1,7 @@
1
+ module TestResponseHelper
2
+ def make_command(command_name, parameters = {})
3
+ command_class = Groonga::Command.find(command_name)
4
+ command = command_class.new(command_name, parameters)
5
+ Groonga::Client::Command.new(command)
6
+ end
7
+ end
@@ -0,0 +1,25 @@
1
+ require "test/unit/rr"
2
+
3
+ require "response/helper"
4
+
5
+ class TestResponseColumnList < Test::Unit::TestCase
6
+ include TestResponseHelper
7
+
8
+ def test_column_list
9
+ header = [0,1372430096.70991,0.000522851943969727]
10
+ body = [[["id","UInt32"],["name","ShortText"],["path","ShortText"],["type","ShortText"],["flags","ShortText"],["domain","ShortText"],["range","ShortText"],["source","ShortText"]],
11
+ [256,"Text","/tmp/test.db.0000100","var","COLUMN_SCALAR|PERSISTENT","TestTable","ShortText",[]]]
12
+
13
+ connection = Object.new
14
+ stub(connection).send.with_any_args.yields([header, body].to_json) do
15
+ request = Object.new
16
+ stub(request).wait do
17
+ true
18
+ end
19
+ end
20
+
21
+ response = make_command("column_list").execute(connection)
22
+ assert_equal(Groonga::Client::Response::ColumnList, response.class)
23
+ end
24
+ end
25
+
@@ -0,0 +1,23 @@
1
+ require "test/unit/rr"
2
+
3
+ require "response/helper"
4
+
5
+ class TestResponseSelect < Test::Unit::TestCase
6
+ include TestResponseHelper
7
+
8
+ def test_select
9
+ header = [0,1372430096.70991,0.000522851943969727]
10
+ body = [[[1], [["_id", "UInt32"]], [1]]]
11
+
12
+ connection = Object.new
13
+ stub(connection).send.with_any_args.yields([header, body].to_json) do
14
+ request = Object.new
15
+ stub(request).wait do
16
+ true
17
+ end
18
+ end
19
+
20
+ response = make_command("select").execute(connection)
21
+ assert_equal(Groonga::Client::Response::Select, response.class)
22
+ end
23
+ end
@@ -0,0 +1,24 @@
1
+ require "test/unit/rr"
2
+
3
+ require "response/helper"
4
+
5
+ class TestResponseTableList < Test::Unit::TestCase
6
+ include TestResponseHelper
7
+
8
+ def test_table_list
9
+ header = [0,1372430096.70991,0.000522851943969727]
10
+ body = [[["id","UInt32"],["name","ShortText"],["path","ShortText"],["flags","ShortText"],["domain","ShortText"],["range","ShortText"],["default_tokenizer","ShortText"],["normalizer","ShortText"]],
11
+ [256,"Test","/tmp/test.db.0000100","TABLE_HASH_KEY|PERSISTENT",nil,nil,nil,nil]]
12
+
13
+ connection = Object.new
14
+ stub(connection).send.with_any_args.yields([header, body].to_json) do
15
+ request = Object.new
16
+ stub(request).wait do
17
+ true
18
+ end
19
+ end
20
+
21
+ response = make_command("table_list").execute(connection)
22
+ assert_equal(Groonga::Client::Response::TableList, response.class)
23
+ end
24
+ end
@@ -0,0 +1,63 @@
1
+ require "test/unit/rr"
2
+
3
+ class TestResultsColumnList < Test::Unit::TestCase
4
+ class TestResults < self
5
+ def setup
6
+ header = [0,1372430096.70991,0.000522851943969727]
7
+ body = [[["id","UInt32"],["name","ShortText"],["path","ShortText"],["type","ShortText"],["flags","ShortText"],["domain","ShortText"],["range","ShortText"],["source","ShortText"]],
8
+ [259,"_key","","","COLUMN_SCALAR","Bigram","ShortText",[]],
9
+ [278,"comment_index","/tmp/db.db.0000116","index","COLUMN_INDEX|WITH_POSITION|PERSISTENT","Bigram","Comments",["Comments.comment"]],
10
+ [277,"users_index","/tmp/db.db.0000115","index","COLUMN_INDEX|WITH_SECTION|WITH_POSITION|PERSISTENT","Bigram","Users",["Users.name","Users.location_str","Users.description"]]]
11
+ @column_list = Groonga::Client::Response::ColumnList.new(header, body)
12
+ end
13
+
14
+ def test_column_list
15
+ assert_equal(
16
+ [
17
+ {
18
+ :id => 259,
19
+ :name => "_key",
20
+ :path => "",
21
+ :type => "",
22
+ :flags => "COLUMN_SCALAR",
23
+ :domain => "Bigram",
24
+ :range => "ShortText",
25
+ :source => [],
26
+ },
27
+ {
28
+ :id => 278,
29
+ :name => "comment_index",
30
+ :path => "/tmp/db.db.0000116",
31
+ :type => "index",
32
+ :flags => "COLUMN_INDEX|WITH_POSITION|PERSISTENT",
33
+ :domain => "Bigram",
34
+ :range => "Comments",
35
+ :source => ["Comments.comment"],
36
+ },
37
+ {
38
+ :id => 277,
39
+ :name => "users_index",
40
+ :path => "/tmp/db.db.0000115",
41
+ :type => "index",
42
+ :flags => "COLUMN_INDEX|WITH_SECTION|WITH_POSITION|PERSISTENT",
43
+ :domain => "Bigram",
44
+ :range => "Users",
45
+ :source => ["Users.name","Users.location_str", "Users.description"],
46
+ },
47
+ ],
48
+ @column_list.collect {|column|
49
+ {
50
+ :id => column.id,
51
+ :name => column.name,
52
+ :path => column.path,
53
+ :type => column.type,
54
+ :flags => column.flags,
55
+ :domain => column.domain,
56
+ :range => column.range,
57
+ :source => column.source,
58
+ }
59
+ }
60
+ )
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,63 @@
1
+ require "test/unit/rr"
2
+
3
+ class TestResultsSelect < Test::Unit::TestCase
4
+ class TestResults < self
5
+ def setup
6
+ header = [0,1372430096.70991,0.000522851943969727]
7
+ body = [[[6],[["_id","UInt32"],["country","Country"],["domain","Domain"]],[1,"japan",".com"],[2,"brazil",".com"],[3,"japan",".org"],[4,"usa",".com"],[5,"japan",".org"],[6,"usa",".com"]],
8
+ [[3],[["_key","ShortText"],["_nsubrecs","Int32"]],["japan",3],["brazil",1],["usa",2]],
9
+ [[2],[["_key","ShortText"],["_nsubrecs","Int32"]],[".com",4],[".org",2]]]
10
+ @select = Groonga::Client::Response::Select.new(header, body)
11
+ end
12
+
13
+ def test_n_records
14
+ assert_equal(6, @select.n_records)
15
+ end
16
+
17
+ def test_records
18
+ expected_records = [
19
+ {"_id"=>1, "country"=>"japan", "domain"=>".com"},
20
+ {"_id"=>2, "country"=>"brazil", "domain"=>".com"},
21
+ {"_id"=>3, "country"=>"japan", "domain"=>".org"},
22
+ {"_id"=>4, "country"=>"usa", "domain"=>".com"},
23
+ {"_id"=>5, "country"=>"japan", "domain"=>".org"},
24
+ {"_id"=>6, "country"=>"usa", "domain"=>".com"},
25
+ ]
26
+ assert_equal(expected_records, @select.records)
27
+ end
28
+
29
+ def test_drilldowns
30
+ expected_drilldowns = [
31
+ Drilldown.new(3, [
32
+ {"_key"=>"japan", "_nsubrecs"=>3},
33
+ {"_key"=>"brazil", "_nsubrecs"=>1},
34
+ {"_key"=>"usa", "_nsubrecs"=>2},]),
35
+ Drilldown.new(2, [
36
+ {"_key"=>".com", "_nsubrecs"=>4},
37
+ {"_key"=>".org", "_nsubrecs"=>2}]),
38
+ ]
39
+ assert_equal(expected_drilldowns, @select.drilldowns.collect{|drilldown|
40
+ Drilldown.new(drilldown.n_hits, drilldown.items)
41
+ })
42
+ end
43
+ end
44
+
45
+ class TestNoRecordsBody < self
46
+ def setup
47
+ header = [0,1372430096.70991,0.000522851943969727]
48
+ body = [[[6],[["_id","UInt32"],["country","Country"]]]]
49
+ @select = Groonga::Client::Response::Select.new(header, body)
50
+ end
51
+
52
+ def test_n_records
53
+ assert_equal(6, @select.n_records)
54
+ end
55
+
56
+ def test_records
57
+ assert_equal([], @select.records)
58
+ end
59
+ end
60
+
61
+ Drilldown = Struct.new(:n_hits, :items)
62
+ end
63
+
@@ -0,0 +1,62 @@
1
+ require "test/unit/rr"
2
+
3
+ class TestResultsTableList < Test::Unit::TestCase
4
+ def setup
5
+ header = [0,1372430096.70991,0.000522851943969727]
6
+ body = [[["id","UInt32"],["name","ShortText"],["path","ShortText"],["flags","ShortText"],["domain","ShortText"],["range","ShortText"],["default_tokenizer","ShortText"],["normalizer","ShortText"]],
7
+ [257,"Ages","/tmp/test.db.0000101","TABLE_DAT_KEY|PERSISTENT","UInt32",nil,nil,nil],
8
+ [256,"Lexicon","/tmp/test.db.0000100","TABLE_PAT_KEY|PERSISTENT","ShortText",nil,"TokenBigram","NormalizerAuto"],
9
+ [258,"Logs","/tmp/test.db.0000102","TABLE_NO_KEY|PERSISTENT",nil,nil,nil,nil]]
10
+ @table_list = Groonga::Client::Response::TableList.new(header, body)
11
+ end
12
+
13
+ def test_table_list
14
+ assert_equal(
15
+ [
16
+ {
17
+ :id => 257,
18
+ :name => "Ages",
19
+ :path => "/tmp/test.db.0000101",
20
+ :flags => "TABLE_DAT_KEY|PERSISTENT",
21
+ :domain => "UInt32",
22
+ :range => nil,
23
+ :default_tokenizer => nil,
24
+ :normalizer => nil,
25
+ },
26
+ {
27
+ :id => 256,
28
+ :name => "Lexicon",
29
+ :path => "/tmp/test.db.0000100",
30
+ :flags => "TABLE_PAT_KEY|PERSISTENT",
31
+ :domain => "ShortText",
32
+ :range => nil,
33
+ :default_tokenizer => "TokenBigram",
34
+ :normalizer => "NormalizerAuto"
35
+ },
36
+ {
37
+ :id => 258,
38
+ :name => "Logs",
39
+ :path => "/tmp/test.db.0000102",
40
+ :flags => "TABLE_NO_KEY|PERSISTENT",
41
+ :domain => nil,
42
+ :range => nil,
43
+ :default_tokenizer => nil,
44
+ :normalizer => nil
45
+ },
46
+ ],
47
+ @table_list.collect {|table|
48
+ {
49
+ :id => table.id,
50
+ :name => table.name,
51
+ :path => table.path,
52
+ :flags => table.flags,
53
+ :domain => table.domain,
54
+ :range => table.range,
55
+ :default_tokenizer => table.default_tokenizer,
56
+ :normalizer => table.normalizer,
57
+ }
58
+ }
59
+ )
60
+ end
61
+ end
62
+
@@ -0,0 +1,26 @@
1
+ class TestCommand < Test::Unit::TestCase
2
+ def setup
3
+ @client = Groonga::Client.open(:protocol => :http)
4
+ end
5
+
6
+ def test_column_list
7
+ mock(@client).execute_command("column_list", :table => :Test) do
8
+ Object.new
9
+ end
10
+ @client.column_list(:table => :Test)
11
+ end
12
+
13
+ def test_select
14
+ mock(@client).execute_command("select", :table => :Test) do
15
+ Object.new
16
+ end
17
+ @client.select(:table => :Test)
18
+ end
19
+
20
+ def test_table_list
21
+ mock(@client).execute_command("table_list", {}) do
22
+ Object.new
23
+ end
24
+ @client.table_list
25
+ end
26
+ end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: groonga-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Haruka Yoshihara
@@ -10,125 +11,161 @@ authors:
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2013-06-27 00:00:00.000000000 Z
14
+ date: 2013-07-08 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: gqtp
17
18
  requirement: !ruby/object:Gem::Requirement
19
+ none: false
18
20
  requirements:
19
- - - '>='
21
+ - - ! '>='
20
22
  - !ruby/object:Gem::Version
21
- version: '0'
23
+ version: 1.0.4
22
24
  type: :runtime
23
25
  prerelease: false
24
26
  version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
25
28
  requirements:
26
- - - '>='
29
+ - - ! '>='
27
30
  - !ruby/object:Gem::Version
28
- version: '0'
31
+ version: 1.0.4
29
32
  - !ruby/object:Gem::Dependency
30
33
  name: groonga-command
31
34
  requirement: !ruby/object:Gem::Requirement
35
+ none: false
32
36
  requirements:
33
- - - '>='
37
+ - - ! '>='
34
38
  - !ruby/object:Gem::Version
35
- version: 1.0.1
39
+ version: 1.0.2
36
40
  type: :runtime
37
41
  prerelease: false
38
42
  version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
39
44
  requirements:
40
- - - '>='
45
+ - - ! '>='
41
46
  - !ruby/object:Gem::Version
42
- version: 1.0.1
47
+ version: 1.0.2
43
48
  - !ruby/object:Gem::Dependency
44
49
  name: bundler
45
50
  requirement: !ruby/object:Gem::Requirement
51
+ none: false
46
52
  requirements:
47
- - - '>='
53
+ - - ! '>='
48
54
  - !ruby/object:Gem::Version
49
55
  version: '0'
50
56
  type: :development
51
57
  prerelease: false
52
58
  version_requirements: !ruby/object:Gem::Requirement
59
+ none: false
53
60
  requirements:
54
- - - '>='
61
+ - - ! '>='
55
62
  - !ruby/object:Gem::Version
56
63
  version: '0'
57
64
  - !ruby/object:Gem::Dependency
58
65
  name: rake
59
66
  requirement: !ruby/object:Gem::Requirement
67
+ none: false
60
68
  requirements:
61
- - - '>='
69
+ - - ! '>='
62
70
  - !ruby/object:Gem::Version
63
71
  version: '0'
64
72
  type: :development
65
73
  prerelease: false
66
74
  version_requirements: !ruby/object:Gem::Requirement
75
+ none: false
67
76
  requirements:
68
- - - '>='
77
+ - - ! '>='
69
78
  - !ruby/object:Gem::Version
70
79
  version: '0'
71
80
  - !ruby/object:Gem::Dependency
72
81
  name: test-unit
73
82
  requirement: !ruby/object:Gem::Requirement
83
+ none: false
74
84
  requirements:
75
- - - '>='
85
+ - - ! '>='
76
86
  - !ruby/object:Gem::Version
77
87
  version: '0'
78
88
  type: :development
79
89
  prerelease: false
80
90
  version_requirements: !ruby/object:Gem::Requirement
91
+ none: false
81
92
  requirements:
82
- - - '>='
93
+ - - ! '>='
83
94
  - !ruby/object:Gem::Version
84
95
  version: '0'
85
96
  - !ruby/object:Gem::Dependency
86
97
  name: test-unit-notify
87
98
  requirement: !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: test-unit-rr
114
+ requirement: !ruby/object:Gem::Requirement
115
+ none: false
88
116
  requirements:
89
- - - '>='
117
+ - - ! '>='
90
118
  - !ruby/object:Gem::Version
91
119
  version: '0'
92
120
  type: :development
93
121
  prerelease: false
94
122
  version_requirements: !ruby/object:Gem::Requirement
123
+ none: false
95
124
  requirements:
96
- - - '>='
125
+ - - ! '>='
97
126
  - !ruby/object:Gem::Version
98
127
  version: '0'
99
128
  - !ruby/object:Gem::Dependency
100
129
  name: packnga
101
130
  requirement: !ruby/object:Gem::Requirement
131
+ none: false
102
132
  requirements:
103
- - - '>='
133
+ - - ! '>='
104
134
  - !ruby/object:Gem::Version
105
135
  version: '0'
106
136
  type: :development
107
137
  prerelease: false
108
138
  version_requirements: !ruby/object:Gem::Requirement
139
+ none: false
109
140
  requirements:
110
- - - '>='
141
+ - - ! '>='
111
142
  - !ruby/object:Gem::Version
112
143
  version: '0'
113
144
  - !ruby/object:Gem::Dependency
114
145
  name: redcarpet
115
146
  requirement: !ruby/object:Gem::Requirement
147
+ none: false
116
148
  requirements:
117
- - - '>='
149
+ - - ! '>='
118
150
  - !ruby/object:Gem::Version
119
151
  version: '0'
120
152
  type: :development
121
153
  prerelease: false
122
154
  version_requirements: !ruby/object:Gem::Requirement
155
+ none: false
123
156
  requirements:
124
- - - '>='
157
+ - - ! '>='
125
158
  - !ruby/object:Gem::Version
126
159
  version: '0'
127
- description: |
128
- Groonga-client gem supports HTTP or
160
+ description: ! 'Groonga-client gem supports HTTP or
161
+
129
162
  [GQTP (Groonga Query Transfer Protocol)](http://groonga.org/docs/spec/gqtp.html)
163
+
130
164
  as the protocol using a client. You can use it without groonga
165
+
131
166
  package.
167
+
168
+ '
132
169
  email:
133
170
  - yshr04hrk@gmail.com
134
171
  - kou@clear-code.com
@@ -161,6 +198,7 @@ files:
161
198
  - lib/groonga/client/response/base.rb
162
199
  - lib/groonga/client/response/dump.rb
163
200
  - lib/groonga/client/response/table_list.rb
201
+ - lib/groonga/client/response/select.rb
164
202
  - lib/groonga/client/response/log_put.rb
165
203
  - lib/groonga/client/response/clearlock.rb
166
204
  - lib/groonga/client/response/check.rb
@@ -168,34 +206,51 @@ files:
168
206
  - lib/groonga/client/response.rb
169
207
  - lib/groonga/client.rb
170
208
  - doc/text/news.md
209
+ - test/response/test-table-list.rb
210
+ - test/response/test-column-list.rb
211
+ - test/response/helper.rb
212
+ - test/response/test-select.rb
171
213
  - test/run-test.rb
214
+ - test/results/test-table-list.rb
215
+ - test/results/test-column-list.rb
216
+ - test/results/test-select.rb
217
+ - test/test-command.rb
172
218
  - test/test-client.rb
173
219
  homepage: https://github.com/ranguba/groonga-client
174
220
  licenses:
175
221
  - LGPLv2.1 or later
176
- metadata: {}
177
222
  post_install_message:
178
223
  rdoc_options: []
179
224
  require_paths:
180
225
  - lib
181
226
  required_ruby_version: !ruby/object:Gem::Requirement
227
+ none: false
182
228
  requirements:
183
- - - '>='
229
+ - - ! '>='
184
230
  - !ruby/object:Gem::Version
185
231
  version: '0'
186
232
  required_rubygems_version: !ruby/object:Gem::Requirement
233
+ none: false
187
234
  requirements:
188
- - - '>='
235
+ - - ! '>='
189
236
  - !ruby/object:Gem::Version
190
237
  version: '0'
191
238
  requirements: []
192
239
  rubyforge_project:
193
- rubygems_version: 2.0.2
240
+ rubygems_version: 1.8.23
194
241
  signing_key:
195
- specification_version: 4
242
+ specification_version: 3
196
243
  summary: Groonga-client is a client for groonga (http://groonga.org/) implemented
197
244
  with pure ruby.
198
245
  test_files:
246
+ - test/response/test-table-list.rb
247
+ - test/response/test-column-list.rb
248
+ - test/response/helper.rb
249
+ - test/response/test-select.rb
199
250
  - test/run-test.rb
251
+ - test/results/test-table-list.rb
252
+ - test/results/test-column-list.rb
253
+ - test/results/test-select.rb
254
+ - test/test-command.rb
200
255
  - test/test-client.rb
201
256
  has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 486d7005cfe3c244166bdc9227958043b53115ed
4
- data.tar.gz: 08cf812cc95984efa717aa75319ccc2cb1521386
5
- SHA512:
6
- metadata.gz: f9222918a4338736caa918355a77c964a74e0b0a6c861942d3c2314d6e189ac869c6200d751a5be3afe2a267e21aa40689594696a5095ecd558f61708a71cd4e
7
- data.tar.gz: 299134381bc0235bba588869339d748c034025f306b50e49bd148246a97c79d9814cdad1a41a5d30ddd6adc35640dbca5090a6cf0300c6b793be3f1815bd5281