pose 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/doc/Pose.html ADDED
@@ -0,0 +1,774 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: Pose
8
+
9
+ &mdash; Documentation by YARD 0.7.3
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="_index.html">Index (P)</a> &raquo;
37
+
38
+
39
+ <span class="title">Pose</span>
40
+
41
+
42
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
43
+ </div>
44
+
45
+ <div id="search">
46
+
47
+ <a id="class_list_link" href="#">Class List</a>
48
+
49
+ <a id="method_list_link" href="#">Method List</a>
50
+
51
+ <a id="file_list_link" href="#">File List</a>
52
+
53
+ </div>
54
+ <div class="clear"></div>
55
+ </div>
56
+
57
+ <iframe id="search_frame"></iframe>
58
+
59
+ <div id="content"><h1>Module: Pose
60
+
61
+
62
+
63
+ </h1>
64
+
65
+ <dl class="box">
66
+
67
+
68
+
69
+ <dt class="r1">Extended by:</dt>
70
+ <dd class="r1">ActiveSupport::Concern</dd>
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+ <dt class="r2 last">Defined in:</dt>
79
+ <dd class="r2 last">lib/pose.rb<span class="defines">,<br />
80
+ lib/pose/version.rb</span>
81
+ </dd>
82
+
83
+ </dl>
84
+ <div class="clear"></div>
85
+
86
+ <h2>Overview</h2><div class="docstring">
87
+ <div class="discussion">
88
+ Polymorphic search for ActiveRecord objects.
89
+
90
+ </div>
91
+ </div>
92
+ <div class="tags">
93
+
94
+
95
+ </div><h2>Defined Under Namespace</h2>
96
+ <p class="children">
97
+
98
+
99
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Pose/InstanceMethods.html" title="Pose::InstanceMethods (module)">InstanceMethods</a></span>
100
+
101
+
102
+
103
+
104
+ </p>
105
+
106
+ <h2>Constant Summary</h2>
107
+
108
+ <dl class="constants">
109
+
110
+ <dt id="CONFIGURATION-constant" class="">CONFIGURATION =
111
+ <div class="docstring">
112
+ <div class="discussion">
113
+ By default, doesn't run in tests.
114
+ Set this to true to test the search functionality.
115
+
116
+ </div>
117
+ </div>
118
+ <div class="tags">
119
+
120
+
121
+ </div>
122
+ </dt>
123
+ <dd><pre class="code"><span class='lbrace token'>{</span> <span class='symbol val'>:search_in_tests</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='false false kw'>false</span> <span class='rbrace token'>}</span>
124
+ </pre></dd>
125
+
126
+ <dt id="VERSION-constant" class="">VERSION =
127
+
128
+ </dt>
129
+ <dd><pre class="code"><span class='string val'>&quot;0.0.1&quot;</span>
130
+ </pre></dd>
131
+
132
+ </dl>
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+ <h2>
143
+ Class Method Summary
144
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
145
+ </h2>
146
+
147
+ <ul class="summary">
148
+
149
+ <li class="public ">
150
+ <span class="summary_signature">
151
+
152
+ <a href="#get_words_to_add-class_method" title="get_words_to_add (class method)">+ (Array&lt;String&gt;) <strong>get_words_to_add</strong>(existing_words, new_words) </a>
153
+
154
+
155
+
156
+ </span>
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+ <span class="summary_desc"><div class='inline'>Returns all strings that are in new_words, but not in existing_words.</div></span>
166
+
167
+ </li>
168
+
169
+
170
+ <li class="public ">
171
+ <span class="summary_signature">
172
+
173
+ <a href="#get_words_to_remove-class_method" title="get_words_to_remove (class method)">+ (Array&lt;String&gt;) <strong>get_words_to_remove</strong>(existing_words, new_words) </a>
174
+
175
+
176
+
177
+ </span>
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+ <span class="summary_desc"><div class='inline'>Returns the id of all word objects that are in existing_words, but not in new_words.</div></span>
187
+
188
+ </li>
189
+
190
+
191
+ <li class="public ">
192
+ <span class="summary_signature">
193
+
194
+ <a href="#is_url-class_method" title="is_url (class method)">+ (Boolean) <strong>is_url</strong>(word) </a>
195
+
196
+
197
+
198
+ </span>
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+ <span class="summary_desc"><div class='inline'>Returns whether the given string is a URL.</div></span>
208
+
209
+ </li>
210
+
211
+
212
+ <li class="public ">
213
+ <span class="summary_signature">
214
+
215
+ <a href="#root_word-class_method" title="root_word (class method)">+ (String) <strong>root_word</strong>(raw_word) </a>
216
+
217
+
218
+
219
+ </span>
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+ <span class="summary_desc"><div class='inline'>Simplifies the given word to a generic search form.</div></span>
229
+
230
+ </li>
231
+
232
+
233
+ <li class="public ">
234
+ <span class="summary_signature">
235
+
236
+ <a href="#search-class_method" title="search (class method)">+ (Object) <strong>search</strong>(query, classes) </a>
237
+
238
+
239
+
240
+ </span>
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+ <span class="summary_desc"><div class='inline'>Returns all objects matching the given query.</div></span>
250
+
251
+ </li>
252
+
253
+
254
+ </ul>
255
+
256
+
257
+
258
+
259
+
260
+ <div id="class_method_details" class="method_details_list">
261
+ <h2>Class Method Details</h2>
262
+
263
+
264
+ <div class="method_details first">
265
+ <p class="signature first" id="get_words_to_add-class_method">
266
+
267
+ + (<tt>Array&lt;String&gt;</tt>) <strong>get_words_to_add</strong>(existing_words, new_words)
268
+
269
+
270
+
271
+ </p><div class="docstring">
272
+ <div class="discussion">
273
+ Returns all strings that are in new_words, but not in existing_words.
274
+ Helper method.
275
+
276
+ </div>
277
+ </div>
278
+ <div class="tags">
279
+ <h3>Parameters:</h3>
280
+ <ul class="param">
281
+
282
+ <li>
283
+
284
+ <span class='name'>existing_words</span>
285
+
286
+
287
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
288
+
289
+
290
+
291
+ &mdash;
292
+ <div class='inline'>The words that are already associated with the object.</div>
293
+
294
+ </li>
295
+
296
+ <li>
297
+
298
+ <span class='name'>new_words</span>
299
+
300
+
301
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
302
+
303
+
304
+
305
+ &mdash;
306
+ <div class='inline'>The words thet the object should have from now on.</div>
307
+
308
+ </li>
309
+
310
+ </ul>
311
+
312
+ <h3>Returns:</h3>
313
+ <ul class="return">
314
+
315
+ <li>
316
+
317
+
318
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
319
+
320
+
321
+
322
+ &mdash;
323
+ <div class='inline'>The words that need to be added to the existing_words array.</div>
324
+
325
+ </li>
326
+
327
+ </ul>
328
+
329
+ </div><table class="source_code">
330
+ <tr>
331
+ <td>
332
+ <pre class="lines">
333
+
334
+
335
+ 66
336
+ 67
337
+ 68</pre>
338
+ </td>
339
+ <td>
340
+ <pre class="code"><span class="info file"># File 'lib/pose.rb', line 66</span>
341
+
342
+ <span class='def def kw'>def</span> <span class='Pose constant id'>Pose</span><span class='dot token'>.</span><span class='get_words_to_add identifier id'>get_words_to_add</span> <span class='existing_words identifier id'>existing_words</span><span class='comma token'>,</span> <span class='new_words identifier id'>new_words</span>
343
+ <span class='new_words identifier id'>new_words</span> <span class='minus op'>-</span> <span class='existing_words identifier id'>existing_words</span><span class='dot token'>.</span><span class='map identifier id'>map</span><span class='lparen token'>(</span><span class='bitand op'>&amp;</span><span class='symbol val'>:text</span><span class='rparen token'>)</span>
344
+ <span class='end end kw'>end</span>
345
+ </pre>
346
+ </td>
347
+ </tr>
348
+ </table>
349
+ </div>
350
+
351
+ <div class="method_details ">
352
+ <p class="signature " id="get_words_to_remove-class_method">
353
+
354
+ + (<tt>Array&lt;String&gt;</tt>) <strong>get_words_to_remove</strong>(existing_words, new_words)
355
+
356
+
357
+
358
+ </p><div class="docstring">
359
+ <div class="discussion">
360
+ Returns the id of all word objects that are in existing_words, but not in new_words.
361
+ Helper method.
362
+
363
+ </div>
364
+ </div>
365
+ <div class="tags">
366
+ <h3>Parameters:</h3>
367
+ <ul class="param">
368
+
369
+ <li>
370
+
371
+ <span class='name'>existing_words</span>
372
+
373
+
374
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
375
+
376
+
377
+
378
+ &mdash;
379
+ <div class='inline'>The words that are already associated with the object.</div>
380
+
381
+ </li>
382
+
383
+ <li>
384
+
385
+ <span class='name'>new_words</span>
386
+
387
+
388
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
389
+
390
+
391
+
392
+ &mdash;
393
+ <div class='inline'>The words thet the object should have from now on.</div>
394
+
395
+ </li>
396
+
397
+ </ul>
398
+
399
+ <h3>Returns:</h3>
400
+ <ul class="return">
401
+
402
+ <li>
403
+
404
+
405
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
406
+
407
+
408
+
409
+ &mdash;
410
+ <div class='inline'>The words that need to be removed from the existing_words array.</div>
411
+
412
+ </li>
413
+
414
+ </ul>
415
+
416
+ </div><table class="source_code">
417
+ <tr>
418
+ <td>
419
+ <pre class="lines">
420
+
421
+
422
+ 75
423
+ 76
424
+ 77
425
+ 78
426
+ 79</pre>
427
+ </td>
428
+ <td>
429
+ <pre class="code"><span class="info file"># File 'lib/pose.rb', line 75</span>
430
+
431
+ <span class='def def kw'>def</span> <span class='Pose constant id'>Pose</span><span class='dot token'>.</span><span class='get_words_to_remove identifier id'>get_words_to_remove</span> <span class='existing_words identifier id'>existing_words</span><span class='comma token'>,</span> <span class='new_words identifier id'>new_words</span>
432
+ <span class='existing_words identifier id'>existing_words</span><span class='dot token'>.</span><span class='map identifier id'>map</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='existing_word identifier id'>existing_word</span><span class='bitor op'>|</span>
433
+ <span class='new_words identifier id'>new_words</span><span class='dot token'>.</span><span class='include? fid id'>include?</span><span class='lparen token'>(</span><span class='existing_word identifier id'>existing_word</span><span class='dot token'>.</span><span class='text identifier id'>text</span><span class='rparen token'>)</span> <span class='question op'>?</span> <span class='nil nil kw'>nil</span> <span class='colon op'>:</span> <span class='existing_word identifier id'>existing_word</span>
434
+ <span class='end end kw'>end</span><span class='dot token'>.</span><span class='compact identifier id'>compact</span>
435
+ <span class='end end kw'>end</span>
436
+ </pre>
437
+ </td>
438
+ </tr>
439
+ </table>
440
+ </div>
441
+
442
+ <div class="method_details ">
443
+ <p class="signature " id="is_url-class_method">
444
+
445
+ + (<tt>Boolean</tt>) <strong>is_url</strong>(word)
446
+
447
+
448
+
449
+ </p><div class="docstring">
450
+ <div class="discussion">
451
+ Returns whether the given string is a URL.
452
+
453
+ </div>
454
+ </div>
455
+ <div class="tags">
456
+ <h3>Parameters:</h3>
457
+ <ul class="param">
458
+
459
+ <li>
460
+
461
+ <span class='name'>word</span>
462
+
463
+
464
+ <span class='type'>(<tt>String</tt>)</span>
465
+
466
+
467
+
468
+ &mdash;
469
+ <div class='inline'>The string to check.</div>
470
+
471
+ </li>
472
+
473
+ </ul>
474
+
475
+ <h3>Returns:</h3>
476
+ <ul class="return">
477
+
478
+ <li>
479
+
480
+
481
+ <span class='type'>(<tt>Boolean</tt>)</span>
482
+
483
+
484
+
485
+ </li>
486
+
487
+ </ul>
488
+
489
+ </div><table class="source_code">
490
+ <tr>
491
+ <td>
492
+ <pre class="lines">
493
+
494
+
495
+ 84
496
+ 85
497
+ 86
498
+ 87
499
+ 88
500
+ 89</pre>
501
+ </td>
502
+ <td>
503
+ <pre class="code"><span class="info file"># File 'lib/pose.rb', line 84</span>
504
+
505
+ <span class='def def kw'>def</span> <span class='Pose constant id'>Pose</span><span class='dot token'>.</span><span class='is_url identifier id'>is_url</span> <span class='word identifier id'>word</span>
506
+ <span class='uri identifier id'>uri</span> <span class='assign token'>=</span> <span class='URI constant id'>URI</span><span class='colon2 op'>::</span><span class='parse identifier id'>parse</span> <span class='word identifier id'>word</span>
507
+ <span class='return return kw'>return</span> <span class='uri identifier id'>uri</span><span class='dot token'>.</span><span class='scheme identifier id'>scheme</span> <span class='eq op'>==</span> <span class='string val'>'http'</span>
508
+ <span class='rescue rescue kw'>rescue</span> <span class='URI constant id'>URI</span><span class='colon2 op'>::</span><span class='InvalidURIError constant id'>InvalidURIError</span>
509
+ <span class='false false kw'>false</span>
510
+ <span class='end end kw'>end</span>
511
+ </pre>
512
+ </td>
513
+ </tr>
514
+ </table>
515
+ </div>
516
+
517
+ <div class="method_details ">
518
+ <p class="signature " id="root_word-class_method">
519
+
520
+ + (<tt>String</tt>) <strong>root_word</strong>(raw_word)
521
+
522
+
523
+
524
+ </p><div class="docstring">
525
+ <div class="discussion">
526
+ Simplifies the given word to a generic search form.
527
+
528
+ </div>
529
+ </div>
530
+ <div class="tags">
531
+ <h3>Parameters:</h3>
532
+ <ul class="param">
533
+
534
+ <li>
535
+
536
+ <span class='name'>raw_word</span>
537
+
538
+
539
+ <span class='type'>(<tt>String</tt>)</span>
540
+
541
+
542
+
543
+ &mdash;
544
+ <div class='inline'>The word to make searchable.</div>
545
+
546
+ </li>
547
+
548
+ </ul>
549
+
550
+ <h3>Returns:</h3>
551
+ <ul class="return">
552
+
553
+ <li>
554
+
555
+
556
+ <span class='type'>(<tt>String</tt>)</span>
557
+
558
+
559
+
560
+ &mdash;
561
+ <div class='inline'>The stemmed version of the word.</div>
562
+
563
+ </li>
564
+
565
+ </ul>
566
+
567
+ </div><table class="source_code">
568
+ <tr>
569
+ <td>
570
+ <pre class="lines">
571
+
572
+
573
+ 94
574
+ 95
575
+ 96
576
+ 97
577
+ 98
578
+ 99
579
+ 100
580
+ 101
581
+ 102
582
+ 103
583
+ 104
584
+ 105
585
+ 106
586
+ 107
587
+ 108
588
+ 109
589
+ 110
590
+ 111
591
+ 112</pre>
592
+ </td>
593
+ <td>
594
+ <pre class="code"><span class="info file"># File 'lib/pose.rb', line 94</span>
595
+
596
+ <span class='def def kw'>def</span> <span class='Pose constant id'>Pose</span><span class='dot token'>.</span><span class='root_word identifier id'>root_word</span> <span class='raw_word identifier id'>raw_word</span>
597
+ <span class='result identifier id'>result</span> <span class='assign token'>=</span> <span class='lbrack token'>[</span><span class='rbrack token'>]</span>
598
+ <span class='raw_word_copy identifier id'>raw_word_copy</span> <span class='assign token'>=</span> <span class='raw_word identifier id'>raw_word</span><span class='lbrack token'>[</span><span class='integer val'>0</span><span class='dot2 op'>..</span><span class='integer val'>-1</span><span class='rbrack token'>]</span>
599
+ <span class='raw_word_copy identifier id'>raw_word_copy</span><span class='dot token'>.</span><span class='gsub! fid id'>gsub!</span> <span class='regexp val'>/[()*&lt;&gt;'&quot;,;]/</span><span class='comma token'>,</span> <span class='string val'>' '</span>
600
+ <span class='raw_word_copy identifier id'>raw_word_copy</span><span class='dot token'>.</span><span class='gsub! fid id'>gsub!</span> <span class='regexp val'>/\s+/</span><span class='comma token'>,</span> <span class='string val'>' '</span>
601
+ <span class='raw_word_copy identifier id'>raw_word_copy</span><span class='dot token'>.</span><span class='split identifier id'>split</span><span class='lparen token'>(</span><span class='string val'>' '</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='each identifier id'>each</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='word identifier id'>word</span><span class='bitor op'>|</span>
602
+ <span class='if if kw'>if</span> <span class='Pose constant id'>Pose</span><span class='dot token'>.</span><span class='is_url identifier id'>is_url</span><span class='lparen token'>(</span><span class='word identifier id'>word</span><span class='rparen token'>)</span>
603
+ <span class='result identifier id'>result</span><span class='dot token'>.</span><span class='concat identifier id'>concat</span> <span class='word identifier id'>word</span><span class='dot token'>.</span><span class='split identifier id'>split</span><span class='lparen token'>(</span><span class='regexp val'>/[\.\/\:]/</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='delete_if identifier id'>delete_if</span><span class='lbrace token'>{</span><span class='bitor op'>|</span><span class='word identifier id'>word</span><span class='bitor op'>|</span> <span class='word identifier id'>word</span><span class='dot token'>.</span><span class='blank? fid id'>blank?</span><span class='rbrace token'>}</span>
604
+ <span class='else else kw'>else</span>
605
+ <span class='word identifier id'>word</span><span class='dot token'>.</span><span class='gsub! fid id'>gsub!</span> <span class='regexp val'>/[\-\/\._:]/</span><span class='comma token'>,</span> <span class='string val'>' '</span>
606
+ <span class='word identifier id'>word</span><span class='dot token'>.</span><span class='gsub! fid id'>gsub!</span> <span class='regexp val'>/\s+/</span><span class='comma token'>,</span> <span class='string val'>' '</span>
607
+ <span class='word identifier id'>word</span><span class='dot token'>.</span><span class='split identifier id'>split</span><span class='lparen token'>(</span><span class='string val'>' '</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='each identifier id'>each</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='w identifier id'>w</span><span class='bitor op'>|</span>
608
+ <span class='stemmed_word identifier id'>stemmed_word</span> <span class='assign token'>=</span> <span class='w identifier id'>w</span><span class='dot token'>.</span><span class='parameterize identifier id'>parameterize</span><span class='dot token'>.</span><span class='singularize identifier id'>singularize</span>
609
+ <span class='result identifier id'>result</span><span class='dot token'>.</span><span class='concat identifier id'>concat</span> <span class='stemmed_word identifier id'>stemmed_word</span><span class='dot token'>.</span><span class='split identifier id'>split</span> <span class='string val'>' '</span>
610
+ <span class='end end kw'>end</span>
611
+ <span class='end end kw'>end</span>
612
+ <span class='end end kw'>end</span>
613
+ <span class='result identifier id'>result</span><span class='dot token'>.</span><span class='uniq identifier id'>uniq</span>
614
+ <span class='end end kw'>end</span>
615
+ </pre>
616
+ </td>
617
+ </tr>
618
+ </table>
619
+ </div>
620
+
621
+ <div class="method_details ">
622
+ <p class="signature " id="search-class_method">
623
+
624
+ + (<tt>Object</tt>) <strong>search</strong>(query, classes)
625
+
626
+
627
+
628
+ </p><div class="docstring">
629
+ <div class="discussion">
630
+ Returns all objects matching the given query.
631
+
632
+ </div>
633
+ </div>
634
+ <div class="tags">
635
+ <h3>Parameters:</h3>
636
+ <ul class="param">
637
+
638
+ <li>
639
+
640
+ <span class='name'>query</span>
641
+
642
+
643
+ <span class='type'>(<tt>String</tt>)</span>
644
+
645
+
646
+
647
+ &mdash;
648
+ <div class='inline'>The search query as entered by the user.</div>
649
+
650
+ </li>
651
+
652
+ <li>
653
+
654
+ <span class='name'>classes</span>
655
+
656
+
657
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
658
+
659
+
660
+
661
+ &mdash;
662
+ <div class='inline'>The classes that should be returned.</div>
663
+
664
+ </li>
665
+
666
+ </ul>
667
+
668
+
669
+ </div><table class="source_code">
670
+ <tr>
671
+ <td>
672
+ <pre class="lines">
673
+
674
+
675
+ 117
676
+ 118
677
+ 119
678
+ 120
679
+ 121
680
+ 122
681
+ 123
682
+ 124
683
+ 125
684
+ 126
685
+ 127
686
+ 128
687
+ 129
688
+ 130
689
+ 131
690
+ 132
691
+ 133
692
+ 134
693
+ 135
694
+ 136
695
+ 137
696
+ 138
697
+ 139
698
+ 140
699
+ 141
700
+ 142
701
+ 143
702
+ 144
703
+ 145
704
+ 146
705
+ 147
706
+ 148
707
+ 149
708
+ 150
709
+ 151
710
+ 152
711
+ 153
712
+ 154
713
+ 155</pre>
714
+ </td>
715
+ <td>
716
+ <pre class="code"><span class="info file"># File 'lib/pose.rb', line 117</span>
717
+
718
+ <span class='def def kw'>def</span> <span class='Pose constant id'>Pose</span><span class='dot token'>.</span><span class='search identifier id'>search</span> <span class='query identifier id'>query</span><span class='comma token'>,</span> <span class='classes identifier id'>classes</span>
719
+
720
+ <span class='comment val'># Turn 'classes' into an array.</span>
721
+ <span class='classes identifier id'>classes</span> <span class='assign token'>=</span> <span class='lbrack token'>[</span><span class='classes identifier id'>classes</span><span class='rbrack token'>]</span><span class='dot token'>.</span><span class='flatten identifier id'>flatten</span>
722
+ <span class='classes_names identifier id'>classes_names</span> <span class='assign token'>=</span> <span class='classes identifier id'>classes</span><span class='dot token'>.</span><span class='map identifier id'>map</span> <span class='bitand op'>&amp;</span><span class='symbol val'>:name</span>
723
+
724
+ <span class='comment val'># Get the ids of the results.</span>
725
+ <span class='result_classes_and_ids identifier id'>result_classes_and_ids</span> <span class='assign token'>=</span> <span class='lbrace token'>{</span><span class='rbrace token'>}</span>
726
+ <span class='query identifier id'>query</span><span class='dot token'>.</span><span class='split identifier id'>split</span><span class='lparen token'>(</span><span class='string val'>' '</span><span class='rparen token'>)</span><span class='dot token'>.</span><span class='each identifier id'>each</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='query_word identifier id'>query_word</span><span class='bitor op'>|</span>
727
+ <span class='current_word_classes_and_ids identifier id'>current_word_classes_and_ids</span> <span class='assign token'>=</span> <span class='lbrace token'>{</span><span class='rbrace token'>}</span>
728
+ <span class='classes identifier id'>classes</span><span class='dot token'>.</span><span class='each identifier id'>each</span> <span class='lbrace token'>{</span> <span class='bitor op'>|</span><span class='clazz identifier id'>clazz</span><span class='bitor op'>|</span> <span class='current_word_classes_and_ids identifier id'>current_word_classes_and_ids</span><span class='lbrack token'>[</span><span class='clazz identifier id'>clazz</span><span class='dot token'>.</span><span class='name identifier id'>name</span><span class='rbrack token'>]</span> <span class='assign token'>=</span> <span class='lbrack token'>[</span><span class='rbrack token'>]</span> <span class='rbrace token'>}</span>
729
+ <span class='PoseAssignment constant id'>PoseAssignment</span><span class='dot token'>.</span><span class='joins identifier id'>joins</span><span class='lparen token'>(</span><span class='symbol val'>:pose_word</span><span class='rparen token'>)</span> \
730
+ <span class='dot token'>.</span><span class='where identifier id'>where</span><span class='lparen token'>(</span><span class='symbol val'>:pose_words</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='lbrace token'>{</span><span class='symbol val'>:text</span><span class='dot token'>.</span><span class='matches identifier id'>matches</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='dstring node'>&quot;#{query_word}%&quot;</span><span class='rbrace token'>}</span><span class='comma token'>,</span>
731
+ <span class='symbol val'>:posable_type</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='classes_names identifier id'>classes_names</span><span class='rparen token'>)</span> \
732
+ <span class='dot token'>.</span><span class='each identifier id'>each</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='pose_assignment identifier id'>pose_assignment</span><span class='bitor op'>|</span>
733
+ <span class='current_word_classes_and_ids identifier id'>current_word_classes_and_ids</span><span class='lbrack token'>[</span><span class='pose_assignment identifier id'>pose_assignment</span><span class='dot token'>.</span><span class='posable_type identifier id'>posable_type</span><span class='rbrack token'>]</span> <span class='lshft op'>&lt;&lt;</span> <span class='pose_assignment identifier id'>pose_assignment</span><span class='dot token'>.</span><span class='posable_id identifier id'>posable_id</span>
734
+ <span class='end end kw'>end</span>
735
+
736
+ <span class='current_word_classes_and_ids identifier id'>current_word_classes_and_ids</span><span class='dot token'>.</span><span class='each identifier id'>each</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='class_name identifier id'>class_name</span><span class='comma token'>,</span> <span class='ids identifier id'>ids</span><span class='bitor op'>|</span>
737
+ <span class='if if kw'>if</span> <span class='result_classes_and_ids identifier id'>result_classes_and_ids</span><span class='dot token'>.</span><span class='has_key? fid id'>has_key?</span> <span class='class_name identifier id'>class_name</span>
738
+ <span class='result_classes_and_ids identifier id'>result_classes_and_ids</span><span class='lbrack token'>[</span><span class='class_name identifier id'>class_name</span><span class='rbrack token'>]</span> <span class='assign token'>=</span> <span class='result_classes_and_ids identifier id'>result_classes_and_ids</span><span class='lbrack token'>[</span><span class='class_name identifier id'>class_name</span><span class='rbrack token'>]</span> <span class='bitand op'>&amp;</span> <span class='ids identifier id'>ids</span>
739
+ <span class='else else kw'>else</span>
740
+ <span class='result_classes_and_ids identifier id'>result_classes_and_ids</span><span class='lbrack token'>[</span><span class='class_name identifier id'>class_name</span><span class='rbrack token'>]</span> <span class='assign token'>=</span> <span class='ids identifier id'>ids</span>
741
+ <span class='end end kw'>end</span>
742
+ <span class='end end kw'>end</span>
743
+ <span class='end end kw'>end</span>
744
+
745
+ <span class='comment val'># Load the results by id.</span>
746
+ <span class='result identifier id'>result</span> <span class='assign token'>=</span> <span class='lbrace token'>{</span><span class='rbrace token'>}</span>
747
+ <span class='classes identifier id'>classes</span><span class='dot token'>.</span><span class='each identifier id'>each</span> <span class='lbrace token'>{</span> <span class='bitor op'>|</span><span class='clazz identifier id'>clazz</span><span class='bitor op'>|</span> <span class='result identifier id'>result</span><span class='lbrack token'>[</span><span class='clazz identifier id'>clazz</span><span class='rbrack token'>]</span> <span class='assign token'>=</span> <span class='lbrack token'>[</span><span class='rbrack token'>]</span> <span class='rbrace token'>}</span>
748
+ <span class='result_classes_and_ids identifier id'>result_classes_and_ids</span><span class='dot token'>.</span><span class='each identifier id'>each</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='class_name identifier id'>class_name</span><span class='comma token'>,</span> <span class='ids identifier id'>ids</span><span class='bitor op'>|</span>
749
+ <span class='result_class identifier id'>result_class</span> <span class='assign token'>=</span> <span class='Kernel constant id'>Kernel</span><span class='dot token'>.</span><span class='const_get identifier id'>const_get</span> <span class='class_name identifier id'>class_name</span>
750
+ <span class='next next kw'>next</span> <span class='unless unless_mod kw'>unless</span> <span class='classes identifier id'>classes</span><span class='dot token'>.</span><span class='include? fid id'>include?</span> <span class='result_class identifier id'>result_class</span>
751
+ <span class='next next kw'>next</span> <span class='if if_mod kw'>if</span> <span class='ids identifier id'>ids</span><span class='dot token'>.</span><span class='empty? fid id'>empty?</span>
752
+ <span class='result identifier id'>result</span><span class='lbrack token'>[</span><span class='result_class identifier id'>result_class</span><span class='rbrack token'>]</span> <span class='assign token'>=</span> <span class='result_class identifier id'>result_class</span><span class='dot token'>.</span><span class='where identifier id'>where</span> <span class='symbol val'>:id</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='ids identifier id'>ids</span>
753
+ <span class='end end kw'>end</span>
754
+
755
+ <span class='result identifier id'>result</span>
756
+ <span class='end end kw'>end</span>
757
+ </pre>
758
+ </td>
759
+ </tr>
760
+ </table>
761
+ </div>
762
+
763
+ </div>
764
+
765
+ </div>
766
+
767
+ <div id="footer">
768
+ Generated on Wed Nov 16 11:48:27 2011 by
769
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
770
+ 0.7.3 (ruby-1.8.7).
771
+ </div>
772
+
773
+ </body>
774
+ </html>