rroonga 1.2.0 → 1.2.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.
Files changed (159) hide show
  1. data/README.textile +71 -0
  2. data/Rakefile +213 -128
  3. data/TODO +0 -0
  4. data/example/bookmark.rb +12 -12
  5. data/ext/groonga/Makefile +233 -0
  6. data/ext/groonga/extconf.rb +1 -1
  7. data/ext/groonga/rb-grn-column.c +5 -5
  8. data/ext/groonga/rb-grn-index-column.c +31 -0
  9. data/ext/groonga/rb-grn-index-cursor.c +106 -0
  10. data/ext/groonga/rb-grn-logger.c +5 -5
  11. data/ext/groonga/rb-grn-object.c +48 -0
  12. data/ext/groonga/rb-grn-patricia-trie.c +1 -1
  13. data/ext/groonga/rb-grn-plugin.c +32 -0
  14. data/ext/groonga/rb-grn-posting.c +51 -0
  15. data/ext/groonga/rb-grn-table-cursor.c +6 -1
  16. data/ext/groonga/rb-grn-table.c +31 -13
  17. data/ext/groonga/rb-grn.h +21 -3
  18. data/ext/groonga/rb-groonga.c +3 -1
  19. data/lib/groonga.rb +1 -0
  20. data/lib/groonga/dumper.rb +25 -5
  21. data/lib/groonga/expression-builder.rb +2 -2
  22. data/lib/groonga/pagination.rb +99 -7
  23. data/lib/groonga/posting.rb +87 -0
  24. data/lib/groonga/record.rb +118 -11
  25. data/lib/groonga/schema.rb +18 -1
  26. data/test/groonga-test-utils.rb +1 -6
  27. data/test/run-test.rb +13 -28
  28. data/test/test-column.rb +4 -0
  29. data/test/test-database-dumper.rb +53 -10
  30. data/test/test-hash.rb +6 -6
  31. data/test/test-index-cursor.rb +93 -0
  32. data/test/test-plugin.rb +6 -0
  33. data/test/test-record.rb +162 -1
  34. data/test/test-schema-type.rb +6 -0
  35. data/test/test-schema.rb +17 -0
  36. data/test/test-table.rb +7 -2
  37. data/test/test-type.rb +9 -1
  38. metadata +135 -245
  39. data/AUTHORS +0 -5
  40. data/NEWS.ja.rdoc +0 -344
  41. data/NEWS.rdoc +0 -346
  42. data/README.ja.rdoc +0 -68
  43. data/README.rdoc +0 -68
  44. data/example/search/config.ru +0 -230
  45. data/example/search/public/css/groonga.css +0 -122
  46. data/ext/.gitignore +0 -2
  47. data/html/bar.svg +0 -153
  48. data/html/developer.html +0 -151
  49. data/html/developer.svg +0 -469
  50. data/html/download.svg +0 -253
  51. data/html/favicon.ico +0 -0
  52. data/html/favicon.svg +0 -591
  53. data/html/footer.html.erb +0 -33
  54. data/html/head.html.erb +0 -4
  55. data/html/header.html.erb +0 -17
  56. data/html/heading-mark.svg +0 -393
  57. data/html/index.html +0 -243
  58. data/html/install.svg +0 -636
  59. data/html/logo.svg +0 -612
  60. data/html/ranguba.css +0 -342
  61. data/html/readme.svg +0 -256
  62. data/html/tutorial.svg +0 -559
  63. data/license/LGPL +0 -504
  64. data/test-unit-notify/Rakefile +0 -47
  65. data/test-unit-notify/lib/test/unit/notify.rb +0 -104
  66. data/test-unit/COPYING +0 -56
  67. data/test-unit/GPL +0 -340
  68. data/test-unit/PSFL +0 -271
  69. data/test-unit/Rakefile +0 -53
  70. data/test-unit/TODO +0 -5
  71. data/test-unit/bin/testrb +0 -5
  72. data/test-unit/html/bar.svg +0 -153
  73. data/test-unit/html/developer.svg +0 -469
  74. data/test-unit/html/favicon.ico +0 -0
  75. data/test-unit/html/favicon.svg +0 -82
  76. data/test-unit/html/heading-mark.svg +0 -393
  77. data/test-unit/html/index.html +0 -247
  78. data/test-unit/html/index.html.ja +0 -270
  79. data/test-unit/html/install.svg +0 -636
  80. data/test-unit/html/logo.svg +0 -483
  81. data/test-unit/html/test-unit.css +0 -339
  82. data/test-unit/html/tutorial.svg +0 -559
  83. data/test-unit/lib/test/unit.rb +0 -328
  84. data/test-unit/lib/test/unit/assertionfailederror.rb +0 -25
  85. data/test-unit/lib/test/unit/assertions.rb +0 -1334
  86. data/test-unit/lib/test/unit/attribute.rb +0 -125
  87. data/test-unit/lib/test/unit/autorunner.rb +0 -363
  88. data/test-unit/lib/test/unit/collector.rb +0 -36
  89. data/test-unit/lib/test/unit/collector/descendant.rb +0 -23
  90. data/test-unit/lib/test/unit/collector/dir.rb +0 -108
  91. data/test-unit/lib/test/unit/collector/load.rb +0 -144
  92. data/test-unit/lib/test/unit/collector/objectspace.rb +0 -34
  93. data/test-unit/lib/test/unit/color-scheme.rb +0 -106
  94. data/test-unit/lib/test/unit/color.rb +0 -96
  95. data/test-unit/lib/test/unit/diff.rb +0 -740
  96. data/test-unit/lib/test/unit/error.rb +0 -130
  97. data/test-unit/lib/test/unit/exceptionhandler.rb +0 -39
  98. data/test-unit/lib/test/unit/failure.rb +0 -136
  99. data/test-unit/lib/test/unit/fixture.rb +0 -176
  100. data/test-unit/lib/test/unit/notification.rb +0 -129
  101. data/test-unit/lib/test/unit/omission.rb +0 -191
  102. data/test-unit/lib/test/unit/pending.rb +0 -150
  103. data/test-unit/lib/test/unit/priority.rb +0 -180
  104. data/test-unit/lib/test/unit/runner/console.rb +0 -52
  105. data/test-unit/lib/test/unit/runner/emacs.rb +0 -8
  106. data/test-unit/lib/test/unit/runner/tap.rb +0 -8
  107. data/test-unit/lib/test/unit/testcase.rb +0 -483
  108. data/test-unit/lib/test/unit/testresult.rb +0 -121
  109. data/test-unit/lib/test/unit/testsuite.rb +0 -110
  110. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +0 -14
  111. data/test-unit/lib/test/unit/ui/console/testrunner.rb +0 -430
  112. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +0 -63
  113. data/test-unit/lib/test/unit/ui/tap/testrunner.rb +0 -82
  114. data/test-unit/lib/test/unit/ui/testrunner.rb +0 -53
  115. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +0 -77
  116. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +0 -41
  117. data/test-unit/lib/test/unit/util/backtracefilter.rb +0 -42
  118. data/test-unit/lib/test/unit/util/method-owner-finder.rb +0 -28
  119. data/test-unit/lib/test/unit/util/observable.rb +0 -90
  120. data/test-unit/lib/test/unit/util/output.rb +0 -31
  121. data/test-unit/lib/test/unit/util/procwrapper.rb +0 -48
  122. data/test-unit/lib/test/unit/version.rb +0 -7
  123. data/test-unit/sample/adder.rb +0 -13
  124. data/test-unit/sample/subtracter.rb +0 -12
  125. data/test-unit/sample/test_adder.rb +0 -20
  126. data/test-unit/sample/test_subtracter.rb +0 -20
  127. data/test-unit/sample/test_user.rb +0 -23
  128. data/test-unit/test/collector/test-descendant.rb +0 -133
  129. data/test-unit/test/collector/test-load.rb +0 -442
  130. data/test-unit/test/collector/test_dir.rb +0 -406
  131. data/test-unit/test/collector/test_objectspace.rb +0 -100
  132. data/test-unit/test/run-test.rb +0 -15
  133. data/test-unit/test/test-attribute.rb +0 -86
  134. data/test-unit/test/test-color-scheme.rb +0 -69
  135. data/test-unit/test/test-color.rb +0 -47
  136. data/test-unit/test/test-diff.rb +0 -518
  137. data/test-unit/test/test-emacs-runner.rb +0 -60
  138. data/test-unit/test/test-fixture.rb +0 -287
  139. data/test-unit/test/test-notification.rb +0 -33
  140. data/test-unit/test/test-omission.rb +0 -81
  141. data/test-unit/test/test-pending.rb +0 -70
  142. data/test-unit/test/test-priority.rb +0 -119
  143. data/test-unit/test/test-testcase.rb +0 -544
  144. data/test-unit/test/test_assertions.rb +0 -1197
  145. data/test-unit/test/test_error.rb +0 -26
  146. data/test-unit/test/test_failure.rb +0 -33
  147. data/test-unit/test/test_testresult.rb +0 -113
  148. data/test-unit/test/test_testsuite.rb +0 -129
  149. data/test-unit/test/testunit-test-util.rb +0 -14
  150. data/test-unit/test/ui/test_tap.rb +0 -33
  151. data/test-unit/test/ui/test_testrunmediator.rb +0 -20
  152. data/test-unit/test/util/test-method-owner-finder.rb +0 -38
  153. data/test-unit/test/util/test-output.rb +0 -11
  154. data/test-unit/test/util/test_backtracefilter.rb +0 -41
  155. data/test-unit/test/util/test_observable.rb +0 -102
  156. data/test-unit/test/util/test_procwrapper.rb +0 -36
  157. data/test/.gitignore +0 -1
  158. data/text/expression.rdoc +0 -285
  159. data/text/tutorial.ja.rdoc +0 -433
