rroonga 1.2.1 → 1.2.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.
Files changed (52) hide show
  1. data/README.textile +1 -0
  2. data/Rakefile +48 -28
  3. data/ext/groonga/groonga.so +0 -0
  4. data/ext/groonga/rb-grn-accessor.o +0 -0
  5. data/ext/groonga/rb-grn-array-cursor.o +0 -0
  6. data/ext/groonga/rb-grn-array.o +0 -0
  7. data/ext/groonga/rb-grn-column.o +0 -0
  8. data/ext/groonga/rb-grn-context.o +0 -0
  9. data/ext/groonga/rb-grn-database.o +0 -0
  10. data/ext/groonga/rb-grn-encoding-support.o +0 -0
  11. data/ext/groonga/rb-grn-encoding.o +0 -0
  12. data/ext/groonga/rb-grn-exception.o +0 -0
  13. data/ext/groonga/rb-grn-expression-builder.o +0 -0
  14. data/ext/groonga/rb-grn-expression.c +3 -2
  15. data/ext/groonga/rb-grn-expression.o +0 -0
  16. data/ext/groonga/rb-grn-fix-size-column.o +0 -0
  17. data/ext/groonga/rb-grn-hash-cursor.o +0 -0
  18. data/ext/groonga/rb-grn-hash.o +0 -0
  19. data/ext/groonga/rb-grn-index-column.o +0 -0
  20. data/ext/groonga/rb-grn-index-cursor.o +0 -0
  21. data/ext/groonga/rb-grn-logger.o +0 -0
  22. data/ext/groonga/rb-grn-object.c +1 -7
  23. data/ext/groonga/rb-grn-object.o +0 -0
  24. data/ext/groonga/rb-grn-operator.o +0 -0
  25. data/ext/groonga/rb-grn-patricia-trie-cursor.o +0 -0
  26. data/ext/groonga/rb-grn-patricia-trie.o +0 -0
  27. data/ext/groonga/rb-grn-plugin.o +0 -0
  28. data/ext/groonga/rb-grn-posting.o +0 -0
  29. data/ext/groonga/rb-grn-procedure.o +0 -0
  30. data/ext/groonga/rb-grn-query.o +0 -0
  31. data/ext/groonga/rb-grn-record.o +0 -0
  32. data/ext/groonga/rb-grn-snippet.o +0 -0
  33. data/ext/groonga/rb-grn-table-cursor-key-support.o +0 -0
  34. data/ext/groonga/rb-grn-table-cursor.o +0 -0
  35. data/ext/groonga/rb-grn-table-key-support.o +0 -0
  36. data/ext/groonga/rb-grn-table.c +5 -3
  37. data/ext/groonga/rb-grn-table.o +0 -0
  38. data/ext/groonga/rb-grn-type.o +0 -0
  39. data/ext/groonga/rb-grn-utils.o +0 -0
  40. data/ext/groonga/rb-grn-variable-size-column.o +0 -0
  41. data/ext/groonga/rb-grn-variable.o +0 -0
  42. data/ext/groonga/rb-grn-view-accessor.o +0 -0
  43. data/ext/groonga/rb-grn-view-cursor.o +0 -0
  44. data/ext/groonga/rb-grn-view-record.o +0 -0
  45. data/ext/groonga/rb-grn-view.c +6 -10
  46. data/ext/groonga/rb-grn-view.o +0 -0
  47. data/ext/groonga/rb-grn.h +1 -1
  48. data/ext/groonga/rb-groonga.o +0 -0
  49. data/extconf.rb +1 -1
  50. data/lib/groonga/record.rb +15 -32
  51. data/test/test-record.rb +55 -26
  52. metadata +44 -3
data/README.textile CHANGED
@@ -25,6 +25,7 @@ h2. Authors
25
25
  * Daijiro MORI <morita@razil.jp>
26
26
  * Yuto HAYAMIZU <y.hayamizu@gmail.com>
27
27
  * SHIDARA Yoji <dara@shidara.net>
