rroonga 1.0.1 → 1.0.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 (135) hide show
  1. data/NEWS.ja.rdoc +46 -0
  2. data/NEWS.rdoc +46 -0
  3. data/README.ja.rdoc +2 -2
  4. data/README.rdoc +2 -3
  5. data/Rakefile +148 -11
  6. data/example/bookmark.rb +94 -91
  7. data/ext/groonga/extconf.rb +25 -25
  8. data/ext/groonga/groonga.def +2 -0
  9. data/ext/groonga/mkmf.log +7 -7
  10. data/ext/groonga/rb-grn-column.c +66 -0
  11. data/ext/groonga/rb-grn-context.c +92 -5
  12. data/ext/groonga/rb-grn-database.c +24 -1
  13. data/ext/groonga/rb-grn-exception.c +15 -0
  14. data/ext/groonga/rb-grn-hash.c +2 -2
  15. data/ext/groonga/rb-grn-index-column.c +8 -4
  16. data/ext/groonga/rb-grn-object.c +4 -2
  17. data/ext/groonga/rb-grn-patricia-trie.c +2 -2
  18. data/ext/groonga/rb-grn-snippet.c +1 -0
  19. data/ext/groonga/rb-grn-table-key-support.c +22 -19
  20. data/ext/groonga/rb-grn-table.c +63 -5
  21. data/ext/groonga/rb-grn.h +1 -1
  22. data/ext/groonga/rb-groonga.c +1 -0
  23. data/extconf.rb +1 -1
  24. data/html/developer.html +8 -2
  25. data/html/favicon.ico +0 -0
  26. data/html/favicon.svg +591 -0
  27. data/html/index.html +71 -8
  28. data/html/logo.svg +612 -0
  29. data/html/ranguba.css +92 -7
  30. data/html/readme.svg +256 -0
  31. data/lib/groonga/expression-builder.rb +8 -4
  32. data/lib/groonga/record.rb +77 -7
  33. data/lib/groonga/schema.rb +429 -100
  34. data/rroonga-build.rb +1 -1
  35. data/test/run-test.rb +1 -1
  36. data/test/test-array.rb +4 -0
  37. data/test/test-context.rb +8 -0
  38. data/test/test-database.rb +8 -1
  39. data/test/test-expression-builder.rb +14 -0
  40. data/test/test-fix-size-column.rb +4 -0
  41. data/test/test-hash.rb +10 -4
  42. data/test/test-index-column.rb +11 -0
  43. data/test/test-patricia-trie.rb +7 -1
  44. data/test/test-record.rb +14 -0
  45. data/test/test-remote.rb +3 -2
  46. data/test/test-schema-create-table.rb +32 -2
  47. data/test/test-schema.rb +108 -11
  48. data/test/test-table-select-normalize.rb +7 -3
  49. data/test/test-table-select.rb +12 -0
  50. data/test/test-table.rb +7 -0
  51. data/test/test-variable-size-column.rb +4 -0
  52. data/test-unit/Rakefile +40 -0
  53. data/test-unit/TODO +5 -0
  54. data/test-unit/bin/testrb +5 -0
  55. data/test-unit/html/classic.html +15 -0
  56. data/test-unit/html/index.html +25 -0
  57. data/test-unit/html/index.html.ja +27 -0
  58. data/test-unit/lib/test/unit/assertionfailederror.rb +25 -0
  59. data/test-unit/lib/test/unit/assertions.rb +1230 -0
  60. data/test-unit/lib/test/unit/attribute.rb +125 -0
  61. data/test-unit/lib/test/unit/autorunner.rb +360 -0
  62. data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
  63. data/test-unit/lib/test/unit/collector/dir.rb +108 -0
  64. data/test-unit/lib/test/unit/collector/load.rb +144 -0
  65. data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
  66. data/test-unit/lib/test/unit/collector.rb +36 -0
  67. data/test-unit/lib/test/unit/color-scheme.rb +102 -0
  68. data/test-unit/lib/test/unit/color.rb +96 -0
  69. data/test-unit/lib/test/unit/diff.rb +724 -0
  70. data/test-unit/lib/test/unit/error.rb +130 -0
  71. data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
  72. data/test-unit/lib/test/unit/failure.rb +136 -0
  73. data/test-unit/lib/test/unit/fixture.rb +176 -0
  74. data/test-unit/lib/test/unit/notification.rb +129 -0
  75. data/test-unit/lib/test/unit/omission.rb +191 -0
  76. data/test-unit/lib/test/unit/pending.rb +150 -0
  77. data/test-unit/lib/test/unit/priority.rb +180 -0
  78. data/test-unit/lib/test/unit/runner/console.rb +52 -0
  79. data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
  80. data/test-unit/lib/test/unit/runner/tap.rb +8 -0
  81. data/test-unit/lib/test/unit/testcase.rb +476 -0
  82. data/test-unit/lib/test/unit/testresult.rb +89 -0
  83. data/test-unit/lib/test/unit/testsuite.rb +110 -0
  84. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
  85. data/test-unit/lib/test/unit/ui/console/testrunner.rb +466 -0
  86. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +63 -0
  87. data/test-unit/lib/test/unit/ui/tap/testrunner.rb +92 -0
  88. data/test-unit/lib/test/unit/ui/testrunner.rb +28 -0
  89. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
  90. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  91. data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
  92. data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
  93. data/test-unit/lib/test/unit/util/observable.rb +90 -0
  94. data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
  95. data/test-unit/lib/test/unit/version.rb +7 -0
  96. data/test-unit/lib/test/unit.rb +323 -0
  97. data/test-unit/sample/adder.rb +13 -0
  98. data/test-unit/sample/subtracter.rb +12 -0
  99. data/test-unit/sample/test_adder.rb +20 -0
  100. data/test-unit/sample/test_subtracter.rb +20 -0
  101. data/test-unit/sample/test_user.rb +23 -0
  102. data/test-unit/test/collector/test-descendant.rb +133 -0
  103. data/test-unit/test/collector/test-load.rb +442 -0
  104. data/test-unit/test/collector/test_dir.rb +406 -0
  105. data/test-unit/test/collector/test_objectspace.rb +100 -0
  106. data/test-unit/test/run-test.rb +15 -0
  107. data/test-unit/test/test-attribute.rb +86 -0
  108. data/test-unit/test/test-color-scheme.rb +67 -0
  109. data/test-unit/test/test-color.rb +47 -0
  110. data/test-unit/test/test-diff.rb +518 -0
  111. data/test-unit/test/test-emacs-runner.rb +60 -0
  112. data/test-unit/test/test-fixture.rb +287 -0
  113. data/test-unit/test/test-notification.rb +33 -0
  114. data/test-unit/test/test-omission.rb +81 -0
  115. data/test-unit/test/test-pending.rb +70 -0
  116. data/test-unit/test/test-priority.rb +119 -0
  117. data/test-unit/test/test-testcase.rb +544 -0
  118. data/test-unit/test/test_assertions.rb +1151 -0
  119. data/test-unit/test/test_error.rb +26 -0
  120. data/test-unit/test/test_failure.rb +33 -0
  121. data/test-unit/test/test_testresult.rb +113 -0
  122. data/test-unit/test/test_testsuite.rb +129 -0
  123. data/test-unit/test/testunit-test-util.rb +14 -0
  124. data/test-unit/test/ui/test_testrunmediator.rb +20 -0
  125. data/test-unit/test/util/test-method-owner-finder.rb +38 -0
  126. data/test-unit/test/util/test_backtracefilter.rb +41 -0
  127. data/test-unit/test/util/test_observable.rb +102 -0
  128. data/test-unit/test/util/test_procwrapper.rb +36 -0
  129. data/text/{TUTORIAL.ja.rdoc → tutorial.ja.rdoc} +165 -126
  130. metadata +106 -16
  131. data/html/favicon.xcf +0 -0
  132. data/html/logo.xcf +0 -0
  133. data/license/GPL +0 -340
  134. data/license/RUBY +0 -59
  135. data/pkg-config.rb +0 -333
