rroonga 5.0.9 → 5.1.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 +4 -4
- data/Rakefile +2 -1
- data/ext/groonga/{rb-grn-conf.c → rb-grn-config.c} +18 -13
- data/ext/groonga/rb-grn-database.c +83 -0
- data/ext/groonga/rb-grn-fix-size-column.c +85 -0
- data/ext/groonga/rb-grn-index-column.c +82 -0
- data/ext/groonga/rb-grn-object.c +67 -1
- data/ext/groonga/rb-grn-table-key-support.c +87 -1
- data/ext/groonga/rb-grn-table.c +2 -2
- data/ext/groonga/rb-grn-variable-size-column.c +84 -1
- data/ext/groonga/rb-grn.h +5 -5
- data/ext/groonga/rb-groonga.c +27 -1
- data/lib/groonga/context.rb +12 -3
- data/lib/groonga/expression-builder.rb +2 -1
- data/rroonga-build.rb +6 -6
- data/test/test-accessor.rb +30 -0
- data/test/{test-conf.rb → test-config.rb} +5 -5
- data/test/test-database.rb +41 -0
- data/test/test-fix-size-column.rb +84 -0
- data/test/test-index-column.rb +71 -1
- data/test/test-package-label.rb +20 -0
- data/test/test-table-key-support.rb +42 -0
- data/test/test-table.rb +13 -0
- data/test/test-variable-size-column.rb +71 -1
- metadata +53 -51
@@ -1,7 +1,7 @@
|
|
1
1
|
/* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
2
|
/*
|
3
|
-
Copyright (C) 2014 Masafumi Yokoyama <myokoym@gmail.com>
|
4
3
|
Copyright (C) 2009-2014 Kouhei Sutou <kou@clear-code.com>
|
4
|
+
Copyright (C) 2014-2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
5
5
|
|
6
6
|
This library is free software; you can redistribute it and/or
|
7
7
|
modify it under the terms of the GNU Lesser General Public
|
@@ -1025,6 +1025,89 @@ rb_grn_table_key_support_tokenize (int argc, VALUE *argv, VALUE self)
|
|
1025
1025
|
return rb_tokens;
|
1026
1026
|
}
|
1027
1027
|
|
1028
|
+
/*
|
1029
|
+
* Recreates all index columns in the table.
|
1030
|
+
*
|
1031
|
+
* This method is useful when you have any broken index columns in
|
1032
|
+
* the table. You don't need to specify each index column. But this
|
1033
|
+
* method spends more time rather than you specify only reindex
|
1034
|
+
* needed index columns.
|
1035
|
+
*
|
1036
|
+
* You can use {Groonga::Database#reindex} to recreate all index
|
1037
|
+
* columns in a database.
|
1038
|
+
*
|
1039
|
+
* You can use {Groonga::FixSizeColumn#reindex} or
|
1040
|
+
* {Groonga::VariableSizeColumn#reindex} to specify reindex target
|
1041
|
+
* index columns. They use index columns of the data column as
|
1042
|
+
* reindex target index columns.
|
1043
|
+
*
|
1044
|
+
* You can use {Groonga::IndexColumn#reindex} to specify the reindex
|
1045
|
+
* target index column.
|
1046
|
+
*
|
1047
|
+
* @example How to recreate all index columns in the table
|
1048
|
+
* Groonga::Schema.define do |schema|
|
1049
|
+
* schema.create_table("Memos") do |table|
|
1050
|
+
* table.short_text("title")
|
1051
|
+
* table.text("content")
|
1052
|
+
* end
|
1053
|
+
*
|
1054
|
+
* schema.create_table("BigramTerms",
|
1055
|
+
* :type => :patricia_trie,
|
1056
|
+
* :key_type => :short_text,
|
1057
|
+
* :normalizer => "NormalizerAuto",
|
1058
|
+
* :default_tokenizer => "TokenBigram") do |table|
|
1059
|
+
* table.index("Memos.title")
|
1060
|
+
* table.index("Memos.content")
|
1061
|
+
* end
|
1062
|
+
*
|
1063
|
+
* schema.create_table("MeCabTerms",
|
1064
|
+
* :type => :patricia_trie,
|
1065
|
+
* :key_type => :short_text,
|
1066
|
+
* :normalizer => "NormalizerAuto",
|
1067
|
+
* :default_tokenizer => "TokenMecab") do |table|
|
1068
|
+
* table.index("Memos.title")
|
1069
|
+
* table.index("Memos.content")
|
1070
|
+
* end
|
1071
|
+
* end
|
1072
|
+
*
|
1073
|
+
* Groonga["BigramTerms"].reindex
|
1074
|
+
* # They are called:
|
1075
|
+
* # Groonga["BigramTerms.Memos_title"].reindex
|
1076
|
+
* # Groonga["BigramTerms.Memos_content"].reindex
|
1077
|
+
* #
|
1078
|
+
* # They aren't called:
|
1079
|
+
* # Groonga["MeCabTerms.Memos_title"].reindex
|
1080
|
+
* # Groonga["MeCabTerms.Memos_content"].reindex
|
1081
|
+
*
|
1082
|
+
* @overload reindex
|
1083
|
+
* @return [void]
|
1084
|
+
*
|
1085
|
+
* @see Groonga::Database#reindex
|
1086
|
+
* @see Groonga::FixSizeColumn#reindex
|
1087
|
+
* @see Groonga::VariableSizeColumn#reindex
|
1088
|
+
* @see Groonga::IndexColumn#reindex
|
1089
|
+
*
|
1090
|
+
* @since 5.1.1
|
1091
|
+
*/
|
1092
|
+
static VALUE
|
1093
|
+
rb_grn_table_key_support_reindex (VALUE self)
|
1094
|
+
{
|
1095
|
+
grn_rc rc;
|
1096
|
+
grn_ctx *context;
|
1097
|
+
grn_obj *table;
|
1098
|
+
|
1099
|
+
rb_grn_table_key_support_deconstruct(SELF(self), &table, &context,
|
1100
|
+
NULL, NULL, NULL,
|
1101
|
+
NULL, NULL, NULL,
|
1102
|
+
NULL);
|
1103
|
+
|
1104
|
+
rc = grn_obj_reindex(context, table);
|
1105
|
+
rb_grn_context_check(context, self);
|
1106
|
+
rb_grn_rc_check(rc, self);
|
1107
|
+
|
1108
|
+
return Qnil;
|
1109
|
+
}
|
1110
|
+
|
1028
1111
|
void
|
1029
1112
|
rb_grn_init_table_key_support (VALUE mGrn)
|
1030
1113
|
{
|
@@ -1084,4 +1167,7 @@ rb_grn_init_table_key_support (VALUE mGrn)
|
|
1084
1167
|
|
1085
1168
|
rb_define_method(rb_mGrnTableKeySupport, "tokenize",
|
1086
1169
|
rb_grn_table_key_support_tokenize, -1);
|
1170
|
+
|
1171
|
+
rb_define_method(rb_mGrnTableKeySupport, "reindex",
|
1172
|
+
rb_grn_table_key_support_reindex, 0);
|
1087
1173
|
}
|
data/ext/groonga/rb-grn-table.c
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
2
|
/*
|
3
|
-
Copyright (C) 2014-2015 Masafumi Yokoyama <yokoyama@clear-code.com>
|
4
3
|
Copyright (C) 2009-2015 Kouhei Sutou <kou@clear-code.com>
|
4
|
+
Copyright (C) 2014-2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
5
5
|
|
6
6
|
This library is free software; you can redistribute it and/or
|
7
7
|
modify it under the terms of the GNU Lesser General Public
|
@@ -1376,7 +1376,7 @@ rb_grn_table_geo_sort (int argc, VALUE *argv, VALUE self)
|
|
1376
1376
|
|
1377
1377
|
rb_scan_args(argc, argv, "21", &rb_column, &rb_base_geo_point, &rb_options);
|
1378
1378
|
|
1379
|
-
column =
|
1379
|
+
column = RVAL2GRNOBJECT(rb_column, &context);
|
1380
1380
|
column_range_id = grn_obj_get_range(context, column);
|
1381
1381
|
switch (column_range_id) {
|
1382
1382
|
case GRN_DB_TOKYO_GEO_POINT:
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
2
|
/*
|
3
3
|
Copyright (C) 2009-2014 Kouhei Sutou <kou@clear-code.com>
|
4
|
-
Copyright (C) 2014 Masafumi Yokoyama <
|
4
|
+
Copyright (C) 2014-2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
5
5
|
|
6
6
|
This library is free software; you can redistribute it and/or
|
7
7
|
modify it under the terms of the GNU Lesser General Public
|
@@ -564,6 +564,86 @@ rb_grn_variable_size_column_defrag (int argc, VALUE *argv, VALUE self)
|
|
564
564
|
return INT2NUM(n_segments);
|
565
565
|
}
|
566
566
|
|
567
|
+
/*
|
568
|
+
* Recreates all index columns for the column.
|
569
|
+
*
|
570
|
+
* This method is useful when you have any broken index columns for
|
571
|
+
* the column. You don't need to specify each index column. But this
|
572
|
+
* method spends more time rather than you specify only reindex
|
573
|
+
* needed index columns.
|
574
|
+
*
|
575
|
+
* You can use {Groonga::Database#reindex} to recreate all index
|
576
|
+
* columns in a database.
|
577
|
+
*
|
578
|
+
* You can use {Groonga::TableKeySupport#reindex} to recreate all
|
579
|
+
* index columns in a table.
|
580
|
+
*
|
581
|
+
* You can use {Groonga::IndexColumn#reindex} to specify the reindex
|
582
|
+
* target index column.
|
583
|
+
*
|
584
|
+
* @example How to recreate all index columns for the column
|
585
|
+
* Groonga::Schema.define do |schema|
|
586
|
+
* schema.create_table("Memos") do |table|
|
587
|
+
* table.short_text("title")
|
588
|
+
* table.text("content")
|
589
|
+
* end
|
590
|
+
*
|
591
|
+
* schema.create_table("BigramTerms",
|
592
|
+
* :type => :patricia_trie,
|
593
|
+
* :key_type => :short_text,
|
594
|
+
* :normalizer => "NormalizerAuto",
|
595
|
+
* :default_tokenizer => "TokenBigram") do |table|
|
596
|
+
* table.index("Memos.title")
|
597
|
+
* table.index("Memos.content")
|
598
|
+
* end
|
599
|
+
*
|
600
|
+
* schema.create_table("MeCabTerms",
|
601
|
+
* :type => :patricia_trie,
|
602
|
+
* :key_type => :short_text,
|
603
|
+
* :normalizer => "NormalizerAuto",
|
604
|
+
* :default_tokenizer => "TokenMecab") do |table|
|
605
|
+
* table.index("Memos.title")
|
606
|
+
* table.index("Memos.content")
|
607
|
+
* end
|
608
|
+
* end
|
609
|
+
*
|
610
|
+
* Groonga["Memos.content"].reindex
|
611
|
+
* # They are called:
|
612
|
+
* # Groonga["BigramTerms.Memos_content"].reindex
|
613
|
+
* # Groonga["MeCabTerms.Memos_content"].reindex
|
614
|
+
* #
|
615
|
+
* # They aren't called:
|
616
|
+
* # Groonga["BigramTerms.Memos_title"].reindex
|
617
|
+
* # Groonga["MeCabTerms.Memos_title"].reindex
|
618
|
+
*
|
619
|
+
* @overload reindex
|
620
|
+
* @return [void]
|
621
|
+
*
|
622
|
+
* @see Groonga::Database#reindex
|
623
|
+
* @see Groonga::TableKeySupport#reindex
|
624
|
+
* @see Groonga::FixSizeColumn#reindex
|
625
|
+
* @see Groonga::IndexColumn#reindex
|
626
|
+
*
|
627
|
+
* @since 5.1.1
|
628
|
+
*/
|
629
|
+
static VALUE
|
630
|
+
rb_grn_variable_size_column_reindex (VALUE self)
|
631
|
+
{
|
632
|
+
grn_rc rc;
|
633
|
+
grn_ctx *context;
|
634
|
+
grn_obj *column;
|
635
|
+
|
636
|
+
rb_grn_variable_size_column_deconstruct(SELF(self), &column, &context,
|
637
|
+
NULL, NULL, NULL, NULL,
|
638
|
+
NULL, NULL);
|
639
|
+
|
640
|
+
rc = grn_obj_reindex(context, column);
|
641
|
+
rb_grn_context_check(context, self);
|
642
|
+
rb_grn_rc_check(rc, self);
|
643
|
+
|
644
|
+
return Qnil;
|
645
|
+
}
|
646
|
+
|
567
647
|
void
|
568
648
|
rb_grn_init_variable_size_column (VALUE mGrn)
|
569
649
|
{
|
@@ -579,4 +659,7 @@ rb_grn_init_variable_size_column (VALUE mGrn)
|
|
579
659
|
rb_grn_variable_size_column_compressed_p, -1);
|
580
660
|
rb_define_method(rb_cGrnVariableSizeColumn, "defrag",
|
581
661
|
rb_grn_variable_size_column_defrag, -1);
|
662
|
+
|
663
|
+
rb_define_method(rb_cGrnVariableSizeColumn, "reindex",
|
664
|
+
rb_grn_variable_size_column_reindex, 0);
|
582
665
|
}
|
data/ext/groonga/rb-grn.h
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
2
|
/*
|
3
|
-
Copyright (C)
|
4
|
-
Copyright (C)
|
3
|
+
Copyright (C) 2009-2016 Kouhei Sutou <kou@clear-code.com>
|
4
|
+
Copyright (C) 2015-2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
5
5
|
|
6
6
|
This library is free software; you can redistribute it and/or
|
7
7
|
modify it under the terms of the GNU Lesser General Public
|
@@ -100,8 +100,8 @@ RB_GRN_BEGIN_DECLS
|
|
100
100
|
#endif
|
101
101
|
|
102
102
|
#define RB_GRN_MAJOR_VERSION 5
|
103
|
-
#define RB_GRN_MINOR_VERSION
|
104
|
-
#define RB_GRN_MICRO_VERSION
|
103
|
+
#define RB_GRN_MINOR_VERSION 1
|
104
|
+
#define RB_GRN_MICRO_VERSION 1
|
105
105
|
|
106
106
|
#define RB_GRN_QUERY_DEFAULT_MAX_EXPRESSIONS 32
|
107
107
|
|
@@ -354,7 +354,7 @@ void rb_grn_init_snippet (VALUE mGrn);
|
|
354
354
|
void rb_grn_init_plugin (VALUE mGrn);
|
355
355
|
void rb_grn_init_normalizer (VALUE mGrn);
|
356
356
|
void rb_grn_init_thread (VALUE mGrn);
|
357
|
-
void
|
357
|
+
void rb_grn_init_config (VALUE mGrn);
|
358
358
|
|
359
359
|
VALUE rb_grn_rc_to_exception (grn_rc rc);
|
360
360
|
const char *rb_grn_rc_to_message (grn_rc rc);
|
data/ext/groonga/rb-groonga.c
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
/* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
2
|
/*
|
3
3
|
Copyright (C) 2009-2015 Kouhei Sutou <kou@clear-code.com>
|
4
|
+
Copyright (C) 2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
4
5
|
|
5
6
|
This library is free software; you can redistribute it and/or
|
6
7
|
modify it under the terms of the GNU Lesser General Public
|
@@ -148,6 +149,30 @@ rb_grn_init_lock_timeout (VALUE mGrn)
|
|
148
149
|
rb_grn_s_set_lock_timeout, 1);
|
149
150
|
}
|
150
151
|
|
152
|
+
/*
|
153
|
+
* Returns the Groonga package's label. It's `"Groonga"`.
|
154
|
+
*
|
155
|
+
* @example How to get the Groonga package's label
|
156
|
+
* Groonga.package_label # => "Groonga"
|
157
|
+
*
|
158
|
+
* @overload package_label
|
159
|
+
* @return [String] `"Groonga"`
|
160
|
+
*
|
161
|
+
* @since 5.1.1
|
162
|
+
*/
|
163
|
+
static VALUE
|
164
|
+
rb_grn_s_get_package_label (VALUE klass)
|
165
|
+
{
|
166
|
+
return rb_str_new_cstr(grn_get_package_label());
|
167
|
+
}
|
168
|
+
|
169
|
+
static void
|
170
|
+
rb_grn_init_package_label (VALUE mGrn)
|
171
|
+
{
|
172
|
+
rb_define_singleton_method(mGrn, "package_label",
|
173
|
+
rb_grn_s_get_package_label, 0);
|
174
|
+
}
|
175
|
+
|
151
176
|
void
|
152
177
|
Init_groonga (void)
|
153
178
|
{
|
@@ -162,6 +187,7 @@ Init_groonga (void)
|
|
162
187
|
|
163
188
|
rb_grn_init_version(mGrn);
|
164
189
|
rb_grn_init_lock_timeout(mGrn);
|
190
|
+
rb_grn_init_package_label(mGrn);
|
165
191
|
|
166
192
|
rb_grn_init_utils(mGrn);
|
167
193
|
rb_grn_init_encoding(mGrn);
|
@@ -192,5 +218,5 @@ Init_groonga (void)
|
|
192
218
|
rb_grn_init_plugin(mGrn);
|
193
219
|
rb_grn_init_normalizer(mGrn);
|
194
220
|
rb_grn_init_thread(mGrn);
|
195
|
-
|
221
|
+
rb_grn_init_config(mGrn);
|
196
222
|
}
|
data/lib/groonga/context.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
#
|
3
|
-
# Copyright (C) 2010-
|
3
|
+
# Copyright (C) 2010-2016 Kouhei Sutou <kou@clear-code.com>
|
4
4
|
#
|
5
5
|
# This library is free software; you can redistribute it and/or
|
6
6
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -347,12 +347,21 @@ module Groonga
|
|
347
347
|
memory_pool.register(object)
|
348
348
|
end
|
349
349
|
|
350
|
-
# @return [Groonga::
|
350
|
+
# @return [Groonga::Config] The database level configuration sets of
|
351
351
|
# this context.
|
352
352
|
#
|
353
353
|
# @since 5.0.9
|
354
|
+
# @deprecated since 5.1.1. Use {Groonga::Context#config} instead.
|
354
355
|
def conf
|
355
|
-
|
356
|
+
config
|
357
|
+
end
|
358
|
+
|
359
|
+
# @return [Groonga::Config] The database level configuration sets of
|
360
|
+
# this context.
|
361
|
+
#
|
362
|
+
# @since 5.1.1
|
363
|
+
def config
|
364
|
+
@config ||= Config.new(self)
|
356
365
|
end
|
357
366
|
end
|
358
367
|
end
|
@@ -81,7 +81,8 @@ module Groonga
|
|
81
81
|
end
|
82
82
|
|
83
83
|
if builders.empty?
|
84
|
-
expression.
|
84
|
+
expression.append_object(@table.context["all_records"])
|
85
|
+
expression.append_operation(Operation::CALL, 0)
|
85
86
|
else
|
86
87
|
combined_builder = builders.inject(nil) do |previous, builder|
|
87
88
|
if previous.nil?
|
data/rroonga-build.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
#
|
3
3
|
# Copyright (C) 2009-2015 Kouhei Sutou <kou@clear-code.com>
|
4
|
-
# Copyright (C) 2015 Masafumi Yokoyama <yokoyama@clear-code.com>
|
4
|
+
# Copyright (C) 2015-2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
5
5
|
#
|
6
6
|
# This library is free software; you can redistribute it and/or
|
7
7
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -19,16 +19,16 @@
|
|
19
19
|
module RroongaBuild
|
20
20
|
module RequiredGroongaVersion
|
21
21
|
MAJOR = 5
|
22
|
-
MINOR =
|
23
|
-
MICRO =
|
22
|
+
MINOR = 1
|
23
|
+
MICRO = 0
|
24
24
|
VERSION = [MAJOR, MINOR, MICRO]
|
25
|
-
RELEASED_DATE = Time.utc(2015,
|
25
|
+
RELEASED_DATE = Time.utc(2015, 11, 29)
|
26
26
|
end
|
27
27
|
|
28
28
|
module LatestGroongaVersion
|
29
29
|
MAJOR = 5
|
30
|
-
MINOR =
|
31
|
-
MICRO =
|
30
|
+
MINOR = 1
|
31
|
+
MICRO = 1
|
32
32
|
VERSION = [MAJOR, MINOR, MICRO]
|
33
33
|
end
|
34
34
|
|
data/test/test-accessor.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# Copyright (C) 2011 Kouhei Sutou <kou@clear-code.com>
|
2
|
+
# Copyright (C) 2016 Masafumi Yokoyama <yokoyama@clear-code.com>
|
2
3
|
#
|
3
4
|
# This library is free software; you can redistribute it and/or
|
4
5
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -33,4 +34,33 @@ class AccessorTest < Test::Unit::TestCase
|
|
33
34
|
def test_local_name
|
34
35
|
assert_equal("_id", @id.local_name)
|
35
36
|
end
|
37
|
+
|
38
|
+
sub_test_case "#accessor?" do
|
39
|
+
test "true" do
|
40
|
+
assert do
|
41
|
+
@id.accessor?
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
test "false" do
|
46
|
+
assert do
|
47
|
+
not @posts.accessor?
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
sub_test_case "#key_accessor?" do
|
53
|
+
test "true" do
|
54
|
+
key = @posts.column("_key")
|
55
|
+
assert do
|
56
|
+
key.key_accessor?
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
test "false" do
|
61
|
+
assert do
|
62
|
+
not @id.key_accessor?
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
36
66
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2015 Kouhei Sutou <kou@clear-code.com>
|
1
|
+
# Copyright (C) 2015-2016 Kouhei Sutou <kou@clear-code.com>
|
2
2
|
#
|
3
3
|
# This library is free software; you can redistribute it and/or
|
4
4
|
# modify it under the terms of the GNU Lesser General Public
|
@@ -13,19 +13,19 @@
|
|
13
13
|
# License along with this library; if not, write to the Free Software
|
14
14
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
15
15
|
|
16
|
-
class
|
16
|
+
class ConfigTest < Test::Unit::TestCase
|
17
17
|
include GroongaTestUtils
|
18
18
|
|
19
19
|
setup :setup_database
|
20
20
|
|
21
21
|
sub_test_case "#[]" do
|
22
22
|
test "existent" do
|
23
|
-
context.
|
24
|
-
assert_equal("value", context.
|
23
|
+
context.config["rroonga.key"] = "value"
|
24
|
+
assert_equal("value", context.config["rroonga.key"])
|
25
25
|
end
|
26
26
|
|
27
27
|
test "nonexistent" do
|
28
|
-
assert_nil(context.
|
28
|
+
assert_nil(context.config["nonexistent"])
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|