28
+ * yoshihara haruka <yoshihara@clear-code.com>
28
29
 
29
30
  h2. License
30
31
 
data/Rakefile CHANGED
@@ -117,15 +117,31 @@ module YARD
117
117
  end
118
118
  end
119
119
 
120
+ reference_base_dir = Pathname.new("doc/html")
121
+ doc_en_dir = reference_base_dir + "en"
120
122
  YARD::Rake::YardocTask.new do |task|
121
123
  task.options += ["--title", "#{spec.name} - #{version}"]
122
124
  # task.options += ["--charset", "UTF-8"]
123
125
  task.options += ["--readme", "README.textile"]
124
- task.options += ["--files", "text/tutorial.textile"]
126
+ task.options += ["--files", "doc/text/**/*"]
127
+ task.options += ["--output-dir", doc_en_dir.to_s]
128
+ task.options += ["--charset", "utf-8"]
125
129
  task.files += FileList["ext/groonga/**/*.c"]
126
130
  task.files += FileList["lib/**/*.rb"]
127
131
  end
128
132
 
133
+ task :yard do
134
+ doc_en_dir.find do |path|
135
+ next if path.extname != ".html"
136
+ html = path.read
137
+ html = html.gsub(/<div id="footer">.+<\/div>/m,
138
+ "<div id=\"footer\"></div>")
139
+ path.open("w") do |html_file|
140
+ html_file.print(html)
141
+ end
142
+ end
143
+ end
144
+
129
145
  def windows?(platform=nil)
130
146
  platform ||= RUBY_PLATFORM
131
147
  platform =~ /mswin(?!ce)|mingw|cygwin|bccwin/
@@ -169,12 +185,12 @@ end
169
185
 
170
186
  include ERB::Util
171
187
 
172
- def apply_template(file, head, header, footer, language)
188
+ def apply_template(file, top_path, current_page, head, header, footer, language)
173
189
  content = File.read(file)
174
190
  content = content.sub(/lang="en"/, 'lang="#{language}"')
175
191
 
176
192
  title = nil
177
- content = content.sub(/<title>(.+?)<\/title>/) do
193
+ content = content.sub(/<title>(.+?)<\/title>/m) do
178
194
  title = $1
179
195
  head.result(binding)
180
196
  end
@@ -204,22 +220,21 @@ def rsync_to_rubyforge(spec, source, destination, options={})
204
220
  config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml")))
205
221
  host = "#{config["username"]}@rubyforge.org"
206
222
 
207
- rsync_args = "-av --exclude '*.erb' --dry-run"
223
+ rsync_args = "-av --exclude '*.erb' --chmod=ug+w"
208
224
  rsync_args << " --delete" if options[:delete]
209
- remote_dir = "/var/www/gforge-projects/#{spec.rubyforge_name}/"
225
+ remote_dir = "/var/www/gforge-projects/#{spec.rubyforge_project}/"
210
226
  sh("rsync #{rsync_args} #{source} #{host}:#{remote_dir}#{destination}")
211
227
  end
212
228
 
213
229
  namespace :reference do
214
230
  translate_languages = [:ja]
215
231
  supported_languages = [:en, *translate_languages]
216
- reference_base_dir = "references"
217
- html_files = FileList["doc/**/*.html"].to_a
232
+ html_files = FileList["doc/html/en/**/*.html"].to_a
218
233
 
219
- directory reference_base_dir
220
- CLOBBER.include(reference_base_dir)
234
+ directory reference_base_dir.to_s
235
+ CLOBBER.include(reference_base_dir.to_s)
221
236
 
222
- po_dir = "po"
237
+ po_dir = "doc/po"
223
238
  namespace :pot do
224
239
  pot_file = "#{po_dir}/#{spec.name}.pot"
225
240
 
@@ -237,7 +252,7 @@ namespace :reference do
237
252
  namespace language do
238
253
  po_file = "#{po_dir}/#{language}.po"
239
254
 
