groonga-client 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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