acts_as_searchable 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,387 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: ActiveRecord::Acts::Searchable::ClassMethods</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">ActiveRecord::Acts::Searchable::ClassMethods</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../../../files/lib/acts_as_searchable_rb.html">
59
+ lib/acts_as_searchable.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ </table>
66
+ </div>
67
+ <!-- banner header -->
68
+
69
+ <div id="bodyContent">
70
+
71
+
72
+
73
+ <div id="contextContent">
74
+
75
+
76
+
77
+ </div>
78
+
79
+ <div id="method-list">
80
+ <h3 class="section-bar">Methods</h3>
81
+
82
+ <div class="name-list">
83
+ <a href="#M000068">acts_as_searchable</a>&nbsp;&nbsp;
84
+ <a href="#M000070">clear_index!</a>&nbsp;&nbsp;
85
+ <a href="#M000069">fulltext_search</a>&nbsp;&nbsp;
86
+ <a href="#M000071">reindex!</a>&nbsp;&nbsp;
87
+ </div>
88
+ </div>
89
+
90
+ </div>
91
+
92
+
93
+ <!-- if includes -->
94
+
95
+ <div id="section">
96
+
97
+
98
+ <div id="constants-list">
99
+ <h3 class="section-bar">Constants</h3>
100
+
101
+ <div class="name-list">
102
+ <table summary="Constants">
103
+ <tr class="top-aligned-row context-row">
104
+ <td class="context-item-name">VALID_FULLTEXT_OPTIONS</td>
105
+ <td>=</td>
106
+ <td class="context-item-value">[:limit, :offset, :order, :attributes, :raw_matches, :find]</td>
107
+ </tr>
108
+ </table>
109
+ </div>
110
+ </div>
111
+
112
+
113
+
114
+
115
+
116
+
117
+ <!-- if method_list -->
118
+ <div id="methods">
119
+ <h3 class="section-bar">Public Instance methods</h3>
120
+
121
+ <div id="method-M000068" class="method-detail">
122
+ <a name="M000068"></a>
123
+
124
+ <div class="method-heading">
125
+ <a href="#M000068" class="method-signature">
126
+ <span class="method-name">acts_as_searchable</span><span class="method-args">(options = {})</span>
127
+ </a>
128
+ </div>
129
+
130
+ <div class="method-description">
131
+ <h2>Configuration options</h2>
132
+ <ul>
133
+ <li><tt>searchable_fields</tt> - Fields to provide searching and indexing for
134
+ (default: &#8216;body&#8217;)
135
+
136
+ </li>
137
+ <li><tt>attributes</tt> - Additional attributes to store in Hyper Estraier with
138
+ the appropriate method supplying the value
139
+
140
+ </li>
141
+ <li><tt>if_changed</tt> - Extra list of attributes to add to the list of
142
+ attributes that trigger an index update when changed
143
+
144
+ </li>
145
+ </ul>
146
+ <p>
147
+ Examples:
148
+ </p>
149
+ <pre>
150
+ acts_as_searchable :attributes =&gt; { :title =&gt; nil, :blog =&gt; :blog_title }, :searchable_fields =&gt; [ :title, :body ]
151
+ </pre>
152
+ <p>
153
+ This would store the return value of the <tt>title</tt> method in the
154
+ <tt>title</tt> attribute and the return value of the <tt>blog_title</tt>
155
+ method in the <tt>blog</tt> attribute. The contents of the <tt>title</tt>
156
+ and <tt>body</tt> columns would end up being indexed for searching.
157
+ </p>
158
+ <h2>Attribute naming</h2>
159
+ <p>
160
+ Attributes that match the reserved names of the Hyper Estraier system
161
+ attributes are mapped automatically. This is something to keep in mind for
162
+ custom ordering options or additional query constraints in <tt><a
163
+ href="ClassMethods.html#M000069">fulltext_search</a></tt> For a list of
164
+ these attributes see <tt>EstraierPure::SYSTEM_ATTRIBUTES</tt> or visit:
165
+ </p>
166
+ <pre>
167
+ http://hyperestraier.sourceforge.net/uguide-en.html#attributes
168
+ </pre>
169
+ <p>
170
+ From the example above:
171
+ </p>
172
+ <pre>
173
+ Model.fulltext_search('query', :order =&gt; '@title STRA') # Returns results ordered by title in ascending order
174
+ Model.fulltext_search('query', :attributes =&gt; 'blog STREQ poocs.net') # Returns results with a blog attribute of 'poocs.net'
175
+ </pre>
176
+ <p><a class="source-toggle" href="#"
177
+ onclick="toggleCode('M000068-source');return false;">[Source]</a></p>
178
+ <div class="method-source-code" id="M000068-source">
179
+ <pre>
180
+ <span class="ruby-comment cmt"># File lib/acts_as_searchable.rb, line 113</span>
181
+ 113: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">acts_as_searchable</span>(<span class="ruby-identifier">options</span> = {})
182
+ 114: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">included_modules</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Acts</span><span class="ruby-operator">::</span><span class="ruby-constant">Searchable</span><span class="ruby-operator">::</span><span class="ruby-constant">ActMethods</span>)
183
+ 115:
184
+ 116: <span class="ruby-identifier">send</span> <span class="ruby-identifier">:include</span>, <span class="ruby-constant">ActiveRecord</span><span class="ruby-operator">::</span><span class="ruby-constant">Acts</span><span class="ruby-operator">::</span><span class="ruby-constant">Searchable</span><span class="ruby-operator">::</span><span class="ruby-constant">ActMethods</span>
185
+ 117:
186
+ 118: <span class="ruby-identifier">cattr_accessor</span> <span class="ruby-identifier">:searchable_fields</span>, <span class="ruby-identifier">:attributes_to_store</span>, <span class="ruby-identifier">:if_changed</span>, <span class="ruby-identifier">:estraier_connection</span>, <span class="ruby-identifier">:estraier_node</span>,
187
+ 119: <span class="ruby-identifier">:estraier_host</span>, <span class="ruby-identifier">:estraier_port</span>, <span class="ruby-identifier">:estraier_user</span>, <span class="ruby-identifier">:estraier_password</span>
188
+ 120:
189
+ 121: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">estraier_node</span> = <span class="ruby-identifier">estraier_config</span>[<span class="ruby-value str">'node'</span>] <span class="ruby-operator">||</span> <span class="ruby-constant">RAILS_ENV</span>
190
+ 122: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">estraier_host</span> = <span class="ruby-identifier">estraier_config</span>[<span class="ruby-value str">'host'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'localhost'</span>
191
+ 123: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">estraier_port</span> = <span class="ruby-identifier">estraier_config</span>[<span class="ruby-value str">'port'</span>] <span class="ruby-operator">||</span> <span class="ruby-value">1978</span>
192
+ 124: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">estraier_user</span> = <span class="ruby-identifier">estraier_config</span>[<span class="ruby-value str">'user'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'admin'</span>
193
+ 125: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">estraier_password</span> = <span class="ruby-identifier">estraier_config</span>[<span class="ruby-value str">'password'</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'admin'</span>
194
+ 126: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">searchable_fields</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:searchable_fields</span>] <span class="ruby-operator">||</span> [ <span class="ruby-identifier">:body</span> ]
195
+ 127: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">attributes_to_store</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:attributes</span>] <span class="ruby-operator">||</span> {}
196
+ 128: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">if_changed</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:if_changed</span>] <span class="ruby-operator">||</span> []
197
+ 129:
198
+ 130: <span class="ruby-identifier">send</span> <span class="ruby-identifier">:attr_accessor</span>, <span class="ruby-identifier">:changed_attributes</span>
199
+ 131:
200
+ 132: <span class="ruby-identifier">class_eval</span> <span class="ruby-keyword kw">do</span>
201
+ 133: <span class="ruby-identifier">after_update</span> <span class="ruby-identifier">:update_index</span>
202
+ 134: <span class="ruby-identifier">after_create</span> <span class="ruby-identifier">:add_to_index</span>
203
+ 135: <span class="ruby-identifier">after_destroy</span> <span class="ruby-identifier">:remove_from_index</span>
204
+ 136: <span class="ruby-identifier">after_save</span> <span class="ruby-identifier">:clear_changed_attributes</span>
205
+ 137:
206
+ 138: (<span class="ruby-identifier">if_changed</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">searchable_fields</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">attributes_to_store</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">attribute</span>, <span class="ruby-identifier">method</span><span class="ruby-operator">|</span> <span class="ruby-identifier">method</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">attribute</span> }).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr_name</span><span class="ruby-operator">|</span>
207
+ 139: <span class="ruby-identifier">define_method</span>(<span class="ruby-node">&quot;#{attr_name}=&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
208
+ 140: <span class="ruby-identifier">write_changed_attribute</span> <span class="ruby-identifier">attr_name</span>, <span class="ruby-identifier">value</span>
209
+ 141: <span class="ruby-keyword kw">end</span>
210
+ 142: <span class="ruby-keyword kw">end</span>
211
+ 143:
212
+ 144: <span class="ruby-identifier">connect_estraier</span>
213
+ 145: <span class="ruby-keyword kw">end</span>
214
+ 146: <span class="ruby-keyword kw">end</span>
215
+ </pre>
216
+ </div>
217
+ </div>
218
+ </div>
219
+
220
+ <div id="method-M000070" class="method-detail">
221
+ <a name="M000070"></a>
222
+
223
+ <div class="method-heading">
224
+ <a href="#M000070" class="method-signature">
225
+ <span class="method-name">clear_index!</span><span class="method-args">()</span>
226
+ </a>
227
+ </div>
228
+
229
+ <div class="method-description">
230
+ <p>
231
+ Clear all entries from index
232
+ </p>
233
+ <p><a class="source-toggle" href="#"
234
+ onclick="toggleCode('M000070-source');return false;">[Source]</a></p>
235
+ <div class="method-source-code" id="M000070-source">
236
+ <pre>
237
+ <span class="ruby-comment cmt"># File lib/acts_as_searchable.rb, line 209</span>
238
+ 209: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_index!</span>
239
+ 210: <span class="ruby-identifier">estraier_index</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span> <span class="ruby-identifier">estraier_connection</span>.<span class="ruby-identifier">out_doc</span>(<span class="ruby-identifier">d</span>.<span class="ruby-identifier">attr</span>(<span class="ruby-value str">'@id'</span>)) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">nil?</span> }
240
+ 211: <span class="ruby-keyword kw">end</span>
241
+ </pre>
242
+ </div>
243
+ </div>
244
+ </div>
245
+
246
+ <div id="method-M000069" class="method-detail">
247
+ <a name="M000069"></a>
248
+
249
+ <div class="method-heading">
250
+ <a href="#M000069" class="method-signature">
251
+ <span class="method-name">fulltext_search</span><span class="method-args">(query = &quot;&quot;, options = {})</span>
252
+ </a>
253
+ </div>
254
+
255
+ <div class="method-description">
256
+ <p>
257
+ Perform a fulltext search against the Hyper Estraier index.
258
+ </p>
259
+ <p>
260
+ Options taken:
261
+ </p>
262
+ <ul>
263
+ <li><tt>limit</tt> - Maximum number of records to retrieve (default:
264
+ <tt>100</tt>)
265
+
266
+ </li>
267
+ <li><tt>offset</tt> - Number of records to skip (default: <tt>0</tt>)
268
+
269
+ </li>
270
+ <li><tt>order</tt> - Hyper Estraier expression to sort the results (example:
271
+ <tt>@title STRA</tt>, default: ordering by score)
272
+
273
+ </li>
274
+ <li><tt>attributes</tt> - String to append to Hyper Estraier search query
275
+
276
+ </li>
277
+ <li><tt>raw_matches</tt> - Returns raw Hyper Estraier documents instead of
278
+ instantiated AR objects
279
+
280
+ </li>
281
+ <li><tt>find</tt> - Options to pass on to the <tt>ActiveRecord::Base#find</tt>
282
+ call
283
+
284
+ </li>
285
+ </ul>
286
+ <p>
287
+ Examples:
288
+ </p>
289
+ <pre>
290
+ Article.fulltext_search(&quot;biscuits AND gravy&quot;)
291
+ Article.fulltext_search(&quot;biscuits AND gravy&quot;, :limit =&gt; 15, :offset =&gt; 14)
292
+ Article.fulltext_search(&quot;biscuits AND gravy&quot;, :attributes =&gt; &quot;tag STRINC food&quot;)
293
+ Article.fulltext_search(&quot;biscuits AND gravy&quot;, :attributes =&gt; [&quot;tag STRINC food&quot;, &quot;@title STRBW Biscuit&quot;])
294
+ Article.fulltext_search(&quot;biscuits AND gravy&quot;, :order =&gt; &quot;@title STRA&quot;)
295
+ Article.fulltext_search(&quot;biscuits AND gravy&quot;, :raw_matches =&gt; true)
296
+ Article.fulltext_search(&quot;biscuits AND gravy&quot;, :find =&gt; { :order =&gt; :title, :include =&gt; :comments })
297
+ </pre>
298
+ <p>
299
+ Consult the Hyper Estraier documentation on proper query syntax:
300
+ </p>
301
+ <pre>
302
+ http://hyperestraier.sourceforge.net/uguide-en.html#searchcond
303
+ </pre>
304
+ <p><a class="source-toggle" href="#"
305
+ onclick="toggleCode('M000069-source');return false;">[Source]</a></p>
306
+ <div class="method-source-code" id="M000069-source">
307
+ <pre>
308
+ <span class="ruby-comment cmt"># File lib/acts_as_searchable.rb, line 172</span>
309
+ 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fulltext_search</span>(<span class="ruby-identifier">query</span> = <span class="ruby-value str">&quot;&quot;</span>, <span class="ruby-identifier">options</span> = {})
310
+ 173: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">:limit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">100</span>, <span class="ruby-identifier">:offset</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>)
311
+ 174: <span class="ruby-identifier">options</span>.<span class="ruby-identifier">assert_valid_keys</span>(<span class="ruby-constant">VALID_FULLTEXT_OPTIONS</span>)
312
+ 175:
313
+ 176: <span class="ruby-identifier">find_options</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:find</span>] <span class="ruby-operator">||</span> {}
314
+ 177: [ <span class="ruby-identifier">:limit</span>, <span class="ruby-identifier">:offset</span> ].<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">find_options</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>) } <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">find_options</span>.<span class="ruby-identifier">blank?</span>
315
+ 178:
316
+ 179: <span class="ruby-identifier">cond</span> = <span class="ruby-constant">EstraierPure</span><span class="ruby-operator">::</span><span class="ruby-constant">Condition</span>.<span class="ruby-identifier">new</span>
317
+ 180: <span class="ruby-identifier">cond</span>.<span class="ruby-identifier">set_phrase</span> <span class="ruby-identifier">query</span>
318
+ 181: <span class="ruby-identifier">cond</span>.<span class="ruby-identifier">add_attr</span>(<span class="ruby-node">&quot;type STREQ #{self.to_s}&quot;</span>)
319
+ 182: [<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:attributes</span>]].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">reject</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">blank?</span> }.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span>
320
+ 183: <span class="ruby-identifier">cond</span>.<span class="ruby-identifier">add_attr</span> <span class="ruby-identifier">attr</span>
321
+ 184: <span class="ruby-keyword kw">end</span>
322
+ 185: <span class="ruby-identifier">cond</span>.<span class="ruby-identifier">set_max</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:limit</span>]
323
+ 186: <span class="ruby-identifier">cond</span>.<span class="ruby-identifier">set_skip</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:offset</span>]
324
+ 187: <span class="ruby-identifier">cond</span>.<span class="ruby-identifier">set_order</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:order</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:order</span>]
325
+ 188:
326
+ 189: <span class="ruby-identifier">matches</span> = <span class="ruby-keyword kw">nil</span>
327
+ 190: <span class="ruby-identifier">seconds</span> = <span class="ruby-constant">Benchmark</span>.<span class="ruby-identifier">realtime</span> <span class="ruby-keyword kw">do</span>
328
+ 191: <span class="ruby-identifier">result</span> = <span class="ruby-identifier">estraier_connection</span>.<span class="ruby-identifier">search</span>(<span class="ruby-identifier">cond</span>, <span class="ruby-value">1</span>);
329
+ 192: <span class="ruby-keyword kw">return</span> [] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">result</span>
330
+ 193:
331
+ 194: <span class="ruby-identifier">matches</span> = <span class="ruby-identifier">get_docs_from</span>(<span class="ruby-identifier">result</span>)
332
+ 195: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">matches</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:raw_matches</span>]
333
+ 196: <span class="ruby-keyword kw">end</span>
334
+ 197:
335
+ 198: <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(
336
+ 199: <span class="ruby-identifier">connection</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">:format_log_entry</span>,
337
+ 200: <span class="ruby-node">&quot;#{self.to_s} seach for '#{query}' (#{sprintf(&quot;%f&quot;, seconds)})&quot;</span>,
338
+ 201: <span class="ruby-node">&quot;Condition: #{cond.to_s}&quot;</span>
339
+ 202: )
340
+ 203: )
341
+ 204:
342
+ 205: <span class="ruby-identifier">matches</span>.<span class="ruby-identifier">blank?</span> <span class="ruby-value">? </span>[] <span class="ruby-operator">:</span> <span class="ruby-identifier">find</span>(<span class="ruby-identifier">matches</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">attr</span>(<span class="ruby-value str">'db_id'</span>) }, <span class="ruby-identifier">find_options</span>)
343
+ 206: <span class="ruby-keyword kw">end</span>
344
+ </pre>
345
+ </div>
346
+ </div>
347
+ </div>
348
+
349
+ <div id="method-M000071" class="method-detail">
350
+ <a name="M000071"></a>
351
+
352
+ <div class="method-heading">
353
+ <a href="#M000071" class="method-signature">
354
+ <span class="method-name">reindex!</span><span class="method-args">()</span>
355
+ </a>
356
+ </div>
357
+
358
+ <div class="method-description">
359
+ <p>
360
+ Peform a full re-index of the model data for this model
361
+ </p>
362
+ <p><a class="source-toggle" href="#"
363
+ onclick="toggleCode('M000071-source');return false;">[Source]</a></p>
364
+ <div class="method-source-code" id="M000071-source">
365
+ <pre>
366
+ <span class="ruby-comment cmt"># File lib/acts_as_searchable.rb, line 214</span>
367
+ 214: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reindex!</span>
368
+ 215: <span class="ruby-identifier">find</span>(<span class="ruby-identifier">:all</span>).<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">update_index</span>(<span class="ruby-keyword kw">true</span>) }
369
+ 216: <span class="ruby-keyword kw">end</span>
370
+ </pre>
371
+ </div>
372
+ </div>
373
+ </div>
374
+
375
+
376
+ </div>
377
+
378
+
379
+ </div>
380
+
381
+
382
+ <div id="validator-badges">
383
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
384
+ </div>
385
+
386
+ </body>
387
+ </html>
@@ -0,0 +1,619 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: EstraierPure::Condition</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">EstraierPure::Condition</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/acts_as_searchable_rb.html">
59
+ lib/acts_as_searchable.rb
60
+ </a>
61
+ <br />
62
+ <a href="../../files/lib/vendor/estraierpure_rb.html">
63
+ lib/vendor/estraierpure.rb
64
+ </a>
65
+ <br />
66
+ </td>
67
+ </tr>
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+ Object
73
+ </td>
74
+ </tr>
75
+ </table>
76
+ </div>
77
+ <!-- banner header -->
78
+
79
+ <div id="bodyContent">
80
+
81
+
82
+
83
+ <div id="contextContent">
84
+
85
+ <div id="description">
86
+ <p>
87
+ Abstraction of search condition.
88
+ </p>
89
+
90
+ </div>
91
+
92
+
93
+ </div>
94
+
95
+ <div id="method-list">
96
+ <h3 class="section-bar">Methods</h3>
97
+
98
+ <div class="name-list">
99
+ <a href="#M000052">add_attr</a>&nbsp;&nbsp;
100
+ <a href="#M000058">attrs</a>&nbsp;&nbsp;
101
+ <a href="#M000060">max</a>&nbsp;&nbsp;
102
+ <a href="#M000063">new</a>&nbsp;&nbsp;
103
+ <a href="#M000062">options</a>&nbsp;&nbsp;
104
+ <a href="#M000059">order</a>&nbsp;&nbsp;
105
+ <a href="#M000057">phrase</a>&nbsp;&nbsp;
106
+ <a href="#M000054">set_max</a>&nbsp;&nbsp;
107
+ <a href="#M000056">set_options</a>&nbsp;&nbsp;
108
+ <a href="#M000053">set_order</a>&nbsp;&nbsp;
109
+ <a href="#M000051">set_phrase</a>&nbsp;&nbsp;
110
+ <a href="#M000055">set_skip</a>&nbsp;&nbsp;
111
+ <a href="#M000061">skip</a>&nbsp;&nbsp;
112
+ <a href="#M000050">to_s</a>&nbsp;&nbsp;
113
+ </div>
114
+ </div>
115
+
116
+ </div>
117
+
118
+
119
+ <!-- if includes -->
120
+
121
+ <div id="section">
122
+
123
+
124
+ <div id="constants-list">
125
+ <h3 class="section-bar">Constants</h3>
126
+
127
+ <div class="name-list">
128
+ <table summary="Constants">
129
+ <tr class="top-aligned-row context-row">
130
+ <td class="context-item-name">SURE</td>
131
+ <td>=</td>
132
+ <td class="context-item-value">1 &lt;&lt; 0</td>
133
+ <td width="3em">&nbsp;</td>
134
+ <td class="context-item-desc">
135
+ option: check N-gram keys skipping by three
136
+
137
+ </td>
138
+ </tr>
139
+ <tr class="top-aligned-row context-row">
140
+ <td class="context-item-name">USUAL</td>
141
+ <td>=</td>
142
+ <td class="context-item-value">1 &lt;&lt; 1</td>
143
+ <td width="3em">&nbsp;</td>
144
+ <td class="context-item-desc">
145
+ option: check N-gram keys skipping by two
146
+
147
+ </td>
148
+ </tr>
149
+ <tr class="top-aligned-row context-row">
150
+ <td class="context-item-name">FAST</td>
151
+ <td>=</td>
152
+ <td class="context-item-value">1 &lt;&lt; 2</td>
153
+ <td width="3em">&nbsp;</td>
154
+ <td class="context-item-desc">
155
+ option: without TF-IDF tuning
156
+
157
+ </td>
158
+ </tr>
159
+ <tr class="top-aligned-row context-row">
160
+ <td class="context-item-name">AGITO</td>
161
+ <td>=</td>
162
+ <td class="context-item-value">1 &lt;&lt; 3</td>
163
+ <td width="3em">&nbsp;</td>
164
+ <td class="context-item-desc">
165
+ option: with the simplified phrase
166
+
167
+ </td>
168
+ </tr>
169
+ <tr class="top-aligned-row context-row">
170
+ <td class="context-item-name">NOIDF</td>
171
+ <td>=</td>
172
+ <td class="context-item-value">1 &lt;&lt; 4</td>
173
+ <td width="3em">&nbsp;</td>
174
+ <td class="context-item-desc">
175
+ option: check every N-gram key
176
+
177
+ </td>
178
+ </tr>
179
+ <tr class="top-aligned-row context-row">
180
+ <td class="context-item-name">SIMPLE</td>
181
+ <td>=</td>
182
+ <td class="context-item-value">1 &lt;&lt; 10</td>
183
+ <td width="3em">&nbsp;</td>
184
+ <td class="context-item-desc">
185
+ option: check N-gram keys skipping by one
186
+
187
+ </td>
188
+ </tr>
189
+ </table>
190
+ </div>
191
+ </div>
192
+
193
+
194
+
195
+
196
+
197
+
198
+ <!-- if method_list -->
199
+ <div id="methods">
200
+ <h3 class="section-bar">Public Class methods</h3>
201
+
202
+ <div id="method-M000063" class="method-detail">
203
+ <a name="M000063"></a>
204
+
205
+ <div class="method-heading">
206
+ <a href="#M000063" class="method-signature">
207
+ <span class="method-name">new</span><span class="method-args">()</span>
208
+ </a>
209
+ </div>
210
+
211
+ <div class="method-description">
212
+ <p>
213
+ Create a search condition object.
214
+ </p>
215
+ <p><a class="source-toggle" href="#"
216
+ onclick="toggleCode('M000063-source');return false;">[Source]</a></p>
217
+ <div class="method-source-code" id="M000063-source">
218
+ <pre>
219
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 326</span>
220
+ 326: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>()
221
+ 327: <span class="ruby-ivar">@phrase</span> = <span class="ruby-keyword kw">nil</span>
222
+ 328: <span class="ruby-ivar">@attrs</span> = []
223
+ 329: <span class="ruby-ivar">@order</span> = <span class="ruby-keyword kw">nil</span>
224
+ 330: <span class="ruby-ivar">@max</span> = <span class="ruby-value">-1</span>
225
+ 331: <span class="ruby-ivar">@skip</span> = <span class="ruby-value">0</span>
226
+ 332: <span class="ruby-ivar">@options</span> = <span class="ruby-value">0</span>
227
+ 333: <span class="ruby-keyword kw">end</span>
228
+ </pre>
229
+ </div>
230
+ </div>
231
+ </div>
232
+
233
+ <h3 class="section-bar">Public Instance methods</h3>
234
+
235
+ <div id="method-M000052" class="method-detail">
236
+ <a name="M000052"></a>
237
+
238
+ <div class="method-heading">
239
+ <a href="#M000052" class="method-signature">
240
+ <span class="method-name">add_attr</span><span class="method-args">(expr)</span>
241
+ </a>
242
+ </div>
243
+
244
+ <div class="method-description">
245
+ <p>
246
+ Add an expression for an attribute. `expr&#8217; specifies an expression
247
+ for an attribute. The return value is always `nil&#8217;.
248
+ </p>
249
+ <p><a class="source-toggle" href="#"
250
+ onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
251
+ <div class="method-source-code" id="M000052-source">
252
+ <pre>
253
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 243</span>
254
+ 243: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_attr</span>(<span class="ruby-identifier">expr</span>)
255
+ 244: <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">expr</span>=<span class="ruby-operator">&gt;</span><span class="ruby-constant">String</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
256
+ 245: <span class="ruby-identifier">expr</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/[ \t\r\n\v\f]+/</span>, <span class="ruby-value str">&quot; &quot;</span>)
257
+ 246: <span class="ruby-identifier">expr</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">squeeze</span>(<span class="ruby-value str">&quot; &quot;</span>)
258
+ 247: <span class="ruby-ivar">@attrs</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">expr</span>)
259
+ 248: <span class="ruby-keyword kw">nil</span>
260
+ 249: <span class="ruby-keyword kw">end</span>
261
+ </pre>
262
+ </div>
263
+ </div>
264
+ </div>
265
+
266
+ <div id="method-M000058" class="method-detail">
267
+ <a name="M000058"></a>
268
+
269
+ <div class="method-heading">
270
+ <a href="#M000058" class="method-signature">
271
+ <span class="method-name">attrs</span><span class="method-args">()</span>
272
+ </a>
273
+ </div>
274
+
275
+ <div class="method-description">
276
+ <p>
277
+ Get expressions for attributes. The return value is expressions for
278
+ attributes.
279
+ </p>
280
+ <p><a class="source-toggle" href="#"
281
+ onclick="toggleCode('M000058-source');return false;">[Source]</a></p>
282
+ <div class="method-source-code" id="M000058-source">
283
+ <pre>
284
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 298</span>
285
+ 298: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attrs</span>()
286
+ 299: <span class="ruby-ivar">@attrs</span>
287
+ 300: <span class="ruby-keyword kw">end</span>
288
+ </pre>
289
+ </div>
290
+ </div>
291
+ </div>
292
+
293
+ <div id="method-M000060" class="method-detail">
294
+ <a name="M000060"></a>
295
+
296
+ <div class="method-heading">
297
+ <a href="#M000060" class="method-signature">
298
+ <span class="method-name">max</span><span class="method-args">()</span>
299
+ </a>
300
+ </div>
301
+
302
+ <div class="method-description">
303
+ <p>
304
+ Get the maximum number of retrieval. The return value is the maximum number
305
+ of retrieval.
306
+ </p>
307
+ <p><a class="source-toggle" href="#"
308
+ onclick="toggleCode('M000060-source');return false;">[Source]</a></p>
309
+ <div class="method-source-code" id="M000060-source">
310
+ <pre>
311
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 308</span>
312
+ 308: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">max</span>()
313
+ 309: <span class="ruby-ivar">@max</span>
314
+ 310: <span class="ruby-keyword kw">end</span>
315
+ </pre>
316
+ </div>
317
+ </div>
318
+ </div>
319
+
320
+ <div id="method-M000062" class="method-detail">
321
+ <a name="M000062"></a>
322
+
323
+ <div class="method-heading">
324
+ <a href="#M000062" class="method-signature">
325
+ <span class="method-name">options</span><span class="method-args">()</span>
326
+ </a>
327
+ </div>
328
+
329
+ <div class="method-description">
330
+ <p>
331
+ Get options of retrieval. The return value is options by bitwise or.
332
+ </p>
333
+ <p><a class="source-toggle" href="#"
334
+ onclick="toggleCode('M000062-source');return false;">[Source]</a></p>
335
+ <div class="method-source-code" id="M000062-source">
336
+ <pre>
337
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 318</span>
338
+ 318: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">options</span>()
339
+ 319: <span class="ruby-ivar">@options</span>
340
+ 320: <span class="ruby-keyword kw">end</span>
341
+ </pre>
342
+ </div>
343
+ </div>
344
+ </div>
345
+
346
+ <div id="method-M000059" class="method-detail">
347
+ <a name="M000059"></a>
348
+
349
+ <div class="method-heading">
350
+ <a href="#M000059" class="method-signature">
351
+ <span class="method-name">order</span><span class="method-args">()</span>
352
+ </a>
353
+ </div>
354
+
355
+ <div class="method-description">
356
+ <p>
357
+ Get the order expression. The return value is the order expression.
358
+ </p>
359
+ <p><a class="source-toggle" href="#"
360
+ onclick="toggleCode('M000059-source');return false;">[Source]</a></p>
361
+ <div class="method-source-code" id="M000059-source">
362
+ <pre>
363
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 303</span>
364
+ 303: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">order</span>()
365
+ 304: <span class="ruby-ivar">@order</span>
366
+ 305: <span class="ruby-keyword kw">end</span>
367
+ </pre>
368
+ </div>
369
+ </div>
370
+ </div>
371
+
372
+ <div id="method-M000057" class="method-detail">
373
+ <a name="M000057"></a>
374
+
375
+ <div class="method-heading">
376
+ <a href="#M000057" class="method-signature">
377
+ <span class="method-name">phrase</span><span class="method-args">()</span>
378
+ </a>
379
+ </div>
380
+
381
+ <div class="method-description">
382
+ <p>
383
+ Get the search phrase. The return value is the search phrase.
384
+ </p>
385
+ <p><a class="source-toggle" href="#"
386
+ onclick="toggleCode('M000057-source');return false;">[Source]</a></p>
387
+ <div class="method-source-code" id="M000057-source">
388
+ <pre>
389
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 293</span>
390
+ 293: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">phrase</span>()
391
+ 294: <span class="ruby-ivar">@phrase</span>
392
+ 295: <span class="ruby-keyword kw">end</span>
393
+ </pre>
394
+ </div>
395
+ </div>
396
+ </div>
397
+
398
+ <div id="method-M000054" class="method-detail">
399
+ <a name="M000054"></a>
400
+
401
+ <div class="method-heading">
402
+ <a href="#M000054" class="method-signature">
403
+ <span class="method-name">set_max</span><span class="method-args">(max)</span>
404
+ </a>
405
+ </div>
406
+
407
+ <div class="method-description">
408
+ <p>
409
+ Set the maximum number of retrieval. `max&#8217; specifies the maximum
410
+ number of retrieval. By default, the number of retrieval is not limited.
411
+ The return value is always `nil&#8217;.
412
+ </p>
413
+ <p><a class="source-toggle" href="#"
414
+ onclick="toggleCode('M000054-source');return false;">[Source]</a></p>
415
+ <div class="method-source-code" id="M000054-source">
416
+ <pre>
417
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 264</span>
418
+ 264: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_max</span>(<span class="ruby-identifier">max</span>)
419
+ 265: <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">max</span>=<span class="ruby-operator">&gt;</span><span class="ruby-constant">Integer</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
420
+ 266: <span class="ruby-ivar">@max</span> = <span class="ruby-identifier">max</span> <span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">max</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>)
421
+ 267: <span class="ruby-keyword kw">nil</span>
422
+ 268: <span class="ruby-keyword kw">end</span>
423
+ </pre>
424
+ </div>
425
+ </div>
426
+ </div>
427
+
428
+ <div id="method-M000056" class="method-detail">
429
+ <a name="M000056"></a>
430
+
431
+ <div class="method-heading">
432
+ <a href="#M000056" class="method-signature">
433
+ <span class="method-name">set_options</span><span class="method-args">(options)</span>
434
+ </a>
435
+ </div>
436
+
437
+ <div class="method-description">
438
+ <p>
439
+ Set options of retrieval. `options&#8217; specifies options:
440
+ `Condition::SURE&#8217; specifies that it checks every N-gram key,
441
+ `Condition::USU&#8217;, which is the default, specifies that it checks
442
+ N-gram keys with skipping one key, `Condition::FAST&#8217; skips two keys,
443
+ `Condition::AGITO&#8217; skips three keys, `Condition::NOIDF&#8217;
444
+ specifies not to perform TF-IDF tuning, `Condition::SIMPLE&#8217; specifies
445
+ to use simplified phrase. Each option can be specified at the same time by
446
+ bitwise or. If keys are skipped, though search speed is improved, the
447
+ relevance ratio grows less. The return value is always `nil&#8217;.
448
+ </p>
449
+ <p><a class="source-toggle" href="#"
450
+ onclick="toggleCode('M000056-source');return false;">[Source]</a></p>
451
+ <div class="method-source-code" id="M000056-source">
452
+ <pre>
453
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 286</span>
454
+ 286: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_options</span>(<span class="ruby-identifier">options</span>)
455
+ 287: <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">options</span>=<span class="ruby-operator">&gt;</span><span class="ruby-constant">Integer</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
456
+ 288: <span class="ruby-ivar">@options</span> <span class="ruby-operator">|=</span> <span class="ruby-identifier">options</span>
457
+ 289: <span class="ruby-keyword kw">nil</span>
458
+ 290: <span class="ruby-keyword kw">end</span>
459
+ </pre>
460
+ </div>
461
+ </div>
462
+ </div>
463
+
464
+ <div id="method-M000053" class="method-detail">
465
+ <a name="M000053"></a>
466
+
467
+ <div class="method-heading">
468
+ <a href="#M000053" class="method-signature">
469
+ <span class="method-name">set_order</span><span class="method-args">(expr)</span>
470
+ </a>
471
+ </div>
472
+
473
+ <div class="method-description">
474
+ <p>
475
+ Set the order of a condition object. `expr&#8217; specifies an expression
476
+ for the order. By default, the order is by score descending. The return
477
+ value is always `nil&#8217;.
478
+ </p>
479
+ <p><a class="source-toggle" href="#"
480
+ onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
481
+ <div class="method-source-code" id="M000053-source">
482
+ <pre>
483
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 253</span>
484
+ 253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_order</span>(<span class="ruby-identifier">expr</span>)
485
+ 254: <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">expr</span>=<span class="ruby-operator">&gt;</span><span class="ruby-constant">String</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
486
+ 255: <span class="ruby-identifier">expr</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/[ \t\r\n\v\f]+/</span>, <span class="ruby-value str">&quot; &quot;</span>)
487
+ 256: <span class="ruby-identifier">expr</span> = <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">squeeze</span>(<span class="ruby-value str">&quot; &quot;</span>)
488
+ 257: <span class="ruby-ivar">@order</span> = <span class="ruby-identifier">expr</span>
489
+ 258: <span class="ruby-keyword kw">nil</span>
490
+ 259: <span class="ruby-keyword kw">end</span>
491
+ </pre>
492
+ </div>
493
+ </div>
494
+ </div>
495
+
496
+ <div id="method-M000051" class="method-detail">
497
+ <a name="M000051"></a>
498
+
499
+ <div class="method-heading">
500
+ <a href="#M000051" class="method-signature">
501
+ <span class="method-name">set_phrase</span><span class="method-args">(phrase)</span>
502
+ </a>
503
+ </div>
504
+
505
+ <div class="method-description">
506
+ <p>
507
+ Set the search phrase. `phrase&#8217; specifies a search phrase. The return
508
+ value is always `nil&#8217;.
509
+ </p>
510
+ <p><a class="source-toggle" href="#"
511
+ onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
512
+ <div class="method-source-code" id="M000051-source">
513
+ <pre>
514
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 233</span>
515
+ 233: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_phrase</span>(<span class="ruby-identifier">phrase</span>)
516
+ 234: <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">phrase</span>=<span class="ruby-operator">&gt;</span><span class="ruby-constant">String</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
517
+ 235: <span class="ruby-identifier">phrase</span> = <span class="ruby-identifier">phrase</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/[ \t\r\n\v\f]+/</span>, <span class="ruby-value str">&quot; &quot;</span>)
518
+ 236: <span class="ruby-identifier">phrase</span> = <span class="ruby-identifier">phrase</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">squeeze</span>(<span class="ruby-value str">&quot; &quot;</span>)
519
+ 237: <span class="ruby-ivar">@phrase</span> = <span class="ruby-identifier">phrase</span>
520
+ 238: <span class="ruby-keyword kw">nil</span>
521
+ 239: <span class="ruby-keyword kw">end</span>
522
+ </pre>
523
+ </div>
524
+ </div>
525
+ </div>
526
+
527
+ <div id="method-M000055" class="method-detail">
528
+ <a name="M000055"></a>
529
+
530
+ <div class="method-heading">
531
+ <a href="#M000055" class="method-signature">
532
+ <span class="method-name">set_skip</span><span class="method-args">(skip)</span>
533
+ </a>
534
+ </div>
535
+
536
+ <div class="method-description">
537
+ <p>
538
+ Set the number of skipped documents. `skip&#8217; specifies the number of
539
+ documents to be skipped in the search result. The return value is always
540
+ `nil&#8217;.
541
+ </p>
542
+ <p><a class="source-toggle" href="#"
543
+ onclick="toggleCode('M000055-source');return false;">[Source]</a></p>
544
+ <div class="method-source-code" id="M000055-source">
545
+ <pre>
546
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 272</span>
547
+ 272: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_skip</span>(<span class="ruby-identifier">skip</span>)
548
+ 273: <span class="ruby-constant">Utility</span><span class="ruby-operator">::</span><span class="ruby-identifier">check_types</span>({ <span class="ruby-identifier">skip</span>=<span class="ruby-operator">&gt;</span><span class="ruby-constant">Integer</span> }) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
549
+ 274: <span class="ruby-ivar">@skip</span> = <span class="ruby-identifier">skip</span> <span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">skip</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>)
550
+ 275: <span class="ruby-keyword kw">nil</span>
551
+ 276: <span class="ruby-keyword kw">end</span>
552
+ </pre>
553
+ </div>
554
+ </div>
555
+ </div>
556
+
557
+ <div id="method-M000061" class="method-detail">
558
+ <a name="M000061"></a>
559
+
560
+ <div class="method-heading">
561
+ <a href="#M000061" class="method-signature">
562
+ <span class="method-name">skip</span><span class="method-args">()</span>
563
+ </a>
564
+ </div>
565
+
566
+ <div class="method-description">
567
+ <p>
568
+ Get the number of skipped documents. The return value is the number of
569
+ documents to be skipped in the search result.
570
+ </p>
571
+ <p><a class="source-toggle" href="#"
572
+ onclick="toggleCode('M000061-source');return false;">[Source]</a></p>
573
+ <div class="method-source-code" id="M000061-source">
574
+ <pre>
575
+ <span class="ruby-comment cmt"># File lib/vendor/estraierpure.rb, line 313</span>
576
+ 313: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">skip</span>()
577
+ 314: <span class="ruby-ivar">@skip</span>
578
+ 315: <span class="ruby-keyword kw">end</span>
579
+ </pre>
580
+ </div>
581
+ </div>
582
+ </div>
583
+
584
+ <div id="method-M000050" class="method-detail">
585
+ <a name="M000050"></a>
586
+
587
+ <div class="method-heading">
588
+ <a href="#M000050" class="method-signature">
589
+ <span class="method-name">to_s</span><span class="method-args">()</span>
590
+ </a>
591
+ </div>
592
+
593
+ <div class="method-description">
594
+ <p><a class="source-toggle" href="#"
595
+ onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
596
+ <div class="method-source-code" id="M000050-source">
597
+ <pre>
598
+ <span class="ruby-comment cmt"># File lib/acts_as_searchable.rb, line 356</span>
599
+ 356: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
600
+ 357: <span class="ruby-value str">&quot;phrase: %s, attrs: %s, max: %s, options: %s, order: %s, skip: %s&quot;</span> <span class="ruby-operator">%</span> [ <span class="ruby-identifier">phrase</span>, <span class="ruby-identifier">attrs</span> <span class="ruby-operator">*</span> <span class="ruby-value str">', '</span>, <span class="ruby-identifier">max</span>, <span class="ruby-identifier">options</span>, <span class="ruby-identifier">order</span>, <span class="ruby-identifier">skip</span> ]
601
+ 358: <span class="ruby-keyword kw">end</span>
602
+ </pre>
603
+ </div>
604
+ </div>
605
+ </div>
606
+
607
+
608
+ </div>
609
+
610
+
611
+ </div>
612
+
613
+
614
+ <div id="validator-badges">
615
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
616
+ </div>
617
+
618
+ </body>
619
+ </html>