240
- file po_file do |t|
255
+ file po_file => html_files do |t|
241
256
  sh("xml2po", "--keep-entities", "--update", t.name, *html_files)
242
257
  end
243
258
 
@@ -248,17 +263,14 @@ namespace :reference do
248
263
  end
249
264
 
250
265
  namespace :translate do
251
- directory reference_base_dir
252
-
253
266
  translate_languages.each do |language|
254
267
  po_file = "#{po_dir}/#{language}.po"
255
268
  translate_doc_dir = "#{reference_base_dir}/#{language}"
256
269
 
257
- doc_dir = Pathname("doc")
258
270
  desc "Translates documents to #{language}."
259
271
  task language => [po_file, reference_base_dir, *html_files] do
260
- doc_dir.find do |path|
261
- base_path = path.relative_path_from(doc_dir)
272
+ doc_en_dir.find do |path|
273
+ base_path = path.relative_path_from(doc_en_dir)
262
274
  translated_path = "#{translate_doc_dir}/#{base_path}"
263
275
  if path.directory?
264
276
  mkdir_p(translated_path)
@@ -284,34 +296,40 @@ namespace :reference do
284
296
  task :translate => translate_task_names
285
297
 
286
298
  desc "Generates references."
287
- task :generate => [:yard, :translate] do
288
- cp_r("doc", "#{reference_base_dir}/en", :preserve => true)
289
- end
299
+ task :generate => [:yard, :translate]
290
300
 
291
301
  namespace :publication do
292
302
  task :prepare do
293
- head = erb_template("head")
294
- header = erb_template("header")
295
- footer = erb_template("footer")
296
303
  supported_languages.each do |language|
297
- doc_dir = "#{reference_base_dir}/#{language}"
298
- Find.find(doc_dir) do |file|
299
- if /\.html\z/ =~ file and /_(?:c|rb)\.html\z/ !~ file
300
- apply_template(file, head, header, footer, language)
304
+ doc_dir = Pathname.new("#{reference_base_dir}/#{language}")
305
+ head = erb_template("head.#{language}")
306
+ header = erb_template("header.#{language}")
307
+ footer = erb_template("footer.#{language}")
308
+ doc_dir.find do |file|
309
+ case file.basename.to_s
310
+ when "_index.html", /\A(?:class|method|file)_list.html\z/
311
+ next
312
+ when /\.html\z/
313
+ relative_dir_path = file.relative_path_from(doc_dir).dirname
314
+ current_page = relative_dir_path + file.basename
315
+ top_path = doc_dir.relative_path_from(file.dirname).to_s
316
+ apply_template(file, top_path, current_page,
317
+ head, header, footer, language)
301
318
  end
302
319
  end
303
320
  end
304
321
  File.open("#{reference_base_dir}/.htaccess", "w") do |file|
305
322
  file.puts("Redirect permanent /rroonga/text/TUTORIAL_ja_rdoc.html " +
306
323
  "http://groonga.rubyforge.org/rroonga/ja/file.tutorial.html")
