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.
- data/NEWS.ja.rdoc +46 -0
- data/NEWS.rdoc +46 -0
- data/README.ja.rdoc +2 -2
- data/README.rdoc +2 -3
- data/Rakefile +148 -11
- data/example/bookmark.rb +94 -91
- data/ext/groonga/extconf.rb +25 -25
- data/ext/groonga/groonga.def +2 -0
- data/ext/groonga/mkmf.log +7 -7
- data/ext/groonga/rb-grn-column.c +66 -0
- data/ext/groonga/rb-grn-context.c +92 -5
- data/ext/groonga/rb-grn-database.c +24 -1
- data/ext/groonga/rb-grn-exception.c +15 -0
- data/ext/groonga/rb-grn-hash.c +2 -2
- data/ext/groonga/rb-grn-index-column.c +8 -4
- data/ext/groonga/rb-grn-object.c +4 -2
- data/ext/groonga/rb-grn-patricia-trie.c +2 -2
- data/ext/groonga/rb-grn-snippet.c +1 -0
- data/ext/groonga/rb-grn-table-key-support.c +22 -19
- data/ext/groonga/rb-grn-table.c +63 -5
- data/ext/groonga/rb-grn.h +1 -1
- data/ext/groonga/rb-groonga.c +1 -0
- data/extconf.rb +1 -1
- data/html/developer.html +8 -2
- data/html/favicon.ico +0 -0
- data/html/favicon.svg +591 -0
- data/html/index.html +71 -8
- data/html/logo.svg +612 -0
- data/html/ranguba.css +92 -7
- data/html/readme.svg +256 -0
- data/lib/groonga/expression-builder.rb +8 -4
- data/lib/groonga/record.rb +77 -7
- data/lib/groonga/schema.rb +429 -100
- data/rroonga-build.rb +1 -1
- data/test/run-test.rb +1 -1
- data/test/test-array.rb +4 -0
- data/test/test-context.rb +8 -0
- data/test/test-database.rb +8 -1
- data/test/test-expression-builder.rb +14 -0
- data/test/test-fix-size-column.rb +4 -0
- data/test/test-hash.rb +10 -4
- data/test/test-index-column.rb +11 -0
- data/test/test-patricia-trie.rb +7 -1
- data/test/test-record.rb +14 -0
- data/test/test-remote.rb +3 -2
- data/test/test-schema-create-table.rb +32 -2
- data/test/test-schema.rb +108 -11
- data/test/test-table-select-normalize.rb +7 -3
- data/test/test-table-select.rb +12 -0
- data/test/test-table.rb +7 -0
- data/test/test-variable-size-column.rb +4 -0
- data/test-unit/Rakefile +40 -0
- data/test-unit/TODO +5 -0
- data/test-unit/bin/testrb +5 -0
- data/test-unit/html/classic.html +15 -0
- data/test-unit/html/index.html +25 -0
- data/test-unit/html/index.html.ja +27 -0
- data/test-unit/lib/test/unit/assertionfailederror.rb +25 -0
- data/test-unit/lib/test/unit/assertions.rb +1230 -0
- data/test-unit/lib/test/unit/attribute.rb +125 -0
- data/test-unit/lib/test/unit/autorunner.rb +360 -0
- data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
- data/test-unit/lib/test/unit/collector/dir.rb +108 -0
- data/test-unit/lib/test/unit/collector/load.rb +144 -0
- data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
- data/test-unit/lib/test/unit/collector.rb +36 -0
- data/test-unit/lib/test/unit/color-scheme.rb +102 -0
- data/test-unit/lib/test/unit/color.rb +96 -0
- data/test-unit/lib/test/unit/diff.rb +724 -0
- data/test-unit/lib/test/unit/error.rb +130 -0
- data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
- data/test-unit/lib/test/unit/failure.rb +136 -0
- data/test-unit/lib/test/unit/fixture.rb +176 -0
- data/test-unit/lib/test/unit/notification.rb +129 -0
- data/test-unit/lib/test/unit/omission.rb +191 -0
- data/test-unit/lib/test/unit/pending.rb +150 -0
- data/test-unit/lib/test/unit/priority.rb +180 -0
- data/test-unit/lib/test/unit/runner/console.rb +52 -0
- data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
- data/test-unit/lib/test/unit/runner/tap.rb +8 -0
- data/test-unit/lib/test/unit/testcase.rb +476 -0
- data/test-unit/lib/test/unit/testresult.rb +89 -0
- data/test-unit/lib/test/unit/testsuite.rb +110 -0
- data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
- data/test-unit/lib/test/unit/ui/console/testrunner.rb +466 -0
- data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +63 -0
- data/test-unit/lib/test/unit/ui/tap/testrunner.rb +92 -0
- data/test-unit/lib/test/unit/ui/testrunner.rb +28 -0
- data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
- data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
- data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
- data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
- data/test-unit/lib/test/unit/util/observable.rb +90 -0
- data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
- data/test-unit/lib/test/unit/version.rb +7 -0
- data/test-unit/lib/test/unit.rb +323 -0
- data/test-unit/sample/adder.rb +13 -0
- data/test-unit/sample/subtracter.rb +12 -0
- data/test-unit/sample/test_adder.rb +20 -0
- data/test-unit/sample/test_subtracter.rb +20 -0
- data/test-unit/sample/test_user.rb +23 -0
- data/test-unit/test/collector/test-descendant.rb +133 -0
- data/test-unit/test/collector/test-load.rb +442 -0
- data/test-unit/test/collector/test_dir.rb +406 -0
- data/test-unit/test/collector/test_objectspace.rb +100 -0
- data/test-unit/test/run-test.rb +15 -0
- data/test-unit/test/test-attribute.rb +86 -0
- data/test-unit/test/test-color-scheme.rb +67 -0
- data/test-unit/test/test-color.rb +47 -0
- data/test-unit/test/test-diff.rb +518 -0
- data/test-unit/test/test-emacs-runner.rb +60 -0
- data/test-unit/test/test-fixture.rb +287 -0
- data/test-unit/test/test-notification.rb +33 -0
- data/test-unit/test/test-omission.rb +81 -0
- data/test-unit/test/test-pending.rb +70 -0
- data/test-unit/test/test-priority.rb +119 -0
- data/test-unit/test/test-testcase.rb +544 -0
- data/test-unit/test/test_assertions.rb +1151 -0
- data/test-unit/test/test_error.rb +26 -0
- data/test-unit/test/test_failure.rb +33 -0
- data/test-unit/test/test_testresult.rb +113 -0
- data/test-unit/test/test_testsuite.rb +129 -0
- data/test-unit/test/testunit-test-util.rb +14 -0
- data/test-unit/test/ui/test_testrunmediator.rb +20 -0
- data/test-unit/test/util/test-method-owner-finder.rb +38 -0
- data/test-unit/test/util/test_backtracefilter.rb +41 -0
- data/test-unit/test/util/test_observable.rb +102 -0
- data/test-unit/test/util/test_procwrapper.rb +36 -0
- data/text/{TUTORIAL.ja.rdoc → tutorial.ja.rdoc} +165 -126
- metadata +106 -16
- data/html/favicon.xcf +0 -0
- data/html/logo.xcf +0 -0
- data/license/GPL +0 -340
- data/license/RUBY +0 -59
- data/pkg-config.rb +0 -333
data/html/ranguba.css
CHANGED
@@ -24,7 +24,8 @@ div.header
|
|
24
24
|
padding: 0px;
|
25
25
|
}
|
26
26
|
|
27
|
-
div.header div.title
|
27
|
+
div.header div.title,
|
28
|
+
div.header h1.title
|
28
29
|
{
|
29
30
|
background: url(logo.png) no-repeat;
|
30
31
|
font-family: sans-serif;
|
@@ -37,35 +38,78 @@ div.header div.title
|
|
37
38
|
}
|
38
39
|
|
39
40
|
div.header div.title a,
|
41
|
+
div.header h1.title a,
|
40
42
|
div.header div.title a:link,
|
41
|
-
div.header
|
43
|
+
div.header h1.title a:link,
|
44
|
+
div.header div.title a:visited,
|
45
|
+
div.header h1.title a:visited
|
42
46
|
{
|
43
47
|
color: black;
|
44
48
|
text-decoration: none;
|
45
49
|
}
|
46
50
|
|
47
|
-
div.header div.title span
|
51
|
+
div.header div.title span,
|
52
|
+
div.header h1.title span
|
48
53
|
{
|
49
54
|
display: block;
|
50
|
-
padding-left:
|
55
|
+
padding-left: 230px;
|
51
56
|
margin-bottom: 2px;
|
57
|
+
margin-right: 210px;
|
52
58
|
}
|
53
59
|
|
54
|
-
div.header div.title span.title
|
60
|
+
div.header div.title span.title,
|
61
|
+
div.header h1.title span.title
|
55
62
|
{
|
56
63
|
padding-top: 20px;
|
57
64
|
}
|
58
65
|
|
59
|
-
div.header div.title span.title-separator
|
66
|
+
div.header div.title span.title-separator,
|
67
|
+
div.header h1.title span.title-separator
|
60
68
|
{
|
61
69
|
display: none;
|
62
70
|
}
|
63
71
|
|
64
|
-
div.header div.title span.title-project
|
72
|
+
div.header div.title span.title-project,
|
73
|
+
div.header h1.title span.title-project
|
65
74
|
{
|
66
75
|
padding-bottom: 20px;
|
67
76
|
}
|
68
77
|
|
78
|
+
ul.other-languages
|
79
|
+
{
|
80
|
+
position: absolute;
|
81
|
+
top: 0px;
|
82
|
+
right: 50px;
|
83
|
+
padding: 0px;
|
84
|
+
margin: 0px;
|
85
|
+
}
|
86
|
+
|
87
|
+
ul.other-languages li
|
88
|
+
{
|
89
|
+
display: block;
|
90
|
+
float: left;
|
91
|
+
margin-left: 10px;
|
92
|
+
}
|
93
|
+
|
94
|
+
ul.other-languages li a
|
95
|
+
{
|
96
|
+
display: block;
|
97
|
+
height: 11px;
|
98
|
+
width: 16px;
|
99
|
+
text-indent: -100000px;
|
100
|
+
outline: none;
|
101
|
+
}
|
102
|
+
|
103
|
+
ul.other-languages li#other-language-english
|
104
|
+
{
|
105
|
+
background: url(us.png) no-repeat;
|
106
|
+
}
|
107
|
+
|
108
|
+
ul.other-languages li#other-language-japanese
|
109
|
+
{
|
110
|
+
background: url(jp.png) no-repeat;
|
111
|
+
}
|
112
|
+
|
69
113
|
ul.menu
|
70
114
|
{
|
71
115
|
background: url(bar.png) repeat-x;
|
@@ -115,6 +159,11 @@ ul.menu li#menu-reference
|
|
115
159
|
background: url(reference.png) no-repeat;
|
116
160
|
}
|
117
161
|
|
162
|
+
ul.menu li#menu-readme
|
163
|
+
{
|
164
|
+
background: url(readme.png) no-repeat;
|
165
|
+
}
|
166
|
+
|
118
167
|
ul.menu li#menu-tutorial
|
119
168
|
{
|
120
169
|
background: url(tutorial.png) no-repeat;
|
@@ -248,3 +297,39 @@ body.file div.content
|
|
248
297
|
{
|
249
298
|
margin: 40px !important;
|
250
299
|
}
|
300
|
+
|
301
|
+
/* For GTK-Doc */
|
302
|
+
@media screen
|
303
|
+
{
|
304
|
+
table.navigation#top
|
305
|
+
{
|
306
|
+
position: relative;
|
307
|
+
top: 0;
|
308
|
+
margin-top: 20px;
|
309
|
+
z-index: 0;
|
310
|
+
}
|
311
|
+
|
312
|
+
div.book
|
313
|
+
{
|
314
|
+
top: 0px;
|
315
|
+
}
|
316
|
+
|
317
|
+
div.refentry,
|
318
|
+
div.chapter,
|
319
|
+
div.reference,
|
320
|
+
div.part,
|
321
|
+
div.book,
|
322
|
+
div.glossary,
|
323
|
+
div.sect1,
|
324
|
+
div.appendix,
|
325
|
+
div.preface
|
326
|
+
{
|
327
|
+
top: 0px;
|
328
|
+
}
|
329
|
+
|
330
|
+
div.footer
|
331
|
+
{
|
332
|
+
padding-top: 0px;
|
333
|
+
padding-bottom: 1em;
|
334
|
+
}
|
335
|
+
}
|
data/html/readme.svg
ADDED
@@ -0,0 +1,256 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
<svg
|
4
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
5
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
6
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
7
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
9
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
10
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
11
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
12
|
+
sodipodi:docname="face-smile.svg"
|
13
|
+
sodipodi:docbase="/home/jimmac/gfx/ximian/tango-icon-theme/scalable/emotes"
|
14
|
+
inkscape:version="0.46"
|
15
|
+
sodipodi:version="0.32"
|
16
|
+
id="svg4376"
|
17
|
+
height="48px"
|
18
|
+
width="48px"
|
19
|
+
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
20
|
+
<defs
|
21
|
+
id="defs3">
|
22
|
+
<inkscape:perspective
|
23
|
+
sodipodi:type="inkscape:persp3d"
|
24
|
+
inkscape:vp_x="0 : 24 : 1"
|
25
|
+
inkscape:vp_y="0 : 1000 : 0"
|
26
|
+
inkscape:vp_z="48 : 24 : 1"
|
27
|
+
inkscape:persp3d-origin="24 : 16 : 1"
|
28
|
+
id="perspective39" />
|
29
|
+
<linearGradient
|
30
|
+
id="linearGradient3290">
|
31
|
+
<stop
|
32
|
+
id="stop3292"
|
33
|
+
offset="0.0000000"
|
34
|
+
style="stop-color:#fffcde;stop-opacity:1.0000000;" />
|
35
|
+
<stop
|
36
|
+
style="stop-color:#f6e76a;stop-opacity:1.0000000;"
|
37
|
+
offset="0.64485979"
|
38
|
+
id="stop3294" />
|
39
|
+
<stop
|
40
|
+
id="stop3296"
|
41
|
+
offset="1.0000000"
|
42
|
+
style="stop-color:#ffb738;stop-opacity:1.0000000;" />
|
43
|
+
</linearGradient>
|
44
|
+
<radialGradient
|
45
|
+
r="8.9020796"
|
46
|
+
fy="15.755712"
|
47
|
+
fx="29.158466"
|
48
|
+
cy="15.720984"
|
49
|
+
cx="29.288071"
|
50
|
+
gradientUnits="userSpaceOnUse"
|
51
|
+
id="radialGradient2714"
|
52
|
+
xlink:href="#linearGradient3290"
|
53
|
+
inkscape:collect="always" />
|
54
|
+
<linearGradient
|
55
|
+
id="linearGradient2509">
|
56
|
+
<stop
|
57
|
+
style="stop-color:#fffbd5;stop-opacity:1.0000000;"
|
58
|
+
offset="0.0000000"
|
59
|
+
id="stop2511" />
|
60
|
+
<stop
|
61
|
+
style="stop-color:#edd400;stop-opacity:1.0000000;"
|
62
|
+
offset="1.0000000"
|
63
|
+
id="stop2513" />
|
64
|
+
</linearGradient>
|
65
|
+
<radialGradient
|
66
|
+
gradientTransform="matrix(1.250000,0.000000,0.000000,1.250000,-6.479446,-13.37211)"
|
67
|
+
id="aigrd2"
|
68
|
+
cx="25.0527"
|
69
|
+
cy="39.5928"
|
70
|
+
r="15.7572"
|
71
|
+
fx="25.0527"
|
72
|
+
fy="39.5928"
|
73
|
+
gradientUnits="userSpaceOnUse">
|
74
|
+
<stop
|
75
|
+
offset="0.0000000"
|
76
|
+
style="stop-color:#777777;stop-opacity:1.0000000;"
|
77
|
+
id="stop8602" />
|
78
|
+
<stop
|
79
|
+
offset="1"
|
80
|
+
style="stop-color:#000000"
|
81
|
+
id="stop8604" />
|
82
|
+
</radialGradient>
|
83
|
+
<linearGradient
|
84
|
+
id="linearGradient4565"
|
85
|
+
inkscape:collect="always">
|
86
|
+
<stop
|
87
|
+
id="stop4567"
|
88
|
+
offset="0"
|
89
|
+
style="stop-color:#000000;stop-opacity:1;" />
|
90
|
+
<stop
|
91
|
+
id="stop4569"
|
92
|
+
offset="1"
|
93
|
+
style="stop-color:#000000;stop-opacity:0;" />
|
94
|
+
</linearGradient>
|
95
|
+
<linearGradient
|
96
|
+
id="linearGradient3824">
|
97
|
+
<stop
|
98
|
+
id="stop3826"
|
99
|
+
offset="0"
|
100
|
+
style="stop-color:#ffffff;stop-opacity:1;" />
|
101
|
+
<stop
|
102
|
+
id="stop3828"
|
103
|
+
offset="1.0000000"
|
104
|
+
style="stop-color:#c9c9c9;stop-opacity:1.0000000;" />
|
105
|
+
</linearGradient>
|
106
|
+
<linearGradient
|
107
|
+
id="linearGradient3800">
|
108
|
+
<stop
|
109
|
+
id="stop3802"
|
110
|
+
offset="0.0000000"
|
111
|
+
style="stop-color:#ffeed6;stop-opacity:1.0000000;" />
|
112
|
+
<stop
|
113
|
+
style="stop-color:#e49c2f;stop-opacity:1.0000000;"
|
114
|
+
offset="0.50000000"
|
115
|
+
id="stop8664" />
|
116
|
+
<stop
|
117
|
+
id="stop3804"
|
118
|
+
offset="1.0000000"
|
119
|
+
style="stop-color:#ffc66c;stop-opacity:1.0000000;" />
|
120
|
+
</linearGradient>
|
121
|
+
<radialGradient
|
122
|
+
gradientUnits="userSpaceOnUse"
|
123
|
+
gradientTransform="matrix(1.000000,0.000000,0.000000,0.333333,0.000000,25.71429)"
|
124
|
+
r="19.714285"
|
125
|
+
fy="38.571430"
|
126
|
+
fx="24.714285"
|
127
|
+
cy="38.571430"
|
128
|
+
cx="24.714285"
|
129
|
+
id="radialGradient4571"
|
130
|
+
xlink:href="#linearGradient4565"
|
131
|
+
inkscape:collect="always" />
|
132
|
+
</defs>
|
133
|
+
<sodipodi:namedview
|
134
|
+
inkscape:window-y="109"
|
135
|
+
inkscape:window-x="223"
|
136
|
+
inkscape:window-height="739"
|
137
|
+
inkscape:window-width="770"
|
138
|
+
inkscape:showpageshadow="false"
|
139
|
+
inkscape:document-units="px"
|
140
|
+
inkscape:grid-bbox="true"
|
141
|
+
showgrid="false"
|
142
|
+
inkscape:current-layer="layer1"
|
143
|
+
inkscape:cy="24.058534"
|
144
|
+
inkscape:cx="25.411306"
|
145
|
+
inkscape:zoom="11.313708"
|
146
|
+
inkscape:pageshadow="2"
|
147
|
+
inkscape:pageopacity="0.0"
|
148
|
+
borderopacity="0.19607843"
|
149
|
+
bordercolor="#666666"
|
150
|
+
pagecolor="#ffffff"
|
151
|
+
id="base"
|
152
|
+
fill="#edd400" />
|
153
|
+
<metadata
|
154
|
+
id="metadata4">
|
155
|
+
<rdf:RDF>
|
156
|
+
<cc:Work
|
157
|
+
rdf:about="">
|
158
|
+
<dc:format>image/svg+xml</dc:format>
|
159
|
+
<dc:type
|
160
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
161
|
+
<dc:title>Face - Happy</dc:title>
|
162
|
+
<dc:subject>
|
163
|
+
<rdf:Bag>
|
164
|
+
<rdf:li>emoticon</rdf:li>
|
165
|
+
<rdf:li>emote</rdf:li>
|
166
|
+
<rdf:li>smiley</rdf:li>
|
167
|
+
<rdf:li>happy</rdf:li>
|
168
|
+
<rdf:li>:)</rdf:li>
|
169
|
+
<rdf:li>:-)</rdf:li>
|
170
|
+
</rdf:Bag>
|
171
|
+
</dc:subject>
|
172
|
+
<cc:license
|
173
|
+
rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
|
174
|
+
<dc:creator>
|
175
|
+
<cc:Agent>
|
176
|
+
<dc:title>Jakub Steiner</dc:title>
|
177
|
+
</cc:Agent>
|
178
|
+
</dc:creator>
|
179
|
+
<dc:source>http://jimmac.musichall.cz</dc:source>
|
180
|
+
</cc:Work>
|
181
|
+
<cc:License
|
182
|
+
rdf:about="http://creativecommons.org/licenses/publicdomain/">
|
183
|
+
<cc:permits
|
184
|
+
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
185
|
+
<cc:permits
|
186
|
+
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
187
|
+
<cc:permits
|
188
|
+
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
189
|
+
</cc:License>
|
190
|
+
</rdf:RDF>
|
191
|
+
</metadata>
|
192
|
+
<g
|
193
|
+
inkscape:groupmode="layer"
|
194
|
+
inkscape:label="Layer 1"
|
195
|
+
id="layer1">
|
196
|
+
<path
|
197
|
+
d="M 44.428570 38.571430 A 19.714285 6.5714288 0 1 1 5.0000000,38.571430 A 19.714285 6.5714288 0 1 1 44.428570 38.571430 z"
|
198
|
+
sodipodi:ry="6.5714288"
|
199
|
+
sodipodi:rx="19.714285"
|
200
|
+
sodipodi:cy="38.571430"
|
201
|
+
sodipodi:cx="24.714285"
|
202
|
+
id="path4563"
|
203
|
+
style="opacity:0.53164557;color:#000000;fill:url(#radialGradient4571);fill-opacity:1.0;fill-rule:evenodd;stroke:none;stroke-width:0.40487173;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
|
204
|
+
sodipodi:type="arc" />
|
205
|
+
<path
|
206
|
+
transform="matrix(2.083142,0.000000,0.000000,2.083142,-40.54715,-16.49224)"
|
207
|
+
d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.450640,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z"
|
208
|
+
sodipodi:ry="8.6620579"
|
209
|
+
sodipodi:rx="8.6620579"
|
210
|
+
sodipodi:cy="19.008621"
|
211
|
+
sodipodi:cx="31.112698"
|
212
|
+
id="path4320"
|
213
|
+
style="overflow:visible;display:inline;visibility:visible;stroke-opacity:1.0000000;stroke-dashoffset:0.0000000;stroke-dasharray:none;stroke-miterlimit:4.0000000;marker-end:none;marker-mid:none;marker-start:none;marker:none;stroke-linejoin:round;stroke-linecap:round;stroke-width:0.48004404;stroke:#9c8c0a;fill-rule:evenodd;fill-opacity:1.0000000;fill:url(#radialGradient2714);color:#000000;opacity:1.0000000"
|
214
|
+
sodipodi:type="arc" />
|
215
|
+
<path
|
216
|
+
transform="matrix(1.979782,0.000000,0.000000,1.979782,-37.33128,-14.52746)"
|
217
|
+
sodipodi:type="arc"
|
218
|
+
style="opacity:0.67721519;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.50510627;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
|
219
|
+
id="path4322"
|
220
|
+
sodipodi:cx="31.112698"
|
221
|
+
sodipodi:cy="19.008621"
|
222
|
+
sodipodi:rx="8.6620579"
|
223
|
+
sodipodi:ry="8.6620579"
|
224
|
+
d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.450640,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z" />
|
225
|
+
<path
|
226
|
+
sodipodi:nodetypes="czczc"
|
227
|
+
id="path2659"
|
228
|
+
d="M 37.284637,24.719966 C 34.268170,29.944639 30.741134,33.710005 24.462492,33.710005 C 18.362475,33.710005 13.896955,29.370308 11.110016,24.543189 C 13.659429,27.599109 17.392948,31.109501 24.197327,31.109501 C 32.327531,31.109501 33.749103,28.202646 37.284637,24.719966 z "
|
229
|
+
style="opacity:0.35999998;color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
|
230
|
+
<path
|
231
|
+
style="fill:url(#aigrd2);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
|
232
|
+
d="M 37.284637,24.012862 C 34.268170,29.237535 30.741134,33.002901 24.462492,33.002901 C 18.362475,33.002901 13.896955,28.663204 11.110016,23.836085 C 13.659429,26.892005 17.392948,30.402397 24.197327,30.402397 C 32.327531,30.402397 33.749103,27.495542 37.284637,24.012862 z "
|
233
|
+
id="path8606"
|
234
|
+
sodipodi:nodetypes="czczc" />
|
235
|
+
<g
|
236
|
+
transform="translate(0.353553,2.392706)"
|
237
|
+
id="g8666">
|
238
|
+
<path
|
239
|
+
style="opacity:0.35999998;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
|
240
|
+
d="M 21.398158,15.321428 C 21.398158,17.821428 20.273158,19.821428 18.898158,19.821428 C 17.523158,19.821428 16.273158,17.821428 16.273158,15.321428 C 16.273158,12.821428 17.398158,10.821428 18.773158,10.821428 C 20.148158,10.821428 21.273158,12.821428 21.273158,15.321428 L 21.398158,15.321428 z "
|
241
|
+
id="path8610" />
|
242
|
+
<path
|
243
|
+
style="opacity:0.35999998;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
|
244
|
+
d="M 30.688512,15.321428 C 30.688512,17.821428 29.563512,19.821428 28.188512,19.821428 C 26.813512,19.821428 25.688512,17.821428 25.688512,15.321428 C 25.688512,12.821428 26.813512,10.821428 28.188512,10.821428 C 29.563512,10.821428 30.688512,12.821428 30.688512,15.321428 z "
|
245
|
+
id="path8612" />
|
246
|
+
<path
|
247
|
+
style="fill:#000000;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
|
248
|
+
d="M 21.398158,14.696428 C 21.398158,17.196428 20.273158,19.196428 18.898158,19.196428 C 17.523158,19.196428 16.398158,17.196428 16.398158,14.696428 C 16.398158,12.196428 17.523158,10.196428 18.898158,10.196428 C 20.273158,10.196428 21.398158,12.196428 21.398158,14.696428 z "
|
249
|
+
id="path8614" />
|
250
|
+
<path
|
251
|
+
style="fill:#000000;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
|
252
|
+
d="M 30.688512,14.696428 C 30.688512,17.196428 29.563512,19.196428 28.188512,19.196428 C 26.813512,19.196428 25.688512,17.196428 25.688512,14.696428 C 25.688512,12.196428 26.813512,10.196428 28.188512,10.196428 C 29.563512,10.196428 30.688512,12.196428 30.688512,14.696428 z "
|
253
|
+
id="path8616" />
|
254
|
+
</g>
|
255
|
+
</g>
|
256
|
+
</svg>
|
@@ -214,11 +214,15 @@ module Groonga
|
|
214
214
|
|
215
215
|
private
|
216
216
|
def normalize(other)
|
217
|
-
if @range.is_a?(Groonga::Table)
|
218
|
-
|
219
|
-
|
220
|
-
|
217
|
+
if @range.is_a?(Groonga::Table)
|
218
|
+
if other.respond_to?(:record_id)
|
219
|
+
id = other.record_id
|
220
|
+
else
|
221
|
+
id = other
|
222
|
+
end
|
223
|
+
return Groonga::Record.new(@range, id) if id.is_a?(Integer)
|
221
224
|
end
|
225
|
+
other
|
222
226
|
end
|
223
227
|
|
224
228
|
def method_missing(name, *args, &block)
|
data/lib/groonga/record.rb
CHANGED
@@ -44,13 +44,31 @@ module Groonga
|
|
44
44
|
# call-seq:
|
45
45
|
# record == other -> true/false
|
46
46
|
#
|
47
|
-
# _record_と_other_
|
48
|
-
#
|
47
|
+
# _record_と_other_が同じテーブルに属していて、さらに、
|
48
|
+
# 同じレコードIDを持つなら+true+を返し、そうでなければ
|
49
|
+
# +false+を返す。
|
49
50
|
def ==(other)
|
50
51
|
self.class == other.class and
|
51
52
|
[table, id] == [other.table, other.id]
|
52
53
|
end
|
53
54
|
|
55
|
+
# call-seq:
|
56
|
+
# record.eql?(other) -> true/false
|
57
|
+
#
|
58
|
+
# Groonga::Record#==と同じ。
|
59
|
+
def eql?(other)
|
60
|
+
self == other
|
61
|
+
end
|
62
|
+
|
63
|
+
# call-seq:
|
64
|
+
# record.hash -> ハッシュ値
|
65
|
+
#
|
66
|
+
# 同じテーブルの同じIDのレコードに対しては常に同じハッシュ
|
67
|
+
# 値を返す。
|
68
|
+
def hash
|
69
|
+
@table.hash ^ @id.hash
|
70
|
+
end
|
71
|
+
|
54
72
|
# call-seq:
|
55
73
|
# record[column_name] -> 値
|
56
74
|
#
|
@@ -86,6 +104,15 @@ module Groonga
|
|
86
104
|
column(column_name).prepend(@id, value)
|
87
105
|
end
|
88
106
|
|
107
|
+
# call-seq:
|
108
|
+
# record.support_key? -> true/false
|
109
|
+
#
|
110
|
+
# _record_が所属するテーブルで主キーを使える場合は+true+
|
111
|
+
# を返し、使えない場合は+false+を返す。
|
112
|
+
def support_key?
|
113
|
+
@table.support_key?
|
114
|
+
end
|
115
|
+
|
89
116
|
# call-seq:
|
90
117
|
# record.have_column?(name) -> true/false
|
91
118
|
#
|
@@ -102,7 +129,16 @@ module Groonga
|
|
102
129
|
#
|
103
130
|
# 名前が_name_のカラムが参照カラムであるなら+true+を返す。
|
104
131
|
def reference_column?(name)
|
105
|
-
column(name).
|
132
|
+
column(name).reference_column?
|
133
|
+
end
|
134
|
+
|
135
|
+
# call-seq:
|
136
|
+
# record.index_column?(name) -> true/false
|
137
|
+
#
|
138
|
+
# 名前が_name_のカラムが索引カラム
|
139
|
+
# (Groonga::IndexColumn)であるなら+true+を返す。
|
140
|
+
def index_column?(name)
|
141
|
+
column(name).index_column?
|
106
142
|
end
|
107
143
|
|
108
144
|
# call-seq:
|
@@ -123,10 +159,25 @@ module Groonga
|
|
123
159
|
# _record_が所属するテーブルがGroonga:::Arrayの場合は常
|
124
160
|
# に+nil+を返す。
|
125
161
|
def key
|
126
|
-
if
|
162
|
+
if support_key?
|
163
|
+
@key ||= @table.key(@id)
|
164
|
+
else
|
127
165
|
nil
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
# call-seq:
|
170
|
+
# record.record_id -> IDまたは主キー
|
171
|
+
#
|
172
|
+
# レコードを一意に識別するための情報を返す。
|
173
|
+
#
|
174
|
+
# _record_が所属するテーブルがGroonga:::Arrayの場合はID
|
175
|
+
# を返し、それ以外の場合は主キーを返す。
|
176
|
+
def record_id
|
177
|
+
if support_key?
|
178
|
+
key
|
128
179
|
else
|
129
|
-
|
180
|
+
id
|
130
181
|
end
|
131
182
|
end
|
132
183
|
|
@@ -144,10 +195,22 @@ module Groonga
|
|
144
195
|
#
|
145
196
|
# 主キーの値が同一であったレコードの件数を返す。検索結果とし
|
146
197
|
# て生成されたテーブルのみに定義される。
|
198
|
+
#
|
199
|
+
# Groonga::Record#support_sub_recordsでこの値を利用でき
|
200
|
+
# るかがわかる。
|
147
201
|
def n_sub_records
|
148
202
|
self["._nsubrecs"]
|
149
203
|
end
|
150
204
|
|
205
|
+
# call-seq:
|
206
|
+
# record.support_sub_records? -> true/false
|
207
|
+
#
|
208
|
+
# Groonga::Record#n_sub_recordsが利用できる場合はtrueを
|
209
|
+
# 返す。
|
210
|
+
def support_sub_records?
|
211
|
+
@table.support_sub_records?
|
212
|
+
end
|
213
|
+
|
151
214
|
# call-seq:
|
152
215
|
# record.value -> 値
|
153
216
|
#
|
@@ -198,8 +261,7 @@ module Groonga
|
|
198
261
|
# たこのレコードのカラムの値のハッシュを返す。
|
199
262
|
def attributes
|
200
263
|
attributes = {"id" => id}
|
201
|
-
|
202
|
-
attributes["key"] = _key if _key
|
264
|
+
attributes["key"] = key if support_key?
|
203
265
|
table_name = @table.name
|
204
266
|
columns.each do |column|
|
205
267
|
next if column.is_a?(Groonga::IndexColumn)
|
@@ -268,6 +330,14 @@ module Groonga
|
|
268
330
|
@table.locked?(options.merge(:id => @id))
|
269
331
|
end
|
270
332
|
|
333
|
+
# call-seq:
|
334
|
+
# record.valid_id? -> true/false
|
335
|
+
#
|
336
|
+
# レコードが持つIDが有効なIDであれば+true+を返す。
|
337
|
+
def valid_id?
|
338
|
+
@table.exist?(@id)
|
339
|
+
end
|
340
|
+
|
271
341
|
def methods(include_inherited=true) # :nodoc:
|
272
342
|
_methods = super
|
273
343
|
return _methods unless include_inherited
|