groonga-client 0.6.0 → 0.6.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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03b68a1a7f59bc34045692dd2e552ce9f794bba69e7093bc6190e51fb0193be7
|
4
|
+
data.tar.gz: 14694be087dafa31671b4965b0c8ff04a8dde8c96050c2284215e3d93c5e1c3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c32a87151621709018d2d2e13e71443558852ff2e2834f3241caacb389534179872d47f7dad739c63b131aadd328a738cd6d571b7859bcaf02393cb42779ef94
|
7
|
+
data.tar.gz: b87752ad00e9c4a7bed662ec5c14f0ad7a3f2a0ec4b5394ad7e02c20bb45329800500f555567a7798c424a186240bb44d8340cb749fa6638fbdfa4f9f2444692
|
data/doc/text/news.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013-
|
1
|
+
# Copyright (C) 2013-2019 Sutou Kouhei <kou@clear-code.com>
|
2
2
|
# Copyright (C) 2013 Kosuke Asami
|
3
3
|
# Copyright (C) 2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
4
4
|
#
|
@@ -329,8 +329,19 @@ module Groonga
|
|
329
329
|
def parse_slices_v1(raw_slices)
|
330
330
|
slices = {}
|
331
331
|
(raw_slices || {}).each do |key, raw_slice|
|
332
|
+
if raw_slice.last.is_a?(::Hash)
|
333
|
+
raw_drilldowns = raw_slice.last
|
334
|
+
raw_slice = raw_slice[0..-2]
|
335
|
+
drilldowns = {}
|
336
|
+
raw_drilldowns.each do |label, raw_drilldown|
|
337
|
+
n_hits, records = parse_match_records_v1(raw_drilldown)
|
338
|
+
drilldowns[label] = Drilldown.new(label, n_hits, records)
|
339
|
+
end
|
340
|
+
else
|
341
|
+
drilldowns = {}
|
342
|
+
end
|
332
343
|
n_hits, records = parse_match_records_v1(raw_slice)
|
333
|
-
slices[key] = Slice.new(key, n_hits, records)
|
344
|
+
slices[key] = Slice.new(key, n_hits, records, drilldowns)
|
334
345
|
end
|
335
346
|
slices
|
336
347
|
end
|
@@ -339,7 +350,8 @@ module Groonga
|
|
339
350
|
slices = {}
|
340
351
|
(raw_slices || {}).each do |key, raw_slice|
|
341
352
|
n_hits, records = parse_match_records_v3(raw_slice)
|
342
|
-
|
353
|
+
drilldowns = parse_drilldowns_v3(raw_slice["drilldowns"])
|
354
|
+
slices[key] = Slice.new(key, n_hits, records, drilldowns)
|
343
355
|
end
|
344
356
|
slices
|
345
357
|
end
|
@@ -353,7 +365,7 @@ module Groonga
|
|
353
365
|
alias_method :items, :records
|
354
366
|
end
|
355
367
|
|
356
|
-
class Slice < Struct.new(:key, :n_hits, :records)
|
368
|
+
class Slice < Struct.new(:key, :n_hits, :records, :drilldowns)
|
357
369
|
end
|
358
370
|
end
|
359
371
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013-
|
1
|
+
# Copyright (C) 2013-2019 Sutou Kouhei <kou@clear-code.com>
|
2
2
|
# Copyright (C) 2013 Kosuke Asami
|
3
3
|
# Copyright (C) 2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
4
4
|
#
|
@@ -320,12 +320,14 @@ class TestResponseSelectCommandVersion1 < Test::Unit::TestCase
|
|
320
320
|
class TestSlices < self
|
321
321
|
def setup
|
322
322
|
pair_arguments = {
|
323
|
-
"slices[groonga].filter" =>
|
323
|
+
"slices[groonga].filter" => "tag @ 'groonga'",
|
324
|
+
"slices[groonga].limit" => "2",
|
325
|
+
"slices[groonga].drilldowns[author].keys" => "author",
|
324
326
|
}
|
325
327
|
@command = Groonga::Command::Select.new("select", pair_arguments)
|
326
328
|
@body = [
|
327
329
|
[
|
328
|
-
[
|
330
|
+
[4],
|
329
331
|
[
|
330
332
|
[
|
331
333
|
"_id",
|
@@ -339,10 +341,11 @@ class TestResponseSelectCommandVersion1 < Test::Unit::TestCase
|
|
339
341
|
[1, "groonga"],
|
340
342
|
[2, "rroonga"],
|
341
343
|
[3, "groonga"],
|
344
|
+
[4, "groonga"],
|
342
345
|
],
|
343
346
|
{
|
344
347
|
"groonga" => [
|
345
|
-
[
|
348
|
+
[3],
|
346
349
|
[
|
347
350
|
[
|
348
351
|
"_id",
|
@@ -355,19 +358,55 @@ class TestResponseSelectCommandVersion1 < Test::Unit::TestCase
|
|
355
358
|
],
|
356
359
|
[1, "groonga"],
|
357
360
|
[3, "groonga"],
|
358
|
-
|
359
|
-
|
361
|
+
{
|
362
|
+
"author" => [
|
363
|
+
[3],
|
364
|
+
[
|
365
|
+
[
|
366
|
+
"_key",
|
367
|
+
"ShortText",
|
368
|
+
],
|
369
|
+
[
|
370
|
+
"_nsubrecs",
|
371
|
+
"Int32",
|
372
|
+
],
|
373
|
+
],
|
374
|
+
[
|
375
|
+
"Alice",
|
376
|
+
1,
|
377
|
+
],
|
378
|
+
[
|
379
|
+
"Bob",
|
380
|
+
1,
|
381
|
+
],
|
382
|
+
[
|
383
|
+
"Chris",
|
384
|
+
1,
|
385
|
+
],
|
386
|
+
],
|
387
|
+
},
|
388
|
+
],
|
389
|
+
},
|
360
390
|
]
|
361
391
|
end
|
362
392
|
|
363
393
|
def test_slices
|
364
394
|
assert_equal({
|
365
|
-
"groonga" =>
|
366
|
-
|
367
|
-
|
368
|
-
|
395
|
+
"groonga" => {
|
396
|
+
records: [
|
397
|
+
{"_id" => 1, "tag" => "groonga"},
|
398
|
+
{"_id" => 3, "tag" => "groonga"},
|
399
|
+
],
|
400
|
+
drilldowns: {
|
401
|
+
"author" => [
|
402
|
+
{"_key" => "Alice", "_nsubrecs" => 1},
|
403
|
+
{"_key" => "Bob", "_nsubrecs" => 1},
|
404
|
+
{"_key" => "Chris", "_nsubrecs" => 1},
|
405
|
+
],
|
406
|
+
},
|
407
|
+
},
|
369
408
|
},
|
370
|
-
collect_values(@body
|
409
|
+
collect_values(@body))
|
371
410
|
end
|
372
411
|
|
373
412
|
private
|
@@ -375,10 +414,23 @@ class TestResponseSelectCommandVersion1 < Test::Unit::TestCase
|
|
375
414
|
create_response(body).slices
|
376
415
|
end
|
377
416
|
|
417
|
+
def build_drilldown(label, n_hits, records)
|
418
|
+
Groonga::Client::Response::Select::Drilldown.new(label,
|
419
|
+
n_hits,
|
420
|
+
records)
|
421
|
+
end
|
422
|
+
|
378
423
|
def collect_values(body)
|
379
424
|
values = {}
|
380
425
|
slices(body).each do |label, slice|
|
381
|
-
|
426
|
+
drilldowns = {}
|
427
|
+
slice.drilldowns.each do |label, drilldown|
|
428
|
+
drilldowns[label] = drilldown.records
|
429
|
+
end
|
430
|
+
values[label] = {
|
431
|
+
records: slice.records,
|
432
|
+
drilldowns: drilldowns,
|
433
|
+
}
|
382
434
|
end
|
383
435
|
values
|
384
436
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2013-
|
1
|
+
# Copyright (C) 2013-2019 Sutou Kouhei <kou@clear-code.com>
|
2
2
|
# Copyright (C) 2013 Kosuke Asami
|
3
3
|
# Copyright (C) 2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
4
4
|
#
|
@@ -319,7 +319,36 @@ class TestResponseSelectCommandVersion3 < Test::Unit::TestCase
|
|
319
319
|
"records" => [
|
320
320
|
[1, "groonga"],
|
321
321
|
[3, "groonga"],
|
322
|
-
]
|
322
|
+
],
|
323
|
+
"drilldowns" => {
|
324
|
+
"author" => {
|
325
|
+
"n_hits" => 3,
|
326
|
+
"columns" => [
|
327
|
+
{
|
328
|
+
"name" => "_key",
|
329
|
+
"type" => "ShortText",
|
330
|
+
},
|
331
|
+
{
|
332
|
+
"name" => "_nsubrecs",
|
333
|
+
"type" => "Int32",
|
334
|
+
},
|
335
|
+
],
|
336
|
+
"records" => [
|
337
|
+
[
|
338
|
+
"Alice",
|
339
|
+
1,
|
340
|
+
],
|
341
|
+
[
|
342
|
+
"Bob",
|
343
|
+
1,
|
344
|
+
],
|
345
|
+
[
|
346
|
+
"Chris",
|
347
|
+
1,
|
348
|
+
],
|
349
|
+
],
|
350
|
+
},
|
351
|
+
},
|
323
352
|
}
|
324
353
|
}
|
325
354
|
}
|
@@ -327,12 +356,21 @@ class TestResponseSelectCommandVersion3 < Test::Unit::TestCase
|
|
327
356
|
|
328
357
|
def test_slices
|
329
358
|
assert_equal({
|
330
|
-
"groonga" =>
|
331
|
-
|
332
|
-
|
333
|
-
|
359
|
+
"groonga" => {
|
360
|
+
records: [
|
361
|
+
{"_id" => 1, "tag" => "groonga"},
|
362
|
+
{"_id" => 3, "tag" => "groonga"},
|
363
|
+
],
|
364
|
+
drilldowns: {
|
365
|
+
"author" => [
|
366
|
+
{"_key" => "Alice", "_nsubrecs" => 1},
|
367
|
+
{"_key" => "Bob", "_nsubrecs" => 1},
|
368
|
+
{"_key" => "Chris", "_nsubrecs" => 1},
|
369
|
+
],
|
370
|
+
},
|
371
|
+
},
|
334
372
|
},
|
335
|
-
collect_values(@body
|
373
|
+
collect_values(@body))
|
336
374
|
end
|
337
375
|
|
338
376
|
private
|
@@ -343,7 +381,14 @@ class TestResponseSelectCommandVersion3 < Test::Unit::TestCase
|
|
343
381
|
def collect_values(body)
|
344
382
|
values = {}
|
345
383
|
slices(body).each do |label, slice|
|
346
|
-
|
384
|
+
drilldowns = {}
|
385
|
+
slice.drilldowns.each do |label, drilldown|
|
386
|
+
drilldowns[label] = drilldown.records
|
387
|
+
end
|
388
|
+
values[label] = {
|
389
|
+
records: slice.records,
|
390
|
+
drilldowns: drilldowns,
|
391
|
+
}
|
347
392
|
end
|
348
393
|
values
|
349
394
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: groonga-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Haruka Yoshihara
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2019-07-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: gqtp
|
@@ -161,9 +161,9 @@ email:
|
|
161
161
|
- kou@clear-code.com
|
162
162
|
- tfortress58@gmail.com
|
163
163
|
executables:
|
164
|
-
- groonga-client
|
165
|
-
- groonga-client-index-check
|
166
164
|
- groonga-client-index-recreate
|
165
|
+
- groonga-client-index-check
|
166
|
+
- groonga-client
|
167
167
|
extensions: []
|
168
168
|
extra_rdoc_files: []
|
169
169
|
files:
|
@@ -283,42 +283,42 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
283
283
|
version: '0'
|
284
284
|
requirements: []
|
285
285
|
rubyforge_project:
|
286
|
-
rubygems_version:
|
286
|
+
rubygems_version: 2.7.6.2
|
287
287
|
signing_key:
|
288
288
|
specification_version: 4
|
289
289
|
summary: Groonga-client is a client for Groonga (http://groonga.org/) implemented
|
290
290
|
with pure Ruby. You can use it without Groonga.
|
291
291
|
test_files:
|
292
|
+
- test/results/test-table-list.rb
|
292
293
|
- test/test-script-syntax.rb
|
293
|
-
- test/
|
294
|
-
- test/
|
295
|
-
- test/response/test-schema.rb
|
296
|
-
- test/response/test-select-tsv.rb
|
297
|
-
- test/response/test-error.rb
|
298
|
-
- test/response/test-table-remove.rb
|
299
|
-
- test/response/test-select-xml.rb
|
294
|
+
- test/response/test-table-create.rb
|
295
|
+
- test/response/helper.rb
|
300
296
|
- test/response/test-select-command-version3.rb
|
301
|
-
- test/response/test-table-list.rb
|
302
297
|
- test/response/test-column-list.rb
|
298
|
+
- test/response/test-select-xml.rb
|
303
299
|
- test/response/test-load.rb
|
304
|
-
- test/response/helper.rb
|
305
|
-
- test/response/test-base.rb
|
306
300
|
- test/response/test-select-command-version1.rb
|
301
|
+
- test/response/test-select-tsv.rb
|
302
|
+
- test/response/test-table-list.rb
|
307
303
|
- test/response/test-status.rb
|
308
|
-
- test/response/test-
|
309
|
-
- test/
|
310
|
-
- test/test-
|
304
|
+
- test/response/test-schema.rb
|
305
|
+
- test/response/test-base.rb
|
306
|
+
- test/response/test-error.rb
|
307
|
+
- test/response/test-table-remove.rb
|
308
|
+
- test/command-line/helper.rb
|
309
|
+
- test/command-line/test-index-recreate.rb
|
310
|
+
- test/command-line/test-index-check.rb
|
311
311
|
- test/run-test.rb
|
312
|
-
- test/
|
312
|
+
- test/test-command.rb
|
313
|
+
- test/request/select/test-backward-compatible-sort-keys-parameter.rb
|
313
314
|
- test/request/select/test-values-parameter.rb
|
314
|
-
- test/request/select/test-output-columns-parameter.rb
|
315
315
|
- test/request/select/test-scorer.rb
|
316
|
-
- test/request/select/test-backward-compatible-sort-keys-parameter.rb
|
317
316
|
- test/request/select/test-filter.rb
|
317
|
+
- test/request/select/test-output-columns-parameter.rb
|
318
318
|
- test/request/select/test-sort-keys-parameter.rb
|
319
|
-
- test/request/test-
|
319
|
+
- test/request/test-generic.rb
|
320
320
|
- test/request/test-merger.rb
|
321
|
+
- test/request/test-select.rb
|
321
322
|
- test/test-client.rb
|
322
|
-
- test/
|
323
|
-
- test/
|
324
|
-
- test/command-line/test-index-check.rb
|
323
|
+
- test/protocol/test-gqtp.rb
|
324
|
+
- test/protocol/test-http.rb
|