307
- file.puts("Redirect permanent /rroonga/ " +
324
+ file.puts("RedirectMatch permanent ^/rroonga/$ " +
308
325
  "http://groonga.rubyforge.org/rroonga/en/")
309
326
  end
310
327
  end
311
328
  end
312
329
 
330
+ desc "Upload document to rubyforge."
313
331
  task :publish => [:generate, "reference:publication:prepare"] do
314
- rsync_to_rubyforge(spec, "#{reference_base_dir}/", "/#{spec.name}",
332
+ rsync_to_rubyforge(spec, "#{reference_base_dir}/", spec.name,
315
333
  :delete => true)
316
334
  end
317
335
  end
@@ -322,6 +340,8 @@ namespace :html do
322
340
  rsync_to_rubyforge(spec, "html/", "")
323
341
  end
324
342
  end
343
+
344
+ desc "Upload document and HTML to rubyforge."
325
345
  task :publish => ["reference:publish", "html:publish"]
326
346
 
327
347
  desc "Tag the current revision."
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -559,8 +559,9 @@ rb_grn_expression_inspect (VALUE self)
559
559
  grn_expr_inspect(context, &inspected, expression);
560
560
  #endif
561
561
  GRN_TEXT_PUTS(context, &inspected, ">");
562
- rb_inspected = rb_str_new(GRN_TEXT_VALUE(&inspected),
563
- GRN_TEXT_LEN(&inspected));
562
+ rb_inspected = rb_grn_context_rb_string_new(context,
563
+ GRN_TEXT_VALUE(&inspected),
564
+ GRN_TEXT_LEN(&inspected));
564
565
  GRN_OBJ_FIN(context, &inspected);
565
566
 
566
567
  return rb_inspected;
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby" -*- */
2
2
  /*
3
- Copyright (C) 2009-2010 Kouhei Sutou <kou@clear-code.com>
3
+ Copyright (C) 2009-2011 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
@@ -414,10 +414,6 @@ void
414
414
  rb_grn_named_object_bind (RbGrnNamedObject *rb_grn_named_object,
415
415
  grn_ctx *context, grn_obj *object)
416
416
  {
417
- RbGrnObject *rb_grn_object;
418
-
419
- rb_grn_object = RB_GRN_OBJECT(rb_grn_named_object);
420
-
421
417
  rb_grn_named_object->name = NULL;
422
418
  rb_grn_named_object->name_size = 0;
423
419
  }
@@ -1284,14 +1280,12 @@ static VALUE
1284
1280
  rb_grn_object_set (VALUE self, VALUE rb_id, VALUE rb_value, int flags)
1285
1281
  {
1286
1282
  RbGrnObject *rb_grn_object;
1287
- grn_ctx *context;
1288
1283
  grn_id id;
1289
1284
 
1290
1285
  rb_grn_object = SELF(self);
1291
1286
  if (!rb_grn_object->object)
1292
1287
  return Qnil;
1293
1288
 
1294
- context = rb_grn_object->context;
1295
1289
  id = NUM2UINT(rb_id);
1296
1290
 
1297
1291
  return rb_grn_object_set_raw(rb_grn_object, id, rb_value, flags, self);
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1028,7 +1028,7 @@ rb_grn_table_sort (int argc, VALUE *argv, VALUE self)
1028
1028
  grn_obj *result;
1029
1029
  grn_table_sort_key *keys;
1030
1030
  int i, n_keys;
1031
- int n_records, offset = 0, limit = -1;
1031
+ int offset = 0, limit = -1;
1032
1032
  VALUE rb_keys, options;
1033
1033
  VALUE rb_offset, rb_limit;
1034
1034
  VALUE *rb_sort_keys;
@@ -1111,8 +1111,10 @@ rb_grn_table_sort (int argc, VALUE *argv, VALUE self)
1111
1111
 
1112
1112
  result = grn_table_create(context, NULL, 0, NULL, GRN_TABLE_NO_KEY,
1113
1113
  NULL, table);
1114
- n_records = grn_table_sort(context, table, offset, limit,
1115
- result, keys, n_keys);
1114
+ /* use n_records that is return value from
1115
+ grn_table_sort() when rroonga user become specifying
1116
+ output table. */
1117
+ grn_table_sort(context, table, offset, limit, result, keys, n_keys);
1116
1118
  exception = rb_grn_context_to_exception(context, self);
1117
1119
  if (!NIL_P(exception)) {
1118
1120
  grn_obj_unlink(context, result);
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby" -*- */
2
2
  /*
3
- Copyright (C) 2010 Kouhei Sutou <kou@clear-code.com>
3
+ Copyright (C) 2010-2011 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
@@ -292,7 +292,7 @@ rb_grn_view_sort (int argc, VALUE *argv, VALUE self)
292
292
  grn_obj *result;
293
293
  grn_table_sort_key *keys;
294
294
  int i, n_keys;
295
- int n_records, offset = 0, limit = -1;
295
+ int offset = 0, limit = -1;
296
296
  VALUE rb_keys, options;
297
297
  VALUE rb_offset, rb_limit;
298
298
  VALUE *rb_sort_keys;
@@ -376,14 +376,10 @@ rb_grn_view_sort (int argc, VALUE *argv, VALUE self)
376
376
 
377
377
  result = grn_table_create(context, NULL, 0, NULL, GRN_TABLE_VIEW,
378
378
  NULL, NULL);
379
- grn_view_add(context, result,
380
- grn_table_create(context, NULL, 0, NULL, GRN_TABLE_NO_KEY,
381
- NULL, grn_ctx_get(context, "People", strlen("People"))));
382
- grn_view_add(context, result,
383
- grn_table_create(context, NULL, 0, NULL, GRN_TABLE_NO_KEY,
384
- NULL, grn_ctx_get(context, "People", strlen("People"))));
385
- n_records = grn_table_sort(context, view, offset, limit,
386
- result, keys, n_keys);
379
+ /* use n_records that is return value from
380
+ grn_table_sort() when rroonga user become specifying
381
+ output table. */
382
+ grn_table_sort(context, view, offset, limit, result, keys, n_keys);
387
383
  exception = rb_grn_context_to_exception(context, self);
388
384
  if (!NIL_P(exception)) {
389
385
  grn_obj_unlink(context, result);
Binary file
data/ext/groonga/rb-grn.h CHANGED
@@ -69,7 +69,7 @@ RB_GRN_BEGIN_DECLS
69
69
 
70
70
  #define RB_GRN_MAJOR_VERSION 1
71
71
  #define RB_GRN_MINOR_VERSION 2
72
- #define RB_GRN_MICRO_VERSION 1
72
+ #define RB_GRN_MICRO_VERSION 2
73
73
 
74
74
  #define RB_GRN_QUERY_DEFAULT_MAX_EXPRESSIONS 32
75
75
 
Binary file
data/extconf.rb CHANGED
@@ -46,7 +46,7 @@ def install_groonga_locally(major, minor, micro)
46
46
 
47
47
  install_dir = local_groonga_install_dir
48
48
  Dir.chdir(local_groonga_base_dir) do
49
- url = "http://groonga.org/files/groonga/#{tar_gz}"
49
+ url = "http://packages.groonga.org/source/groonga/#{tar_gz}"
50
50
  message("downloading %s...", url)
51
51
  open(url, "rb") do |input|
52
52
  File.open(tar_gz, "wb") do |output|
@@ -293,6 +293,8 @@ module Groonga
293
293
  # レコードが所属しているテーブルで定義されているインデックス
294
294
  # 型のカラムでない全カラムを対象とし、カラムの名前をキーとし
295
295
  # たこのレコードのカラムの値のハッシュを返す。
296
+ #
297
+ # return same attributes object if duplicate records exist.
296
298
  def attributes
297
299
  accessor = AttributeHashBuilder.new(self)
298
300
  accessor.build
@@ -414,7 +416,7 @@ module Groonga
414
416
 
415
417
  def initialize(root_record)
416
418
  @root_record = root_record
417
- @built_records = []
419
+ @all_built_attributes = {}
418
420
  end
419
421
 
420
422
  def build
@@ -423,32 +425,25 @@ module Groonga
423
425
 
424
426
  private
425
427
  def build_attributes(record)
426
- building(record) do
427
- attributes = create_attributes(record)
428
- add_key(attributes, record)
429
- add_score(attributes, record)
430
- add_n_sub_records(attributes, record)
431
- add_columns(attributes, record)
432
-
433
- attributes
428
+ if @all_built_attributes.has_key?(record)
429
+ return @all_built_attributes[record]
434
430
  end
435
- end
436
431
 
437
- def build_recursive_attributes(record)
438
- attributes = create_attributes(record)
439
- add_table(attributes, record)
432
+ attributes = {}
433
+ @all_built_attributes[record] = attributes
434
+
435
+ add_id(attributes, record)
440
436
  add_key(attributes, record)
437
+ add_score(attributes, record)
438
+ add_n_sub_records(attributes, record)
439
+ add_columns(attributes, record)
441
440
 
442
441
  attributes
443
442
  end
444
443
 
445
444
  def build_value(value)
446
445
  if value.is_a?(Record)
447
- if recursive?(value)
448
- build_recursive_attributes(value)
449
- else
450
- build_attributes(value)
451
- end
446
+ build_attributes(value)
452
447
  else
453
448
  value
454
449
  end
@@ -460,8 +455,8 @@ module Groonga
460
455
  end
461
456
  end
462
457
 
463
- def create_attributes(record)
464
- {"_id" => record.id}
458
+ def add_id(attributes, record)
459
+ attributes["_id"] = record.id
465
460
  end
466
461
 
467
462
  def add_table(attributes, record)
@@ -502,18 +497,6 @@ module Groonga
502
497
  attributes["_nsubrecs"] = record.n_sub_records
503
498
  end
504
499
  end
505
-
506
- def building(record)
507
- @built_records.push(record)
508
- returned_object = yield
509
- @built_records.pop
510
-
511
- returned_object
512
- end
513
-
514
- def recursive?(record)
515
- @built_records.include?(record)
516
- end
517
500
  end
518
501
  end
519
502
  end
data/test/test-record.rb CHANGED
@@ -325,20 +325,55 @@ class RecordTest < Test::Unit::TestCase
325
325
  "user" => nil,
326
326
  "uri" => "http://groonga.org/document.html",
327
327
  "rate" => 8,
328
- "next" => {
329
- "_table" => "Bookmarks",
330
- "_id" => 1,
331
- },
332
328
  "content" => nil,
333
329
  "comment" => "Informative"
334
330
  },
335
331
  "content" => nil,
336
332
  "comment" => "Great!"
337
333
  }
334
+ expected["next"]["next"] = expected
338
335
 
339
336
  assert_equal(expected, top_page_record.attributes)
340
337
  end
341
338
 
339
+ def test_duplicate_records_attributes
340
+ @bookmarks.define_column("next1", @bookmarks)
341
+ @bookmarks.define_column("next2", @bookmarks)
342
+
343
+ top_page_record = @bookmarks.add(top_page)
344
+ doc_page_record = @bookmarks.add(doc_page)
345
+
346
+ top_page_record["next1"] = doc_page_record
347
+ top_page_record["next2"] = doc_page_record
348
+ doc_page_record["next1"] = top_page_record
349
+
350
+ doc_page_attributes = {
351
+ "_id" => 2,
352
+ "user" => nil,
353
+ "uri" => "http://groonga.org/document.html",
354
+ "rate" => 8,
355
+ "content" => nil,
356
+ "comment" => "Informative",
357
+ "next2" => nil
358
+ }
359
+ top_page_attributes = {
360
+ "_id" => 1,
361
+ "user" => nil,
362
+ "uri" => "http://groonga.org/",
363
+ "rate" => 5,
364
+ "next1" => doc_page_attributes,
365
+ "next2" => doc_page_attributes,
366
+ "content" => nil,
367
+ "comment" => "Great!"
368
+ }
369
+ doc_page_attributes["next1"] = top_page_attributes
370
+
371
+ actual_records = top_page_record.attributes
372
+ assert_equal(top_page_attributes, actual_records)
373
+ assert_equal(actual_records["next1"].object_id,
374
+ actual_records["next2"].object_id)
375
+ end
376
+
342
377
  def test_select_result_attributes
343
378
  top_page_record = @bookmarks.add(top_page)
344
379
  select_result = @bookmarks.select
@@ -372,13 +407,10 @@ class RecordTest < Test::Unit::TestCase
372
407
  "user" => nil,
373
408
  "uri" => "http://groonga.org/",
374
409
  "rate" => 5,
375
- "next" => {
376
- "_table" => "Bookmarks",
377
- "_id" => 1
378
- },
379
410
  "content" => nil,
380
411
  "comment" => "Great!"
381
412
  }
413
+ expected["next"] = expected
382
414
 
383
415
  assert_equal(expected, top_page_record.attributes)
384
416
  end
@@ -423,31 +455,28 @@ class RecordTest < Test::Unit::TestCase
423
455
  doc_page_record
424
456
  ]