@@ -1,63 +0,0 @@
1
- require 'test/unit/ui/console/testrunner'
2
-
3
- module Test
4
- module Unit
5
- module UI
6
- module Emacs
7
- class TestRunner < Console::TestRunner
8
- private
9
- def output_setup_end
10
- end
11
-
12
- def output_started
13
- end
14
-
15
- def format_fault(fault)
16
- return super unless fault.respond_to?(:label)
17
- format_method_name = "format_fault_#{fault.label.downcase}"
18
- if respond_to?(format_method_name, true)
19
- send(format_method_name, fault)
20
- else
21
- super
22
- end
23
- end
24
-
25
- def output_fault_backtrace(fault)
26
- backtrace = fault.location
27
- if backtrace.size == 1
28
- output(fault.test_name +
29
- backtrace[0].sub(/\A(.+:\d+).*/, ' [\\1]') +
30
- ":")
31
- else
32
- output(fault.test_name)
33
- backtrace.each do |entry|
34
- output(entry)
35
- end
36
- end
37
- end
38
-
39
- def format_fault_failure(failure)
40
- if failure.location.size == 1
41
- location = failure.location[0]
42
- location_display = location.sub(/\A(.+:\d+).*/, ' [\\1]')
43
- else
44
- location_display = "\n" + failure.location.join("\n")
45
- end
46
- result = "#{failure.label}:\n"
47
- result << "#{failure.test_name}#{location_display}:\n"
48
- result << failure.message
49
- result
50
- end
51
-
52
- def format_fault_error(error)
53
- result = "#{error.label}:\n"
54
- result << "#{error.test_name}:\n"
55
- result << "#{error.message}\n"
56
- result << error.backtrace.join("\n")
57
- result
58
- end
59
- end
60
- end
61
- end
62
- end
63
- end
@@ -1,82 +0,0 @@
1
- #--
2
- #
3
- # Author:: Kouhei Sutou.
4
- # Copyright:: Copyright (c) 2009-2010 Kouhei Sutou <kou@clear-code.com>.
5
- # License:: Ruby license.
6
-
7
- require 'test/unit/ui/testrunner'
8
- require 'test/unit/ui/testrunnermediator'
9
-
10
- module Test
11
- module Unit
12
- module UI
13
- module Tap
14
-
15
- # Runs a Test::Unit::TestSuite and outputs result
16
- # as TAP format.
17
- class TestRunner < UI::TestRunner
18
- def initialize(suite, options={})
19
- super
20
- @output = @options[:output] || STDOUT
21
- @n_tests = 0
22
- @already_outputted = false
23
- end
24
-
25
- # Begins the test run.
26
- def start
27
- result = super
28
- def result.passed?
29
- true # for prove commend :<
30
- end
31
- result
32
- end
33
-
34
- private
35
- def attach_to_mediator
36
- @mediator.add_listener(TestResult::FAULT, &method(:add_fault))
37
- @mediator.add_listener(TestRunnerMediator::STARTED, &method(:started))
38
- @mediator.add_listener(TestRunnerMediator::FINISHED, &method(:finished))
39
- @mediator.add_listener(TestCase::STARTED, &method(:test_started))
40
- @mediator.add_listener(TestCase::FINISHED, &method(:test_finished))
41
- end
42
-
43
- def add_fault(fault)
44
- puts("not ok #{@n_tests} - #{fault.short_display}")
45
- fault.long_display.each_line do |line|
46
- puts("# #{line}")
47
- end
48
- @already_outputted = true
49
- end
50
-
51
- def started(result)
52
- @result = result
53
- puts("1..#{@suite.size}")
54
- end
55
-
56
- def finished(elapsed_time)
57
- puts("# Finished in #{elapsed_time} seconds.")
58
- @result.to_s.each_line do |line|
59
- puts("# #{line}")
60
- end
61
- end
62
-
63
- def test_started(name)
64
- @n_tests += 1
65
- end
66
-
67
- def test_finished(name)
68
- unless @already_outputted
69
- puts("ok #{@n_tests} - #{name}")
70
- end
71
- @already_outputted = false
72
- end
73
-
74
- def puts(*args)
75
- @output.puts(*args)
76
- @output.flush
77
- end
78
- end
79
- end
80
- end
81
- end
82
- end
@@ -1,53 +0,0 @@
1
- require 'test/unit/ui/testrunnerutilities'
2
-
3
- module Test
4
- module Unit
5
- module UI
6
- class TestRunner
7
- extend TestRunnerUtilities
8
-
9
- attr_reader :listeners
10
- def initialize(suite, options={})
11
- if suite.respond_to?(:suite)
12
- @suite = suite.suite
13
- else
14
- @suite = suite
15
- end
16
- @options = options
17
- @listeners = @options[:listeners] || []
18
- end
19
-
20
- # Begins the test run.
21
- def start
22
- setup_mediator
23
- attach_to_mediator
24
- attach_listeners
25
- start_mediator
26
- end
27
-
28
- private
29
- def setup_mediator
30
- @mediator = TestRunnerMediator.new(@suite)
31
- end
32
-
33
- def attach_listeners
34
- @listeners.each do |listener|
35
- listener.attach_to_mediator(@mediator)
36
- end
37
- end
38
-
39
- def start_mediator
40
- @mediator.run_suite
41
- end
42
-
43
- def diff_target_string?(string)
44
- Assertions::AssertionMessage.diff_target_string?(string)
45
- end
46
-
47
- def prepare_for_diff(from, to)
48
- Assertions::AssertionMessage.prepare_for_diff(from, to)
49
- end
50
- end
51
- end
52
- end
53
- end
@@ -1,77 +0,0 @@
1
- #--
2
- #
3
- # Author:: Nathaniel Talbott.
4
- # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
5
- # License:: Ruby license.
6
-
7
- require 'test/unit'
8
- require 'test/unit/util/observable'
9
- require 'test/unit/testresult'
10
-
11
- module Test
12
- module Unit
13
- module UI
14
-
15
- # Provides an interface to write any given UI against,
16
- # hopefully making it easy to write new UIs.
17
- class TestRunnerMediator
18
- RESET = name + "::RESET"
19
- STARTED = name + "::STARTED"
20
- FINISHED = name + "::FINISHED"
21
-
22
- include Util::Observable
23
-
24
- # Creates a new TestRunnerMediator initialized to run
25
- # the passed suite.
26
- def initialize(suite)
27
- @suite = suite
28
- end
29
-
30
- # Runs the suite the TestRunnerMediator was created
31
- # with.
32
- def run_suite
33
- Unit.run = true
34
-
35
- result = create_result
36
- result_listener = result.add_listener(TestResult::CHANGED) do |*args|
37
- notify_listeners(TestResult::CHANGED, *args)
38
- end
39
- fault_listener = result.add_listener(TestResult::FAULT) do |*args|
40
- notify_listeners(TestResult::FAULT, *args)
41
- end
42
-
43
- start_time = Time.now
44
- begin
45
- notify_listeners(RESET, @suite.size)
46
- notify_listeners(STARTED, result)
47
-
48
- @suite.run(result) do |channel, value|
49
- notify_listeners(channel, value)
50
- end
51
- ensure
52
- elapsed_time = Time.now - start_time
53
- result.remove_listener(TestResult::FAULT, fault_listener)
54
- result.remove_listener(TestResult::CHANGED, result_listener)
55
- notify_listeners(FINISHED, elapsed_time)
56
- end
57
-
58
- result
59
- end
60
-
61
- private
62
- # A factory method to create the result the mediator
63
- # should run with. Can be overridden by subclasses if
64
- # one wants to use a different result.
65
- def create_result
66
- TestResult.new
67
- end
68
-
69
- def measure_time
70
- begin_time = Time.now
71
- yield
72
- Time.now - begin_time
73
- end
74
- end
75
- end
76
- end
77
- end
@@ -1,41 +0,0 @@
1
- #--
2
- #
3
- # Author:: Nathaniel Talbott.
4
- # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
5
- # License:: Ruby license.
6
-
7
- module Test
8
- module Unit
9
- module UI
10
-
11
- # Provides some utilities common to most, if not all,
12
- # TestRunners.
13
- #
14
- #--
15
- #
16
- # Perhaps there ought to be a TestRunner superclass? There
17
- # seems to be a decent amount of shared code between test
18
- # runners.
19
-
20
- module TestRunnerUtilities
21
-
22
- # Creates a new TestRunner and runs the suite.
23
- def run(suite, options={})
24
- return new(suite, options).start
25
- end
26
-
27
- # Takes care of the ARGV parsing and suite
28
- # determination necessary for running one of the
29
- # TestRunners from the command line.
30
- def start_command_line_test
31
- if ARGV.empty?
32
- puts "You should supply the name of a test suite file to the runner"
33
- exit
34
- end
35
- require ARGV[0].gsub(/.+::/, '')
36
- new(eval(ARGV[0])).start
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,42 +0,0 @@
1
- module Test
2
- module Unit
3
- module Util
4
- module BacktraceFilter
5
- TESTUNIT_FILE_SEPARATORS = %r{[\\/:]}
6
- TESTUNIT_PREFIX = __FILE__.split(TESTUNIT_FILE_SEPARATORS)[0..-3]
7
- TESTUNIT_RB_FILE = /\.rb\Z/
8
-
9
- module_function
10
- def filter_backtrace(backtrace, prefix=nil)
11
- return ["No backtrace"] unless(backtrace)
12
- return backtrace if ENV["TEST_UNIT_ALL_BACKTRACE"]
13
- split_p = if(prefix)
14
- prefix.split(TESTUNIT_FILE_SEPARATORS)
15
- else
16
- TESTUNIT_PREFIX
17
- end
18
- match = proc do |e|
19
- split_e = e.split(TESTUNIT_FILE_SEPARATORS)[0, split_p.size]
20
- next false unless(split_e[0..-2] == split_p[0..-2])
21
- split_e[-1].sub(TESTUNIT_RB_FILE, '') == split_p[-1]
22
- end
23
- return backtrace unless(backtrace.detect(&match))
24
- found_prefix = false
25
- new_backtrace = backtrace.reverse.reject do |e|
26
- if(match[e])
27
- found_prefix = true
28
- true
29
- elsif(found_prefix)
30
- false
31
- else
32
- true
33
- end
34
- end.reverse
35
- new_backtrace = (new_backtrace.empty? ? backtrace : new_backtrace)
36
- new_backtrace = new_backtrace.reject(&match)
37
- new_backtrace.empty? ? backtrace : new_backtrace
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,28 +0,0 @@
1
- module Test
2
- module Unit
3
- module Util
4
- module MethodOwnerFinder
5
- module_function
6
- def find(object, method_name)
7
- method = object.method(method_name)
8
- return method.owner if method.respond_to?(:owner)
9
-
10
- if /\((.+?)\)\#/ =~ method.to_s
11
- owner_name = $1
12
- if /\A#</ =~ owner_name
13
- ObjectSpace.each_object(Module) do |mod|
14
- return mod if mod.to_s == owner_name
15
- end
16
- else
17
- owner_name.split(/::/).inject(Object) do |parent, name|
18
- parent.const_get(name)
19
- end
20
- end
21
- else
22
- object.class
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,90 +0,0 @@
1
- #--
2
- #
3
- # Author:: Nathaniel Talbott.
4
- # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
5
- # License:: Ruby license.
6
-
7
- require 'test/unit/util/procwrapper'
8
-
9
- module Test
10
- module Unit
11
- module Util
12
-
13
- # This is a utility class that allows anything mixing
14
- # it in to notify a set of listeners about interesting
15
- # events.
16
- module Observable
17
- # We use this for defaults since nil might mean something
18
- NOTHING = "NOTHING/#{__id__}"
19
-
20
- # Adds the passed proc as a listener on the
21
- # channel indicated by channel_name. listener_key
22
- # is used to remove the listener later; if none is
23
- # specified, the proc itself is used.
24
- #
25
- # Whatever is used as the listener_key is
26
- # returned, making it very easy to use the proc
27
- # itself as the listener_key:
28
- #
29
- # listener = add_listener("Channel") { ... }
30
- # remove_listener("Channel", listener)
31
- def add_listener(channel_name, listener_key=NOTHING, &listener) # :yields: value
32
- unless(block_given?)
33
- raise ArgumentError.new("No callback was passed as a listener")
34
- end
35
-
36
- key = listener_key
37
- if (listener_key == NOTHING)
38
- listener_key = listener
39
- key = ProcWrapper.new(listener)
40
- end
41
-
42
- channels[channel_name] ||= {}
43
- channels[channel_name][key] = listener
44
- return listener_key
45
- end
46
-
47
- # Removes the listener indicated by listener_key
48
- # from the channel indicated by
49
- # channel_name. Returns the registered proc, or
50
- # nil if none was found.
51
- def remove_listener(channel_name, listener_key)
52
- channel = channels[channel_name]
53
- return nil unless (channel)
54
- key = listener_key
55
- if (listener_key.instance_of?(Proc))
56
- key = ProcWrapper.new(listener_key)
57
- end
58
- if (channel.has_key?(key))
59
- return channel.delete(key)
60
- end
61
- return nil
62
- end
63
-
64
- # Calls all the procs registered on the channel
65
- # indicated by channel_name. If value is
66
- # specified, it is passed in to the procs,
67
- # otherwise they are called with no arguments.
68
- #
69
- #--
70
- #
71
- # Perhaps this should be private? Would it ever
72
- # make sense for an external class to call this
73
- # method directly?
74
- def notify_listeners(channel_name, *arguments)
75
- channel = channels[channel_name]
76
- return 0 unless (channel)
77
- listeners = channel.values
78
- listeners.each { |listener| listener.call(*arguments) }
79
- return listeners.size
80
- end
81
-
82
- private
83
- def channels
84
- @channels ||= {}
85
- return @channels
86
- end
87
- end
88
- end
89
- end
90
- end