pose 1.3.4 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. data/README.md +11 -0
  2. data/Rakefile +4 -2
  3. data/app/models/pose/assignment.rb +34 -0
  4. data/app/models/pose/word.rb +24 -0
  5. data/db/migrate/20130308144915_pose_install.rb +18 -0
  6. data/lib/generators/pose/remove/templates/remove_migration.rb +3 -5
  7. data/lib/generators/pose/upgrade/templates/upgrade_migration.rb +9 -0
  8. data/lib/generators/pose/upgrade/upgrade_generator.rb +35 -0
  9. data/lib/pose/activerecord_base_additions.rb +5 -2
  10. data/lib/pose/engine.rb +5 -0
  11. data/lib/pose/internal_helpers.rb +13 -7
  12. data/lib/pose/{model_additions.rb → model_class_additions.rb} +8 -8
  13. data/lib/pose/railtie.rb +1 -2
  14. data/lib/pose/static_api.rb +5 -6
  15. data/lib/pose/version.rb +1 -1
  16. data/lib/pose.rb +5 -7
  17. data/lib/tasks/pose_tasks.rake +27 -29
  18. data/spec/dummy/Rakefile +7 -0
  19. data/spec/{support/models.rb → dummy/app/models/posable_one.rb} +1 -4
  20. data/spec/dummy/app/models/posable_two.rb +5 -0
  21. data/spec/dummy/config/application.rb +59 -0
  22. data/spec/dummy/config/boot.rb +10 -0
  23. data/spec/dummy/config/database.yml +25 -0
  24. data/spec/dummy/config/environment.rb +5 -0
  25. data/spec/dummy/config/environments/development.rb +37 -0
  26. data/spec/dummy/config/environments/production.rb +67 -0
  27. data/spec/dummy/config/environments/test.rb +37 -0
  28. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  29. data/spec/dummy/config/initializers/inflections.rb +15 -0
  30. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  31. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  32. data/spec/dummy/config/initializers/session_store.rb +8 -0
  33. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  34. data/spec/dummy/config/locales/en.yml +5 -0
  35. data/spec/dummy/config/routes.rb +2 -0
  36. data/spec/dummy/config.ru +4 -0
  37. data/spec/dummy/db/migrate/20130308054001_create_posable_one.rb +8 -0
  38. data/spec/dummy/db/migrate/20130308054142_create_posable_two.rb +9 -0
  39. data/spec/dummy/db/schema.rb +41 -0
  40. data/spec/dummy/script/rails +6 -0
  41. data/spec/factories/assignments.rb +8 -0
  42. data/spec/factories/posable_one.rb +5 -0
  43. data/spec/factories/words.rb +7 -0
  44. data/spec/internal_helpers_spec.rb +40 -42
  45. data/spec/models/assignment_spec.rb +46 -0
  46. data/spec/models/word_spec.rb +42 -0
  47. data/spec/pose_api_spec.rb +198 -196
  48. data/spec/spec_helper.rb +21 -77
  49. data/spec/support/matchers.rb +0 -1
  50. metadata +83 -102
  51. data/doc/Pose/InstanceMethods.html +0 -341
  52. data/doc/Pose.html +0 -774
  53. data/doc/PoseAssignment.html +0 -125
  54. data/doc/PoseGenerator.html +0 -255
  55. data/doc/PoseMigrations.html +0 -261
  56. data/doc/PoseWord.html +0 -125
  57. data/doc/_index.html +0 -134
  58. data/doc/class_list.html +0 -47
  59. data/doc/css/common.css +0 -1
  60. data/doc/css/full_list.css +0 -55
  61. data/doc/css/style.css +0 -322
  62. data/doc/file_list.html +0 -46
  63. data/doc/frames.html +0 -13
  64. data/doc/index.html +0 -134
  65. data/doc/js/app.js +0 -205
  66. data/doc/js/full_list.js +0 -167
  67. data/doc/js/jquery.js +0 -16
  68. data/doc/method_list.html +0 -150
  69. data/doc/top-level-namespace.html +0 -172
  70. data/lib/generators/pose/install/install_generator.rb +0 -56
  71. data/lib/generators/pose/install/templates/install_migration.rb +0 -24
  72. data/lib/pose/models/pose_assignment.rb +0 -31
  73. data/lib/pose/models/pose_word.rb +0 -28
  74. data/spec/factories.rb +0 -15
  75. data/spec/pose_assignment_spec.rb +0 -45
  76. data/spec/pose_word_spec.rb +0 -26
data/doc/Pose.html DELETED
@@ -1,774 +0,0 @@
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>