425
457
 
426
- expected = {
458
+ top_page_attributes = {
427
459
  "_id" => 1,
428
460
  "user" => nil,
429
461
  "uri" => "http://groonga.org/",
430
462
  "rate" => 5,
431
- "related_bookmarks" => [
432
- {
433
- "_table" => "Bookmarks",
434
- "_id" => 1
435
- },
436
- {
437
- "_id" => 2,
438
- "comment" => "Informative",
439
- "content" => nil,
440
- "rate" => 8,
441
- "related_bookmarks" => [],
442
- "uri" => "http://groonga.org/document.html",
443
- "user" => nil,
444
- }
445
- ],
446
463
  "content" => nil,
447
464
  "comment" => "Great!"
448
465
  }
449
-
450
- assert_equal(expected, top_page_record.attributes)
466
+ doc_page_attributes = {
467
+ "_id" => 2,
468
+ "comment" => "Informative",
469
+ "content" => nil,
470
+ "rate" => 8,
471
+ "related_bookmarks" => [],
472
+ "uri" => "http://groonga.org/document.html",
473
+ "user" => nil,
474
+ }
475
+ top_page_attributes["related_bookmarks"] = [
476
+ top_page_attributes,
477
+ doc_page_attributes
478
+ ]
479
+ assert_equal(top_page_attributes, top_page_record.attributes)
451
480
  end
452
481
 
453
482
  def test_dynamic_accessor
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rroonga
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  segments:
6
6
  - 1
7
7
  - 2
8
- - 1
8
+ - 2
9
9
  prerelease: false
10
10
  platform: ruby
11
11
  authors:
@@ -17,7 +17,7 @@ authors:
17
17
  autorequire: !!null
18
18
  bindir: bin
19
19
  cert_chain: []
20
- date: 2011-06-07 00:00:00.000000000 +09:00
20
+ date: 2011-06-27 00:00:00.000000000 +09:00
21
21
  default_executable: grndump
22
22
  dependencies: []
23
23
  description: ! 'rroonga is an extension library to use groonga''s DB-API
@@ -51,47 +51,88 @@ files:
51
51
  - ext/groonga/Makefile
52
52
  - ext/groonga/extconf.rb
53
53
  - ext/groonga/groonga.def
54
+ - ext/groonga/groonga.so
54
55
  - ext/groonga/rb-grn-accessor.c
56
+ - ext/groonga/rb-grn-accessor.o
55
57
  - ext/groonga/rb-grn-array-cursor.c
58
+ - ext/groonga/rb-grn-array-cursor.o
56
59
  - ext/groonga/rb-grn-array.c
60
+ - ext/groonga/rb-grn-array.o
57
61
  - ext/groonga/rb-grn-column.c
62
+ - ext/groonga/rb-grn-column.o
58
63
  - ext/groonga/rb-grn-context.c
64
+ - ext/groonga/rb-grn-context.o
59
65
  - ext/groonga/rb-grn-database.c
66
+ - ext/groonga/rb-grn-database.o
60
67
  - ext/groonga/rb-grn-encoding-support.c
68
+ - ext/groonga/rb-grn-encoding-support.o
61
69
  - ext/groonga/rb-grn-encoding.c
70
+ - ext/groonga/rb-grn-encoding.o
62
71
  - ext/groonga/rb-grn-exception.c
72
+ - ext/groonga/rb-grn-exception.o
63
73
  - ext/groonga/rb-grn-expression-builder.c
74
+ - ext/groonga/rb-grn-expression-builder.o
64
75
  - ext/groonga/rb-grn-expression.c
76
+ - ext/groonga/rb-grn-expression.o
65
77
  - ext/groonga/rb-grn-fix-size-column.c
78
+ - ext/groonga/rb-grn-fix-size-column.o
66
79
  - ext/groonga/rb-grn-hash-cursor.c
80
+ - ext/groonga/rb-grn-hash-cursor.o
67
81
  - ext/groonga/rb-grn-hash.c
82
+ - ext/groonga/rb-grn-hash.o
68
83
  - ext/groonga/rb-grn-index-column.c
84
+ - ext/groonga/rb-grn-index-column.o
69
85
  - ext/groonga/rb-grn-index-cursor.c
86
+ - ext/groonga/rb-grn-index-cursor.o
70
87
  - ext/groonga/rb-grn-logger.c
88
+ - ext/groonga/rb-grn-logger.o
71
89
  - ext/groonga/rb-grn-object.c
90
+ - ext/groonga/rb-grn-object.o
72
91
  - ext/groonga/rb-grn-operator.c
92
+ - ext/groonga/rb-grn-operator.o
73
93
  - ext/groonga/rb-grn-patricia-trie-cursor.c
94
+ - ext/groonga/rb-grn-patricia-trie-cursor.o
74
95
  - ext/groonga/rb-grn-patricia-trie.c
96
+ - ext/groonga/rb-grn-patricia-trie.o
75
97
  - ext/groonga/rb-grn-plugin.c
98
+ - ext/groonga/rb-grn-plugin.o
76
99
  - ext/groonga/rb-grn-posting.c
100
+ - ext/groonga/rb-grn-posting.o
77
101
  - ext/groonga/rb-grn-procedure.c
102
+ - ext/groonga/rb-grn-procedure.o
78
103
  - ext/groonga/rb-grn-query.c
104
+ - ext/groonga/rb-grn-query.o
79
105
  - ext/groonga/rb-grn-record.c
106
+ - ext/groonga/rb-grn-record.o
80
107
  - ext/groonga/rb-grn-snippet.c
108
+ - ext/groonga/rb-grn-snippet.o
81
109
  - ext/groonga/rb-grn-table-cursor-key-support.c
110
+ - ext/groonga/rb-grn-table-cursor-key-support.o
82
111
  - ext/groonga/rb-grn-table-cursor.c
112
+ - ext/groonga/rb-grn-table-cursor.o
83
113
  - ext/groonga/rb-grn-table-key-support.c
114
+ - ext/groonga/rb-grn-table-key-support.o
84
115
  - ext/groonga/rb-grn-table.c
116
+ - ext/groonga/rb-grn-table.o
85
117
  - ext/groonga/rb-grn-type.c
118
+ - ext/groonga/rb-grn-type.o
86
119
  - ext/groonga/rb-grn-utils.c
120
+ - ext/groonga/rb-grn-utils.o
87
121
  - ext/groonga/rb-grn-variable-size-column.c
122
+ - ext/groonga/rb-grn-variable-size-column.o
88
123
  - ext/groonga/rb-grn-variable.c
124
+ - ext/groonga/rb-grn-variable.o
89
125
  - ext/groonga/rb-grn-view-accessor.c
126
+ - ext/groonga/rb-grn-view-accessor.o
90
127
  - ext/groonga/rb-grn-view-cursor.c
128
+ - ext/groonga/rb-grn-view-cursor.o
91
129
  - ext/groonga/rb-grn-view-record.c
130
+ - ext/groonga/rb-grn-view-record.o
92
131
  - ext/groonga/rb-grn-view.c
132
+ - ext/groonga/rb-grn-view.o
93
133
  - ext/groonga/rb-grn.h
94
134
  - ext/groonga/rb-groonga.c
135
+ - ext/groonga/rb-groonga.o
95
136
  - extconf.rb
96
137
  - lib/groonga.rb
97
138
  - lib/groonga/context.rb