data/pkg-config.rb DELETED
@@ -1,333 +0,0 @@
1
- # Copyright 2008-2009 Kouhei Sutou <kou@cozmixng.org>
2
- # This file is made available under the same terms as Ruby.
3
-
4
- require "rbconfig"
5
-
6
- require 'mkmf'
7
- require 'shellwords'
8
- require 'English'
9
- require 'pathname'
10
-
11
- class PackageConfig
12
- @@default_prepend_paths = []
13
- @@default_append_paths = []
14
-
15
- class << self
16
- def prepend_default_path(path)
17
- @@default_prepend_paths.unshift(path)
18
- end
19
-
20
- def append_default_path(path)
21
- @@default_append_paths << path
22
- end
23
- end
24
-
25
- attr_accessor :msvc_syntax
26
- def initialize(name, path=nil, msvc_syntax=false)
27
- @name = name
28
- @path = path || ENV["PKG_CONFIG_PATH"]
29
- @path = [@path, guess_default_path].compact.join(separator)
30
- @msvc_syntax = msvc_syntax
31
- @variables = @declarations = nil
32
- override_variables = with_config("override-variables", "")
33
- @override_variables = parse_override_variables(override_variables)
34
- end
35
-
36
- def exist?
37
- not pc.nil?
38
- end
39
-
40
- def requires
41
- parse_requires(declaration("Requires"))
42
- end
43
-
44
- def requires_private
45
- parse_requires(declaration("Requires.private"))
46
- end
47
-
48
- def cflags
49
- path_flags, other_flags = collect_cflags
50
- (other_flags + path_flags).join(" ")
51
- end
52
-
53
- def cflags_only_I
54
- collect_cflags[0].join(" ")
55
- end
56
-
57
- def libs
58
- path_flags, other_flags = collect_libs
59
- (other_flags + path_flags).join(" ")
60
- end
61
-
62
- def libs_only_l
63
- collect_libs[1].find_all do |arg|
64
- if @msvc_syntax
65
- /\.lib\z/ =~ arg
66
- else
67
- /\A-l/ =~ arg
68
- end
69
- end.join(" ")
70
- end
71
-
72
- def version
73
- declaration("Version")
74
- end
75
-
76
- def variable(name)
77
- parse_pc if @variables.nil?
78
- expand_value(@override_variables[name] || @variables[name])
79
- end
80
-
81
- def declaration(name)
82
- parse_pc if @declarations.nil?
83
- expand_value(@declarations[name])
84
- end
85
-
86
- private
87
- def paths
88
- paths = @@default_prepend_paths
89
- paths += @path.split(separator)
90
- paths += @@default_append_paths
91
- paths
92
- end
93
-
94
- def pc
95
- paths.each do |path|
96
- pc_name = File.join(path, "#{@name}.pc")
97
- return pc_name if File.exist?(pc_name)
98
- end
99
- return nil
100
- end
101
-
102
- def separator
103
- File.expand_path(".").index(":") ? ";" : ":"
104
- end
105
-
106
- def collect_cflags
107
- all_cflags = (requires_private + requires.reverse).collect do |package|
108
- self.class.new(package, @path, @msvc_syntax).cflags
109
- end
110
- all_cflags = [declaration("Cflags")] + all_cflags
111
- all_cflags = all_cflags.join(" ").gsub(/-I /, '-I').split.uniq
112
- path_flags, other_flags = all_cflags.partition {|flag| /\A-I/ =~ flag}
113
- path_flags = path_flags.reject do |flag|
114
- flag == "-I/usr/include"
115
- end
116
- if @msvc_syntax
117
- path_flags = path_flags.collect do |flag|
118
- flag.gsub(/\A-I/, "/I")
119
- end
120
- end
121
- [path_flags, other_flags]
122
- end
123
-
124
- def collect_libs
125
- all_libs = requires.collect do |package|
126
- self.class.new(package, @path, @msvc_syntax).libs
127
- end
128
- all_libs = [declaration("Libs")] + all_libs
129
- all_libs = all_libs.join(" ").gsub(/-([Ll]) /, '\1').split.uniq
130
- path_flags, other_flags = all_libs.partition {|flag| /\A-L/ =~ flag}
131
- path_flags = path_flags.reject do |flag|
132
- /\A-L\/usr\/lib(?:64)?\z/ =~ flag
133
- end
134
- if @msvc_syntax
135
- path_flags = path_flags.collect do |flag|
136
- flag.gsub(/\A-L/, "/libpath:")
137
- end
138
- other_flags = other_flags.collect do |flag|
139
- if /\A-l/ =~ flag
140
- "#{$POSTMATCH}.lib"
141
- else
142
- flag
143
- end
144
- end
145
- end
146
- [path_flags, other_flags]
147
- end
148
-
149
- IDENTIFIER_RE = /[\w.]+/
150
- def parse_pc
151
- raise ".pc for #{@name} doesn't exist." unless exist?
152
- @variables = {}
153
- @declarations = {}
154
- File.open(pc) do |input|
155
- input.each_line do |line|
156
- line = line.gsub(/#.*/, '').strip
157
- next if line.empty?
158
- case line
159
- when /^(#{IDENTIFIER_RE})=/
160
- @variables[$1] = $POSTMATCH.strip
161
- when /^(#{IDENTIFIER_RE}):/
162
- @declarations[$1] = $POSTMATCH.strip
163
- end
164
- end
165
- end
166
- end
167
-
168
- def parse_requires(requires)
169
- return [] if requires.nil?
170
- requires_without_version = requires.gsub(/[<>]?=\s*[\d.]+\s*/, '')
171
- requires_without_version.split(/[,\s]+/)
172
- end
173
-
174
- def parse_override_variables(override_variables)
175
- variables = {}
176
- override_variables.split(",").each do |variable|
177
- name, value = variable.split("=", 2)
178
- variables[name] = value
179
- end
180
- variables
181
- end
182
-
183
- def expand_value(value)
184
- return nil if value.nil?
185
- value.gsub(/\$\{(#{IDENTIFIER_RE})\}/) do
186
- variable($1)
187
- end
188
- end
189
-
190
- def search_pkg_config_from_path(pkg_config)
191
- (ENV["PATH"] || "").split(separator).each do |path|
192
- try_pkg_config = Pathname(path) + pkg_config
193
- return try_pkg_config if try_pkg_config.exist?
194
- end
195
- nil
196
- end
197
-
198
- def search_pkg_config_by_dln_find_exe(pkg_config)
199
- begin
200
- require "dl/import"
201
- rescue LoadError
202
- return nil
203
- end
204
- dln = Module.new
205
- dln.module_eval do
206
- if DL.const_defined?(:Importer)
207
- extend DL::Importer
208
- else
209
- extend DL::Importable
210
- end
211
- begin
212
- dlload RbConfig::CONFIG["LIBRUBY"]
213
- rescue RuntimeError
214
- return nil if $!.message == "unknown error"
215
- return nil if /: image not found\z/ =~ $!.message
216
- raise
217
- rescue DL::DLError
218
- return nil
219
- end
220
- extern "const char *dln_find_exe(const char *, const char *)"
221
- end
222
- path = dln.dln_find_exe(pkg_config.to_s, nil)
223
- if path and path.size.zero?
224
- nil
225
- else
226
- Pathname(path.to_s)
227
- end
228
- end
229
-
230
- def guess_default_path
231
- default_path = ["/usr/local/lib64/pkgconfig",
232
- "/usr/local/lib/pkgconfig",
233
- "/usr/local/libdata/pkgconfig",
234
- "/opt/local/lib/pkgconfig",
235
- "/usr/lib64/pkgconfig",
236
- "/usr/lib/pkgconfig",
237
- "/usr/X11/lib/pkgconfig/",
238
- "/usr/share/pkgconfig"].join(separator)
239
- libdir = ENV["PKG_CONFIG_LIBDIR"]
240
- default_path = [libdir, default_path].join(separator) if libdir
241
-
242
- pkg_config = with_config("pkg-config", ENV["PKG_CONFIG"] || "pkg-config")
243
- pkg_config = Pathname.new(pkg_config)
244
- unless pkg_config.absolute?
245
- found_pkg_config = search_pkg_config_from_path(pkg_config)
246
- pkg_config = found_pkg_config if found_pkg_config
247
- end
248
- unless pkg_config.absolute?
249
- found_pkg_config = search_pkg_config_by_dln_find_exe(pkg_config)
250
- pkg_config = found_pkg_config if found_pkg_config
251
- end
252
-
253
- return default_path unless pkg_config.absolute?
254
- [(pkg_config.parent.parent + "lib" + "pkgconfig").to_s,
255
- (pkg_config.parent.parent + "libdata" + "pkgconfig").to_s,
256
- default_path].join(separator)
257
- end
258
- end
259
-
260
- module PKGConfig
261
- module_function
262
- def msvc?
263
- /mswin32/.match(RUBY_PLATFORM) and /^cl\b/.match(Config::CONFIG['CC'])
264
- end
265
-
266
- def package_config(package)
267
- PackageConfig.new(package, nil, msvc?)
268
- end
269
-
270
- def exist?(pkg)
271
- package_config(pkg).exist?
272
- end
273
-
274
- def libs(pkg)
275
- package_config(pkg).libs
276
- end
277
-
278
- def libs_only_l(pkg)
279
- package_config(pkg).libs_only_l
280
- end
281
-
282
- def cflags(pkg)
283
- package_config(pkg).cflags
284
- end
285
-
286
- def cflags_only_I(pkg)
287
- package_config(pkg).cflags_only_I
288
- end
289
-
290
- def modversion(pkg)
291
- package_config(pkg).version
292
- end
293
-
294
- def check_version?(pkg, major = 0, minor = 0, micro = 0)
295
- return false unless exist?(pkg)
296
- ver = modversion(pkg).split(".").collect{|item| item.to_i}
297
- (0..2).each {|i| ver[i] = 0 unless ver[i]}
298
-
299
- (ver[0] > major ||
300
- (ver[0] == major && ver[1] > minor) ||
301
- (ver[0] == major && ver[1] == minor &&
302
- ver[2] >= micro))
303
- end
304
-
305
- def have_package(pkg, major = nil, minor = 0, micro = 0)
306
- if major.nil?
307
- STDOUT.print("checking for #{pkg}... ")
308
- else
309
- STDOUT.print("checking for #{pkg} version (>= #{major}.#{minor}.#{micro})... ")
310
- end
311
- major ||= 0
312
- STDOUT.flush
313
- if check_version?(pkg, major, minor, micro)
314
- STDOUT.print "yes\n"
315
- libraries = libs_only_l(pkg)
316
- dldflags = libs(pkg)
317
- dldflags = (Shellwords.shellwords(dldflags) -
318
- Shellwords.shellwords(libraries))
319
- dldflags = dldflags.map {|s| /\s/ =~ s ? "\"#{s}\"" : s }.join(' ')
320
- $libs += ' ' + libraries
321
- if /mswin32/ =~ RUBY_PLATFORM
322
- $DLDFLAGS += ' ' + dldflags
323
- else
324
- $LDFLAGS += ' ' + dldflags
325
- end
326
- $CFLAGS += ' ' + cflags(pkg)
327
- true
328
- else
329
- STDOUT.print "no\n"
330
- false
331
- end
332
- end
333
- end