groonga 0.9.1 → 1.0.0
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.
- metadata +38 -227
- data/AUTHORS +0 -5
- data/NEWS.ja.rdoc +0 -114
- data/NEWS.rdoc +0 -116
- data/README.ja.rdoc +0 -63
- data/README.rdoc +0 -64
- data/Rakefile +0 -216
- data/benchmark/common.rb +0 -49
- data/benchmark/read-write-many-small-items.rb +0 -144
- data/benchmark/write-many-small-items.rb +0 -135
- data/example/bookmark.rb +0 -161
- data/example/index-html.rb +0 -89
- data/example/search/config.ru +0 -211
- data/example/search/public/css/groonga.css +0 -122
- data/ext/.gitignore +0 -2
- data/ext/rb-grn-accessor.c +0 -52
- data/ext/rb-grn-array-cursor.c +0 -36
- data/ext/rb-grn-array.c +0 -210
- data/ext/rb-grn-column.c +0 -570
- data/ext/rb-grn-context.c +0 -655
- data/ext/rb-grn-database.c +0 -415
- data/ext/rb-grn-encoding-support.c +0 -64
- data/ext/rb-grn-encoding.c +0 -257
- data/ext/rb-grn-exception.c +0 -1110
- data/ext/rb-grn-expression-builder.c +0 -75
- data/ext/rb-grn-expression.c +0 -732
- data/ext/rb-grn-fix-size-column.c +0 -166
- data/ext/rb-grn-hash-cursor.c +0 -38
- data/ext/rb-grn-hash.c +0 -294
- data/ext/rb-grn-index-column.c +0 -488
- data/ext/rb-grn-logger.c +0 -325
- data/ext/rb-grn-object.c +0 -1335
- data/ext/rb-grn-operation.c +0 -198
- data/ext/rb-grn-patricia-trie-cursor.c +0 -39
- data/ext/rb-grn-patricia-trie.c +0 -488
- data/ext/rb-grn-procedure.c +0 -52
- data/ext/rb-grn-query.c +0 -260
- data/ext/rb-grn-record.c +0 -40
- data/ext/rb-grn-snippet.c +0 -328
- data/ext/rb-grn-table-cursor-key-support.c +0 -69
- data/ext/rb-grn-table-cursor.c +0 -246
- data/ext/rb-grn-table-key-support.c +0 -731
- data/ext/rb-grn-table.c +0 -2038
- data/ext/rb-grn-type.c +0 -181
- data/ext/rb-grn-utils.c +0 -769
- data/ext/rb-grn-variable-size-column.c +0 -36
- data/ext/rb-grn-variable.c +0 -108
- data/ext/rb-grn.h +0 -684
- data/ext/rb-groonga.c +0 -113
- data/extconf.rb +0 -216
- data/html/bar.svg +0 -153
- data/html/developer.html +0 -121
- data/html/developer.svg +0 -469
- data/html/download.svg +0 -253
- data/html/favicon.ico +0 -0
- data/html/favicon.xcf +0 -0
- data/html/footer.html.erb +0 -28
- data/html/head.html.erb +0 -4
- data/html/header.html.erb +0 -17
- data/html/index.html +0 -147
- data/html/install.svg +0 -636
- data/html/logo.xcf +0 -0
- data/html/ranguba.css +0 -248
- data/html/tutorial.svg +0 -559
- data/lib/groonga.rb +0 -83
- data/lib/groonga/expression-builder.rb +0 -285
- data/lib/groonga/patricia-trie.rb +0 -53
- data/lib/groonga/record.rb +0 -276
- data/lib/groonga/schema.rb +0 -916
- data/license/GPL +0 -340
- data/license/LGPL +0 -504
- data/license/RUBY +0 -59
- data/misc/grnop2ruby.rb +0 -49
- data/pkg-config.rb +0 -333
- data/src/rb-grn-table-cursor.c +0 -296
- data/test-unit/Rakefile +0 -40
- data/test-unit/TODO +0 -5
- data/test-unit/bin/testrb +0 -5
- data/test-unit/html/classic.html +0 -15
- data/test-unit/html/index.html +0 -25
- data/test-unit/html/index.html.ja +0 -27
- data/test-unit/lib/test/unit.rb +0 -323
- data/test-unit/lib/test/unit/assertionfailederror.rb +0 -25
- data/test-unit/lib/test/unit/assertions.rb +0 -1230
- data/test-unit/lib/test/unit/attribute.rb +0 -125
- data/test-unit/lib/test/unit/autorunner.rb +0 -353
- data/test-unit/lib/test/unit/collector.rb +0 -36
- data/test-unit/lib/test/unit/collector/descendant.rb +0 -23
- data/test-unit/lib/test/unit/collector/dir.rb +0 -108
- data/test-unit/lib/test/unit/collector/load.rb +0 -136
- data/test-unit/lib/test/unit/collector/objectspace.rb +0 -34
- data/test-unit/lib/test/unit/color-scheme.rb +0 -102
- data/test-unit/lib/test/unit/color.rb +0 -96
- data/test-unit/lib/test/unit/diff.rb +0 -724
- data/test-unit/lib/test/unit/error.rb +0 -130
- data/test-unit/lib/test/unit/exceptionhandler.rb +0 -39
- data/test-unit/lib/test/unit/failure.rb +0 -136
- data/test-unit/lib/test/unit/fixture.rb +0 -176
- data/test-unit/lib/test/unit/notification.rb +0 -129
- data/test-unit/lib/test/unit/omission.rb +0 -191
- data/test-unit/lib/test/unit/pending.rb +0 -150
- data/test-unit/lib/test/unit/priority.rb +0 -181
- data/test-unit/lib/test/unit/runner/console.rb +0 -52
- data/test-unit/lib/test/unit/runner/emacs.rb +0 -8
- data/test-unit/lib/test/unit/runner/tap.rb +0 -8
- data/test-unit/lib/test/unit/testcase.rb +0 -476
- data/test-unit/lib/test/unit/testresult.rb +0 -89
- data/test-unit/lib/test/unit/testsuite.rb +0 -110
- data/test-unit/lib/test/unit/ui/console/outputlevel.rb +0 -14
- data/test-unit/lib/test/unit/ui/console/testrunner.rb +0 -464
- data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +0 -63
- data/test-unit/lib/test/unit/ui/tap/testrunner.rb +0 -92
- data/test-unit/lib/test/unit/ui/testrunner.rb +0 -28
- data/test-unit/lib/test/unit/ui/testrunnermediator.rb +0 -77
- data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +0 -41
- data/test-unit/lib/test/unit/util/backtracefilter.rb +0 -41
- data/test-unit/lib/test/unit/util/method-owner-finder.rb +0 -28
- data/test-unit/lib/test/unit/util/observable.rb +0 -90
- data/test-unit/lib/test/unit/util/procwrapper.rb +0 -48
- data/test-unit/lib/test/unit/version.rb +0 -7
- data/test-unit/sample/adder.rb +0 -13
- data/test-unit/sample/subtracter.rb +0 -12
- data/test-unit/sample/test_adder.rb +0 -20
- data/test-unit/sample/test_subtracter.rb +0 -20
- data/test-unit/sample/test_user.rb +0 -23
- data/test-unit/test/collector/test-descendant.rb +0 -133
- data/test-unit/test/collector/test-load.rb +0 -329
- data/test-unit/test/collector/test_dir.rb +0 -406
- data/test-unit/test/collector/test_objectspace.rb +0 -100
- data/test-unit/test/run-test.rb +0 -15
- data/test-unit/test/test-attribute.rb +0 -86
- data/test-unit/test/test-color-scheme.rb +0 -67
- data/test-unit/test/test-color.rb +0 -47
- data/test-unit/test/test-diff.rb +0 -518
- data/test-unit/test/test-emacs-runner.rb +0 -60
- data/test-unit/test/test-fixture.rb +0 -287
- data/test-unit/test/test-notification.rb +0 -33
- data/test-unit/test/test-omission.rb +0 -81
- data/test-unit/test/test-pending.rb +0 -70
- data/test-unit/test/test-priority.rb +0 -119
- data/test-unit/test/test-testcase.rb +0 -554
- data/test-unit/test/test_assertions.rb +0 -1151
- data/test-unit/test/test_error.rb +0 -26
- data/test-unit/test/test_failure.rb +0 -33
- data/test-unit/test/test_testresult.rb +0 -113
- data/test-unit/test/test_testsuite.rb +0 -129
- data/test-unit/test/testunit-test-util.rb +0 -14
- data/test-unit/test/ui/test_testrunmediator.rb +0 -20
- data/test-unit/test/util/test-method-owner-finder.rb +0 -38
- data/test-unit/test/util/test_backtracefilter.rb +0 -41
- data/test-unit/test/util/test_observable.rb +0 -102
- data/test-unit/test/util/test_procwrapper.rb +0 -36
- data/test/.gitignore +0 -1
- data/test/groonga-test-utils.rb +0 -106
- data/test/run-test.rb +0 -58
- data/test/test-array.rb +0 -97
- data/test/test-column.rb +0 -298
- data/test/test-context.rb +0 -73
- data/test/test-database.rb +0 -113
- data/test/test-encoding.rb +0 -33
- data/test/test-exception.rb +0 -93
- data/test/test-expression-builder.rb +0 -156
- data/test/test-expression.rb +0 -133
- data/test/test-fix-size-column.rb +0 -65
- data/test/test-gqtp.rb +0 -70
- data/test/test-hash.rb +0 -312
- data/test/test-index-column.rb +0 -81
- data/test/test-patricia-trie.rb +0 -189
- data/test/test-procedure.rb +0 -37
- data/test/test-query.rb +0 -22
- data/test/test-record.rb +0 -268
- data/test/test-remote.rb +0 -53
- data/test/test-schema.rb +0 -416
- data/test/test-snippet.rb +0 -121
- data/test/test-table-cursor.rb +0 -153
- data/test/test-table-offset-and-limit.rb +0 -102
- data/test/test-table-select-normalize.rb +0 -48
- data/test/test-table-select.rb +0 -145
- data/test/test-table.rb +0 -642
- data/test/test-type.rb +0 -61
- data/test/test-variable-size-column.rb +0 -98
- data/test/test-variable.rb +0 -28
- data/test/test-vector-column.rb +0 -76
- data/test/test-version.rb +0 -31
- data/text/TUTORIAL.ja.rdoc +0 -392
- data/text/expression.rdoc +0 -284
data/README.ja.rdoc
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
= はじめに
|
2
|
-
|
3
|
-
== 名前
|
4
|
-
|
5
|
-
Ruby/groonga
|
6
|
-
|
7
|
-
== 説明
|
8
|
-
|
9
|
-
全文検索機能とカラムストア機能を提供するgroongaのRubyバイン
|
10
|
-
ディングです。
|
11
|
-
|
12
|
-
groongaのいわゆるDB-API層をRubyから使うための拡張ライブラリで
|
13
|
-
す。groongaのAPIをそのままRubyレベルに提供するのではなく、
|
14
|
-
Rubyらしく読み書きしやすいAPIとして提供します。高速・高機能な
|
15
|
-
groongaをRubyらしい書き方で利用できます。
|
16
|
-
|
17
|
-
groongaに関する情報は以下を参照して下さい。
|
18
|
-
|
19
|
-
* groonga: http://groonga.org/
|
20
|
-
|
21
|
-
== 作者
|
22
|
-
|
23
|
-
Kouhei Sutou:: <tt><kou@clear-code.com></tt>
|
24
|
-
Tasuku SUENAGA:: <tt><a@razil.jp></tt>
|
25
|
-
daijiro:: <tt><morita@razil.jp></tt>
|
26
|
-
Yuto HAYAMIZU:: <tt><y.hayamizu@gmail.com></tt>
|
27
|
-
SHIDARA Yoji:: <tt><dara@shidara.net></tt>
|
28
|
-
|
29
|
-
== ライセンス
|
30
|
-
|
31
|
-
LGPL 2.1です。詳しくはlicense/LGPLを見てください。
|
32
|
-
|
33
|
-
pkg-config.rbはrcairoに付属しているもので、これはRubyライセ
|
34
|
-
ンスです。詳しくはlicense/RUBYとlicense/GPLを見てください。
|
35
|
-
|
36
|
-
== 依存ソフトウェア
|
37
|
-
|
38
|
-
* Ruby >= 1.8 (1.9.1対応)
|
39
|
-
* groonga >= 0.1.4
|
40
|
-
|
41
|
-
== インストール
|
42
|
-
|
43
|
-
% sudo gem install groonga
|
44
|
-
|
45
|
-
== ドキュメント
|
46
|
-
|
47
|
-
http://groonga.rubyforge.org/groonga/
|
48
|
-
|
49
|
-
== メーリングリスト
|
50
|
-
|
51
|
-
質問、要望、バグ報告などはgroongaのMLにお願いします。
|
52
|
-
|
53
|
-
http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
|
54
|
-
|
55
|
-
== 感謝
|
56
|
-
|
57
|
-
* 森さん: 最新groonga対応パッチをくれました。
|
58
|
-
* グニャラくん: バグレポートしてくれました。
|
59
|
-
* にくさん: バグレポートしてくれました。
|
60
|
-
* daraさん:
|
61
|
-
* テストを書いてくれました。
|
62
|
-
* バグを直してくれました。
|
63
|
-
* id:mat_akiさん: チュートリアルのバグを教えてくれました。
|
data/README.rdoc
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
= README
|
2
|
-
|
3
|
-
== Name
|
4
|
-
|
5
|
-
Ruby/groonga
|
6
|
-
|
7
|
-
== Description
|
8
|
-
|
9
|
-
Ruby bindings for groonga that provides full text search and
|
10
|
-
column store features.
|
11
|
-
|
12
|
-
Ruby/groonga is a extension library to use groonga's DB-API
|
13
|
-
layer. Ruby/groonga provides Rubyish readable and writable
|
14
|
-
API. You can use groonga's first and highly functional
|
15
|
-
features from Ruby.
|
16
|
-
|
17
|
-
See the following URL about groonga.
|
18
|
-
|
19
|
-
* groonga: http://groonga.org/
|
20
|
-
|
21
|
-
== Authors
|
22
|
-
|
23
|
-
Kouhei Sutou:: <tt><kou@clear-code.com></tt>
|
24
|
-
Tasuku SUENAGA:: <tt><a@razil.jp></tt>
|
25
|
-
daijiro:: <tt><morita@razil.jp></tt>
|
26
|
-
Yuto HAYAMIZU:: <tt><y.hayamizu@gmail.com></tt>
|
27
|
-
SHIDARA Yoji:: <tt><dara@shidara.net></tt>
|
28
|
-
|
29
|
-
== License
|
30
|
-
|
31
|
-
LGPL 2.1. See license/LGPL for details.
|
32
|
-
|
33
|
-
pkg-config.rb is a library that is bundled with rcairo. It's
|
34
|
-
distributed under Ruby license. See license/RUBY and
|
35
|
-
license/GPL for details.
|
36
|
-
|
37
|
-
== Dependencies
|
38
|
-
|
39
|
-
* Ruby >= 1.8 (including 1.9.1)
|
40
|
-
* groonga >= 0.1.4
|
41
|
-
|
42
|
-
== Install
|
43
|
-
|
44
|
-
% sudo gem install groonga
|
45
|
-
|
46
|
-
== Documents
|
47
|
-
|
48
|
-
Japanese only. Sorry.
|
49
|
-
|
50
|
-
http://groonga.rubyforge.org/groonga/
|
51
|
-
|
52
|
-
== Mailing list
|
53
|
-
|
54
|
-
http://rubyforge.org/mailman/listinfo/groonga-users-en
|
55
|
-
|
56
|
-
== Thanks
|
57
|
-
|
58
|
-
* mori: sent patches to support the latest groonga.
|
59
|
-
* Tasuku SUENAGA: sent bug reports.
|
60
|
-
* niku: sent bug reports.
|
61
|
-
* dara:
|
62
|
-
* wrote tests.
|
63
|
-
* fixed bugs.
|
64
|
-
* id:mat_aki: sent bug reports.
|
data/Rakefile
DELETED
@@ -1,216 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8; mode: ruby -*-
|
2
|
-
#
|
3
|
-
# Copyright (C) 2009 Kouhei Sutou <kou@clear-code.com>
|
4
|
-
#
|
5
|
-
# This library is free software; you can redistribute it and/or
|
6
|
-
# modify it under the terms of the GNU Lesser General Public
|
7
|
-
# License version 2.1 as published by the Free Software Foundation.
|
8
|
-
#
|
9
|
-
# This library is distributed in the hope that it will be useful,
|
10
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
-
# Lesser General Public License for more details.
|
13
|
-
#
|
14
|
-
# You should have received a copy of the GNU Lesser General Public
|
15
|
-
# License along with this library; if not, write to the Free Software
|
16
|
-
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
17
|
-
|
18
|
-
require 'English'
|
19
|
-
|
20
|
-
require 'find'
|
21
|
-
require 'fileutils'
|
22
|
-
require 'pathname'
|
23
|
-
require 'erb'
|
24
|
-
require 'rubygems'
|
25
|
-
gem 'rdoc'
|
26
|
-
require 'hoe'
|
27
|
-
|
28
|
-
ENV["NODOT"] = "yes"
|
29
|
-
|
30
|
-
base_dir = File.join(File.dirname(__FILE__))
|
31
|
-
truncate_base_dir = Proc.new do |x|
|
32
|
-
x.gsub(/^#{Regexp.escape(base_dir + File::SEPARATOR)}/, '')
|
33
|
-
end
|
34
|
-
|
35
|
-
groonga_ext_dir = File.join(base_dir, 'ext')
|
36
|
-
groonga_lib_dir = File.join(base_dir, 'lib')
|
37
|
-
$LOAD_PATH.unshift(groonga_ext_dir)
|
38
|
-
$LOAD_PATH.unshift(groonga_lib_dir)
|
39
|
-
ENV["RUBYLIB"] = "#{groonga_lib_dir}:#{groonga_ext_dir}:#{ENV['RUBYLIB']}"
|
40
|
-
|
41
|
-
def guess_version
|
42
|
-
require 'groonga'
|
43
|
-
Groonga.bindings_version
|
44
|
-
end
|
45
|
-
|
46
|
-
groonga_win32_dir = "groonga"
|
47
|
-
FileUtils.rm_rf(groonga_win32_dir)
|
48
|
-
|
49
|
-
manifest = File.join(base_dir, "Manifest.txt")
|
50
|
-
manifest_contents = []
|
51
|
-
base_dir_included_components = %w(AUTHORS Rakefile
|
52
|
-
README.rdoc README.ja.rdoc
|
53
|
-
NEWS.rdoc NEWS.ja.rdoc
|
54
|
-
extconf.rb pkg-config.rb)
|
55
|
-
excluded_components = %w(.cvsignore .gdb_history CVS depend Makefile doc pkg
|
56
|
-
.svn .git doc vendor data .test-result)
|
57
|
-
excluded_suffixes = %w(.png .ps .pdf .o .so .a .txt .~)
|
58
|
-
Find.find(base_dir) do |target|
|
59
|
-
target = truncate_base_dir[target]
|
60
|
-
components = target.split(File::SEPARATOR)
|
61
|
-
if components.size == 1 and !File.directory?(target)
|
62
|
-
next unless base_dir_included_components.include?(components[0])
|
63
|
-
end
|
64
|
-
Find.prune if (excluded_components - components) != excluded_components
|
65
|
-
next if excluded_suffixes.include?(File.extname(target))
|
66
|
-
manifest_contents << target if File.file?(target)
|
67
|
-
end
|
68
|
-
|
69
|
-
File.open(manifest, "w") do |f|
|
70
|
-
f.puts manifest_contents.sort.join("\n")
|
71
|
-
end
|
72
|
-
|
73
|
-
# For Hoe's no user friendly default behavior. :<
|
74
|
-
File.open("README.txt", "w") {|file| file << "= Dummy README\n== XXX\n"}
|
75
|
-
FileUtils.cp("NEWS.rdoc", "History.txt")
|
76
|
-
at_exit do
|
77
|
-
FileUtils.rm_f("README.txt")
|
78
|
-
FileUtils.rm_f("History.txt")
|
79
|
-
FileUtils.rm_f(manifest)
|
80
|
-
end
|
81
|
-
|
82
|
-
def cleanup_white_space(entry)
|
83
|
-
entry.gsub(/(\A\n+|\n+\z)/, '') + "\n"
|
84
|
-
end
|
85
|
-
|
86
|
-
ENV["VERSION"] ||= guess_version
|
87
|
-
version = ENV["VERSION"]
|
88
|
-
project = nil
|
89
|
-
Hoe.spec('groonga') do |_project|
|
90
|
-
Hoe::Test::SUPPORTED_TEST_FRAMEWORKS[:testunit2] = "test/run-test.rb"
|
91
|
-
project = _project
|
92
|
-
project.version = version
|
93
|
-
project.rubyforge_name = 'groonga'
|
94
|
-
authors = File.join(base_dir, "AUTHORS")
|
95
|
-
project.author = File.readlines(authors).collect do |line|
|
96
|
-
if /\s*<[^<>]*>$/ =~ line
|
97
|
-
$PREMATCH
|
98
|
-
else
|
99
|
-
nil
|
100
|
-
end
|
101
|
-
end.compact
|
102
|
-
project.email = ['groonga-users-en@rubyforge.org',
|
103
|
-
'groonga-dev@lists.sourceforge.jp']
|
104
|
-
project.url = 'http://groonga.rubyforge.org/'
|
105
|
-
project.testlib = :testunit2
|
106
|
-
project.test_globs = ["test/run-test.rb"]
|
107
|
-
project.spec_extras = {
|
108
|
-
:extensions => ['extconf.rb'],
|
109
|
-
:require_paths => ["lib", "ext"],
|
110
|
-
:extra_rdoc_files => Dir.glob("**/*.rdoc"),
|
111
|
-
}
|
112
|
-
project.readme_file = "README.ja.rdoc"
|
113
|
-
|
114
|
-
news_of_current_release = File.read("NEWS.rdoc").split(/^==\s.*$/)[1]
|
115
|
-
project.changes = cleanup_white_space(news_of_current_release)
|
116
|
-
|
117
|
-
entries = File.read("README.rdoc").split(/^==\s(.*)$/)
|
118
|
-
description = cleanup_white_space(entries[entries.index("Description") + 1])
|
119
|
-
project.summary, project.description, = description.split(/\n\n+/, 3)
|
120
|
-
|
121
|
-
project.remote_rdoc_dir = "groonga"
|
122
|
-
end
|
123
|
-
|
124
|
-
project.spec.dependencies.delete_if {|dependency| dependency.name == "hoe"}
|
125
|
-
|
126
|
-
if /mswin32/ =~ project.spec.platform.to_s
|
127
|
-
project.spec.extensions = []
|
128
|
-
project.spec.files += ["ext/groonga.so", "ext/libruby-groonga.a"]
|
129
|
-
|
130
|
-
FileUtils.cp_r(File.expand_path("~/.wine/drive_c/groonga-dev"),
|
131
|
-
groonga_win32_dir)
|
132
|
-
groonga_files = []
|
133
|
-
Find.find(groonga_win32_dir) do |f|
|
134
|
-
groonga_files << f
|
135
|
-
end
|
136
|
-
project.spec.files += groonga_files
|
137
|
-
end
|
138
|
-
|
139
|
-
ObjectSpace.each_object(Rake::RDocTask) do |rdoc_task|
|
140
|
-
options = rdoc_task.options
|
141
|
-
t_option_index = options.index("--title") || options.index("-t")
|
142
|
-
rdoc_task.options[t_option_index, 2] = nil
|
143
|
-
rdoc_task.title = "Ruby/groonga - #{version}"
|
144
|
-
|
145
|
-
rdoc_task.rdoc_files = ["ext/rb-groonga.c"] + Dir.glob("ext/rb-grn-*.c")
|
146
|
-
rdoc_task.rdoc_files += Dir.glob("lib/**/*.rb")
|
147
|
-
rdoc_task.rdoc_files += Dir.glob("**/*.rdoc")
|
148
|
-
end
|
149
|
-
|
150
|
-
task :publish_docs => [:prepare_docs_for_publishing]
|
151
|
-
|
152
|
-
|
153
|
-
include ERB::Util
|
154
|
-
|
155
|
-
def apply_template(file, head, header, footer)
|
156
|
-
content = File.read(file)
|
157
|
-
content = content.sub(/lang="en"/, 'lang="ja"')
|
158
|
-
|
159
|
-
title = nil
|
160
|
-
content = content.sub(/<title>(.+?)<\/title>/) do
|
161
|
-
title = $1
|
162
|
-
head.result(binding)
|
163
|
-
end
|
164
|
-
|
165
|
-
content = content.sub(/<body(?:.*?)>/) do |body_start|
|
166
|
-
"#{body_start}\n#{header.result(binding)}\n"
|
167
|
-
end
|
168
|
-
|
169
|
-
content = content.sub(/<\/body/) do |body_end|
|
170
|
-
"\n#{footer.result(binding)}\n#{body_end}"
|
171
|
-
end
|
172
|
-
|
173
|
-
File.open(file, "w") do |file|
|
174
|
-
file.print(content)
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
|
-
def erb_template(name)
|
179
|
-
file = File.join("html", "#{name}.html.erb")
|
180
|
-
template = File.read(file)
|
181
|
-
erb = ERB.new(template, nil, "-")
|
182
|
-
erb.filename = file
|
183
|
-
erb
|
184
|
-
end
|
185
|
-
|
186
|
-
task :prepare_docs_for_publishing do
|
187
|
-
head = erb_template("head")
|
188
|
-
header = erb_template("header")
|
189
|
-
footer = erb_template("footer")
|
190
|
-
Find.find("doc") do |file|
|
191
|
-
if /\.html\z/ =~ file and /_(?:c|rb)\.html\z/ !~ file
|
192
|
-
apply_template(file, head, header, footer)
|
193
|
-
end
|
194
|
-
end
|
195
|
-
end
|
196
|
-
|
197
|
-
task :publish_html do
|
198
|
-
config = YAML.load(File.read(File.expand_path("~/.rubyforge/user-config.yml")))
|
199
|
-
host = "#{config["username"]}@rubyforge.org"
|
200
|
-
|
201
|
-
rsync_args = "-av --exclude '*.erb' --exclude '*.svg' --exclude .svn"
|
202
|
-
remote_dir = "/var/www/gforge-projects/#{project.rubyforge_name}/"
|
203
|
-
sh "rsync #{rsync_args} html/ #{host}:#{remote_dir}"
|
204
|
-
end
|
205
|
-
|
206
|
-
task :tag do
|
207
|
-
repository = "svn+ssh://rubyforge.org/var/svn/groonga/groonga"
|
208
|
-
sh("svn cp -m 'release #{version}!!!' " +
|
209
|
-
"#{repository}/trunk #{repository}/tags/#{version}")
|
210
|
-
end
|
211
|
-
|
212
|
-
# fix Hoe's incorrect guess.
|
213
|
-
project.spec.executables.clear
|
214
|
-
# project.lib_files = project.spec.files.grep(%r|^src/lib/|)
|
215
|
-
|
216
|
-
task(:release).prerequisites.reject! {|name| name == "clean"}
|
data/benchmark/common.rb
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
require 'benchmark'
|
2
|
-
require 'tempfile'
|
3
|
-
|
4
|
-
def memory_usage()
|
5
|
-
status = `cat /proc/#{$$}/status`
|
6
|
-
lines = status.split("\n")
|
7
|
-
lines.each do |line|
|
8
|
-
if line =~ /^VmRSS:/
|
9
|
-
line.gsub!(/.*:\s*(\d+).*/, '\1')
|
10
|
-
return line.to_i / 1024.0
|
11
|
-
end
|
12
|
-
end
|
13
|
-
return -1;
|
14
|
-
end
|
15
|
-
|
16
|
-
@items = []
|
17
|
-
|
18
|
-
def item(label, &block)
|
19
|
-
@items << [label, block]
|
20
|
-
end
|
21
|
-
|
22
|
-
def report(index=0)
|
23
|
-
width = @items.collect do |label, _|
|
24
|
-
label.length
|
25
|
-
end.max
|
26
|
-
|
27
|
-
label, block = @items[index]
|
28
|
-
if label.nil?
|
29
|
-
puts "unavailable report ID: #{index}"
|
30
|
-
puts "available IDs:"
|
31
|
-
@items.each_with_index do |(label, block), i|
|
32
|
-
puts "#{i}: #{label}"
|
33
|
-
end
|
34
|
-
exit 1
|
35
|
-
end
|
36
|
-
|
37
|
-
if index.zero?
|
38
|
-
puts(" " * (width - 1) + Benchmark::Tms::CAPTION.rstrip + "memory".rjust(14))
|
39
|
-
end
|
40
|
-
# GC.disable
|
41
|
-
before = memory_usage
|
42
|
-
result = Benchmark.measure(&block)
|
43
|
-
# GC.enable
|
44
|
-
GC.start
|
45
|
-
size = memory_usage - before
|
46
|
-
|
47
|
-
formatted_size = "%10.3f" % size
|
48
|
-
puts "#{label.ljust(width)} #{result.to_s.strip} #{formatted_size}MB"
|
49
|
-
end
|
@@ -1,144 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
|
3
|
-
# This benchmark is based on Tokyo Cabinet's benchmark at
|
4
|
-
# http://alpha.mixi.co.jp/blog/?p=791
|
5
|
-
#
|
6
|
-
# On my environment at 2009/07/14:
|
7
|
-
# % for x in {0..9}; do ruby benchmark/read-write-many-small-items.rb $x; done
|
8
|
-
# user system total real memory
|
9
|
-
# Hash 0.850000 0.170000 1.020000 ( 1.050703) 46.957MB
|
10
|
-
# groonga: Hash: memory 1.080000 0.180000 1.260000 ( 1.251981) 30.152MB
|
11
|
-
# groonga: Trie: memory 1.300000 0.120000 1.420000 ( 1.429549) 22.199MB
|
12
|
-
# groonga: Hash: file 1.070000 0.190000 1.260000 ( 1.276910) 30.156MB
|
13
|
-
# groonga: Trie: file 1.280000 0.150000 1.430000 ( 1.423066) 22.203MB
|
14
|
-
# Localmemcache: file 1.320000 0.150000 1.470000 ( 1.497013) 45.984MB
|
15
|
-
# TC: Hash: memory 0.940000 0.250000 1.190000 ( 1.248141) 48.758MB
|
16
|
-
# TC: Tree: memory 0.890000 0.140000 1.030000 ( 1.067693) 37.270MB
|
17
|
-
# TC: Hash: file 1.740000 2.390000 4.130000 ( 4.141555) 8.848MB
|
18
|
-
# TC: Tree: file 1.290000 0.180000 1.470000 ( 1.476853) 12.805MB
|
19
|
-
#
|
20
|
-
# CPU: Intel(R) Core(TM)2 Duo 2.33GHz
|
21
|
-
# Memory: 2GB
|
22
|
-
# Ruby: Debian GNU/Linux sid at 2009/07/14:
|
23
|
-
# ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux]
|
24
|
-
# groonga: HEAD at 2009/07/14: fdaf58df5dd0195c10624eabee3e3f522f4af3f9
|
25
|
-
# Ruby/Groonga: trunk at 2009/07/14: r479
|
26
|
-
# Localmemcache: HEAD at 2009/07/14: 3121629016344dfd10f7533ca8ec68a0006cca21
|
27
|
-
# Tokyo Cabinet: 1.4.29
|
28
|
-
# Tokyo Cabinet Ruby: 1.27
|
29
|
-
#
|
30
|
-
# NOTE:
|
31
|
-
# * groonga, Localmemcache and Tokyo Cabinet are built with "-O3" option.
|
32
|
-
# * Ruby bindings of them are built with "-O2" option.
|
33
|
-
|
34
|
-
require File.join(File.dirname(__FILE__), "common.rb")
|
35
|
-
|
36
|
-
n = 500000
|
37
|
-
|
38
|
-
values = []
|
39
|
-
n.times do |i|
|
40
|
-
values << "%08d" % i
|
41
|
-
end
|
42
|
-
|
43
|
-
item("Hash") do
|
44
|
-
@hash = {}
|
45
|
-
values.each do |value|
|
46
|
-
@hash[value] = value
|
47
|
-
@hash[value]
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
begin
|
52
|
-
base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
53
|
-
$LOAD_PATH.unshift(File.join(base_dir, "ext"))
|
54
|
-
$LOAD_PATH.unshift(File.join(base_dir, "lib"))
|
55
|
-
|
56
|
-
require 'groonga'
|
57
|
-
tmp_dir = "/tmp/groonga"
|
58
|
-
FileUtils.rm_rf(tmp_dir)
|
59
|
-
FileUtils.mkdir(tmp_dir)
|
60
|
-
@database = Groonga::Database.create(:path => "#{tmp_dir}/db")
|
61
|
-
|
62
|
-
item("groonga: Hash: file") do
|
63
|
-
@hash = Groonga::Hash.create(:name => "Hash",
|
64
|
-
:key_type => "ShortText")
|
65
|
-
column_name = "value"
|
66
|
-
@column = @hash.define_column(column_name, "ShortText")
|
67
|
-
values.each do |value|
|
68
|
-
@hash.set_column_value(value, column_name, value)
|
69
|
-
@hash.column_value(value, column_name)
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
item("groonga: Trie: file") do
|
74
|
-
@trie = Groonga::PatriciaTrie.create(:name => "PatriciaTrie",
|
75
|
-
:key_type => "ShortText")
|
76
|
-
column_name = "value"
|
77
|
-
@column = @trie.define_column(column_name, "ShortText")
|
78
|
-
values.each do |value|
|
79
|
-
@trie.set_column_value(value, column_name, value)
|
80
|
-
@trie.column_value(value, column_name)
|
81
|
-
end
|
82
|
-
end
|
83
|
-
rescue LoadError
|
84
|
-
end
|
85
|
-
|
86
|
-
begin
|
87
|
-
require 'localmemcache'
|
88
|
-
|
89
|
-
item("Localmemcache: file") do
|
90
|
-
LocalMemCache.drop(:namespace => "read-write-many-small-items",
|
91
|
-
:force => true)
|
92
|
-
@db = LocalMemCache.new(:namespace => "read-write-many-small-items")
|
93
|
-
values.each do |value|
|
94
|
-
@db[value] = value
|
95
|
-
@db[value]
|
96
|
-
end
|
97
|
-
end
|
98
|
-
rescue LoadError
|
99
|
-
end
|
100
|
-
|
101
|
-
begin
|
102
|
-
require 'tokyocabinet'
|
103
|
-
|
104
|
-
item("TC: Hash: memory") do
|
105
|
-
@db = TokyoCabinet::ADB::new
|
106
|
-
@db.open("*#bnum=#{n}#mode=wct#xmsiz=0")
|
107
|
-
values.each do |value|
|
108
|
-
@db.put(value, value)
|
109
|
-
@db.get(value)
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
item("TC: Tree: memory") do
|
114
|
-
@db = TokyoCabinet::ADB::new
|
115
|
-
@db.open("+#bnum=#{n}#mode=wct#xmsiz=0")
|
116
|
-
values.each do |value|
|
117
|
-
@db.put(value, value)
|
118
|
-
@db.get(value)
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
hash_file = Tempfile.new(["tc-hash", ".tch"])
|
123
|
-
item("TC: Hash: file") do
|
124
|
-
@db = TokyoCabinet::ADB::new
|
125
|
-
@db.open("#{hash_file.path}#bnum=#{n}#mode=wct#xmsiz=0")
|
126
|
-
values.each do |value|
|
127
|
-
@db.put(value, value)
|
128
|
-
@db.get(value)
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
tree_file = Tempfile.new(["tc-tree", ".tcb"])
|
133
|
-
item("TC: Tree: file") do
|
134
|
-
@db = TokyoCabinet::ADB::new
|
135
|
-
@db.open("#{tree_file.path}#bnum=#{n}#mode=wct#xmsiz=0")
|
136
|
-
values.each do |value|
|
137
|
-
@db.put(value, value)
|
138
|
-
@db.get(value)
|
139
|
-
end
|
140
|
-
end
|
141
|
-
rescue LoadError
|
142
|
-
end
|
143
|
-
|
144
|
-
report(Integer(ARGV[0] || 0))
|