voteable_mongoid 0.4.5 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,10 +2,12 @@
2
2
 
3
3
  Voteable Mongoid allows you to make your Mongoid::Document objects voteable (up or down)
4
4
 
5
- For instance, in a Q&A site, a user can vote up (or down) on a post or a comment.
5
+ For instance, in a forum, a user can vote up (or down) on a post or a comment.
6
6
 
7
7
  When user provided enough information, voteable_mongoid will use only one update-in-place operation per collection.
8
8
 
9
+ Sample app at https://github.com/vinova/simple_qa
10
+
9
11
  == Installation
10
12
 
11
13
  === Rails 3.0.x
@@ -27,7 +29,7 @@ post.rb
27
29
  include Mongoid::Voteable
28
30
 
29
31
  # set points for each vote
30
- vote_point self, :up => +1, :down => -1
32
+ voteable self, :up => +1, :down => -1
31
33
 
32
34
  references_many :comments
33
35
  end
@@ -42,10 +44,10 @@ comment.rb
42
44
 
43
45
  referenced_in :post
44
46
 
45
- vote_point self, :up => +1, :down => -3
47
+ voteable self, :up => +1, :down => -3
46
48
 
47
49
  # each vote on a comment can affect votes count and point of the related post as well
48
- vote_point Post, :up => +2, :down => -1
50
+ voteable Post, :up => +2, :down => -1
49
51
  end
50
52
 
51
53
  user.rb
@@ -79,6 +81,15 @@ user.rb
79
81
 
80
82
  @user.unvote(@comment)
81
83
 
84
+ === Re-generate counters and vote points
85
+
86
+ Rails
87
+ rake db:mongoid:voteable:remake_stats
88
+
89
+ Ruby
90
+ Mongoid::Voteable::Stats.remake
91
+
92
+
82
93
  == Credits
83
94
 
84
95
  * Alex N. - Author
data/TODO CHANGED
@@ -1,2 +1 @@
1
1
  * Input options hash validations
2
- * Add rake task to update {votes, votes_point}_count
@@ -59,8 +59,8 @@
59
59
 
60
60
 
61
61
  <dt class="r1 last">Defined in:</dt>
62
- <dd class="r1 last">lib/mongoid/voter.rb<span class="defines">,<br />
63
- lib/mongoid/voteable.rb</span>
62
+ <dd class="r1 last">lib/voteable_mongoid/voter.rb<span class="defines">,<br />
63
+ lib/voteable_mongoid/voteable.rb,<br /> lib/voteable_mongoid/voteable/stats.rb</span>
64
64
  </dd>
65
65
 
66
66
  </dl>
@@ -84,7 +84,7 @@
84
84
  </div>
85
85
 
86
86
  <div id="footer">
87
- Generated on Wed Mar 30 11:06:27 2011 by
87
+ Generated on Wed Mar 30 22:06:28 2011 by
88
88
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
89
89
  0.6.5 (ruby-1.8.7).
90
90
  </div>
@@ -63,22 +63,34 @@
63
63
 
64
64
 
65
65
  <dt class="r2 last">Defined in:</dt>
66
- <dd class="r2 last">lib/mongoid/voteable.rb</dd>
66
+ <dd class="r2 last">lib/voteable_mongoid/voteable.rb<span class="defines">,<br />
67
+ lib/voteable_mongoid/voteable/stats.rb</span>
68
+ </dd>
67
69
 
68
70
  </dl>
69
71
  <div class="clear"></div>
70
72
 
73
+ <h2>Defined Under Namespace</h2>
74
+ <p class="children">
75
+
76
+
77
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Voteable/Stats.html" title="Mongoid::Voteable::Stats (module)">Stats</a></span>
78
+
79
+
80
+
81
+
82
+ </p>
71
83
 
72
84
  <h2>Constant Summary</h2>
73
85
 
74
86
  <dl class="constants">
75
87
 
76
- <dt id="VOTE_POINT-constant" class="">VOTE_POINT =
88
+ <dt id="VOTEABLE-constant" class="">VOTEABLE =
77
89
  <div class="docstring">
78
90
  <div class="discussion">
79
91
 
80
92
  <p>How many points should be assigned for each up or down vote. This hash
81
- should be accessed and manipulated using Voteable.vote_point method</p>
93
+ should manipulated using voteable method</p>
82
94
 
83
95
 
84
96
  </div>
@@ -124,29 +136,6 @@ should be accessed and manipulated using Voteable.vote_point method</p>
124
136
  <p>Array of down voter ids.</p>
125
137
  </div></span>
126
138
 
127
- </li>
128
-
129
-
130
- <li class="public ">
131
- <span class="summary_signature">
132
-
133
- <a href="#down_votes_count-instance_method" title="#down_votes_count (instance method)">- (Object) <strong>down_votes_count</strong> </a>
134
-
135
-
136
-
137
- </span>
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
-
146
- <span class="summary_desc"><div class='inline'>
147
- <p>Get the number of down votes.</p>
148
- </div></span>
149
-
150
139
  </li>
151
140
 
152
141
 
@@ -170,29 +159,6 @@ should be accessed and manipulated using Voteable.vote_point method</p>
170
159
  <p>Array of up voter ids.</p>
171
160
  </div></span>
172
161
 
173
- </li>
174
-
175
-
176
- <li class="public ">
177
- <span class="summary_signature">
178
-
179
- <a href="#up_votes_count-instance_method" title="#up_votes_count (instance method)">- (Object) <strong>up_votes_count</strong> </a>
180
-
181
-
182
-
183
- </span>
184
-
185
-
186
-
187
-
188
-
189
-
190
-
191
-
192
- <span class="summary_desc"><div class='inline'>
193
- <p>Get the number of up votes.</p>
194
- </div></span>
195
-
196
162
  </li>
197
163
 
198
164
 
@@ -245,30 +211,7 @@ should be accessed and manipulated using Voteable.vote_point method</p>
245
211
  <li class="public ">
246
212
  <span class="summary_signature">
247
213
 
248
- <a href="#votes_count-instance_method" title="#votes_count (instance method)">- (Object) <strong>votes_count</strong> </a>
249
-
250
-
251
-
252
- </span>
253
-
254
-
255
-
256
-
257
-
258
-
259
-
260
-
261
- <span class="summary_desc"><div class='inline'>
262
- <p>Get the number of votes count.</p>
263
- </div></span>
264
-
265
- </li>
266
-
267
-
268
- <li class="public ">
269
- <span class="summary_signature">
270
-
271
- <a href="#votes_point-instance_method" title="#votes_point (instance method)">- (Object) <strong>votes_point</strong> </a>
214
+ <a href="#voteable-instance_method" title="#voteable (instance method)">- (Object) <strong>voteable</strong> </a>
272
215
 
273
216
 
274
217
 
@@ -281,9 +224,7 @@ should be accessed and manipulated using Voteable.vote_point method</p>
281
224
 
282
225
 
283
226
 
284
- <span class="summary_desc"><div class='inline'>
285
- <p>Get the votes point.</p>
286
- </div></span>
227
+ <span class="summary_desc"><div class='inline'></div></span>
287
228
 
288
229
  </li>
289
230
 
@@ -321,12 +262,12 @@ should be accessed and manipulated using Voteable.vote_point method</p>
321
262
  <pre class="lines">
322
263
 
323
264
 
324
- 222
325
- 223
326
- 224</pre>
265
+ 238
266
+ 239
267
+ 240</pre>
327
268
  </td>
328
269
  <td>
329
- <pre class="code"><span class="info file"># File 'lib/mongoid/voteable.rb', line 222</span>
270
+ <pre class="code"><span class="info file"># File 'lib/voteable_mongoid/voteable.rb', line 238</span>
330
271
 
331
272
  <span class='def def kw'>def</span> <span class='down_voter_ids identifier id'>down_voter_ids</span>
332
273
  <span class='voteable identifier id'>voteable</span><span class='dot token'>.</span><span class='try identifier id'>try</span><span class='lparen token'>(</span><span class='symbol val'>:[]</span><span class='comma token'>,</span> <span class='string val'>'down_voter_ids'</span><span class='rparen token'>)</span> <span class='orop op'>||</span> <span class='lbrack token'>[</span><span class='rbrack token'>]</span>
@@ -335,45 +276,6 @@ should be accessed and manipulated using Voteable.vote_point method</p>
335
276
  </td>
336
277
  </tr>
337
278
  </table>
338
- </div>
339
-
340
- <div class="method_details ">
341
- <p class="signature " id="down_votes_count-instance_method">
342
-
343
- - (<tt>Object</tt>) <strong>down_votes_count</strong>
344
-
345
-
346
-
347
- </p><div class="docstring">
348
- <div class="discussion">
349
-
350
- <p>Get the number of down votes</p>
351
-
352
-
353
- </div>
354
- </div>
355
- <div class="tags">
356
-
357
- </div><table class="source_code">
358
- <tr>
359
- <td>
360
- <pre class="lines">
361
-
362
-
363
- 202
364
- 203
365
- 204</pre>
366
- </td>
367
- <td>
368
- <pre class="code"><span class="info file"># File 'lib/mongoid/voteable.rb', line 202</span>
369
-
370
- <span class='def def kw'>def</span> <span class='down_votes_count identifier id'>down_votes_count</span>
371
- <span class='down_voter_ids identifier id'>down_voter_ids</span><span class='dot token'>.</span><span class='length identifier id'>length</span>
372
- <span class='end end kw'>end</span>
373
- </pre>
374
- </td>
375
- </tr>
376
- </table>
377
279
  </div>
378
280
 
379
281
  <div class="method_details ">
@@ -399,12 +301,12 @@ should be accessed and manipulated using Voteable.vote_point method</p>
399
301
  <pre class="lines">
400
302
 
401
303
 
402
- 217
403
- 218
404
- 219</pre>
304
+ 233
305
+ 234
306
+ 235</pre>
405
307
  </td>
406
308
  <td>
407
- <pre class="code"><span class="info file"># File 'lib/mongoid/voteable.rb', line 217</span>
309
+ <pre class="code"><span class="info file"># File 'lib/voteable_mongoid/voteable.rb', line 233</span>
408
310
 
409
311
  <span class='def def kw'>def</span> <span class='up_voter_ids identifier id'>up_voter_ids</span>
410
312
  <span class='voteable identifier id'>voteable</span><span class='dot token'>.</span><span class='try identifier id'>try</span><span class='lparen token'>(</span><span class='symbol val'>:[]</span><span class='comma token'>,</span> <span class='string val'>'up_voter_ids'</span><span class='rparen token'>)</span> <span class='orop op'>||</span> <span class='lbrack token'>[</span><span class='rbrack token'>]</span>
@@ -413,45 +315,6 @@ should be accessed and manipulated using Voteable.vote_point method</p>
413
315
  </td>
414
316
  </tr>
415
317
  </table>
416
- </div>
417
-
418
- <div class="method_details ">
419
- <p class="signature " id="up_votes_count-instance_method">
420
-
421
- - (<tt>Object</tt>) <strong>up_votes_count</strong>
422
-
423
-
424
-
425
- </p><div class="docstring">
426
- <div class="discussion">
427
-
428
- <p>Get the number of up votes</p>
429
-
430
-
431
- </div>
432
- </div>
433
- <div class="tags">
434
-
435
- </div><table class="source_code">
436
- <tr>
437
- <td>
438
- <pre class="lines">
439
-
440
-
441
- 197
442
- 198
443
- 199</pre>
444
- </td>
445
- <td>
446
- <pre class="code"><span class="info file"># File 'lib/mongoid/voteable.rb', line 197</span>
447
-
448
- <span class='def def kw'>def</span> <span class='up_votes_count identifier id'>up_votes_count</span>
449
- <span class='up_voter_ids identifier id'>up_voter_ids</span><span class='dot token'>.</span><span class='length identifier id'>length</span>
450
- <span class='end end kw'>end</span>
451
- </pre>
452
- </td>
453
- </tr>
454
- </table>
455
318
  </div>
456
319
 
457
320
  <div class="method_details ">
@@ -502,21 +365,21 @@ should be accessed and manipulated using Voteable.vote_point method</p>
502
365
  <pre class="lines">
503
366
 
504
367
 
505
- 174
506
- 175
507
- 176
508
- 177
509
- 178
510
- 179
511
- 180
512
- 181
513
- 182
514
- 183
515
- 184
516
- 185</pre>
368
+ 210
369
+ 211
370
+ 212
371
+ 213
372
+ 214
373
+ 215
374
+ 216
375
+ 217
376
+ 218
377
+ 219
378
+ 220
379
+ 221</pre>
517
380
  </td>
518
381
  <td>
519
- <pre class="code"><span class="info file"># File 'lib/mongoid/voteable.rb', line 174</span>
382
+ <pre class="code"><span class="info file"># File 'lib/voteable_mongoid/voteable.rb', line 210</span>
520
383
 
521
384
  <span class='def def kw'>def</span> <span class='vote identifier id'>vote</span><span class='lparen token'>(</span><span class='options identifier id'>options</span><span class='rparen token'>)</span>
522
385
  <span class='options identifier id'>options</span><span class='lbrack token'>[</span><span class='symbol val'>:votee_id</span><span class='rbrack token'>]</span> <span class='opasgn op'>||=</span> <span class='_id identifier id'>_id</span>
@@ -579,14 +442,14 @@ should be accessed and manipulated using Voteable.vote_point method</p>
579
442
  <pre class="lines">
580
443
 
581
444
 
582
- 190
583
- 191
584
- 192
585
- 193
586
- 194</pre>
445
+ 226
446
+ 227
447
+ 228
448
+ 229
449
+ 230</pre>
587
450
  </td>
588
451
  <td>
589
- <pre class="code"><span class="info file"># File 'lib/mongoid/voteable.rb', line 190</span>
452
+ <pre class="code"><span class="info file"># File 'lib/voteable_mongoid/voteable.rb', line 226</span>
590
453
 
591
454
  <span class='def def kw'>def</span> <span class='vote_value identifier id'>vote_value</span><span class='lparen token'>(</span><span class='voter identifier id'>voter</span><span class='rparen token'>)</span>
592
455
  <span class='voter_id identifier id'>voter_id</span> <span class='assign token'>=</span> <span class='voter identifier id'>voter</span><span class='dot token'>.</span><span class='is_a? fid id'>is_a?</span><span class='lparen token'>(</span><span class='BSON constant id'>BSON</span><span class='colon2 op'>::</span><span class='ObjectId constant id'>ObjectId</span><span class='rparen token'>)</span> <span class='question op'>?</span> <span class='voter identifier id'>voter</span> <span class='colon op'>:</span> <span class='voter identifier id'>voter</span><span class='dot token'>.</span><span class='_id identifier id'>_id</span>
@@ -600,76 +463,27 @@ should be accessed and manipulated using Voteable.vote_point method</p>
600
463
  </div>
601
464
 
602
465
  <div class="method_details ">
603
- <p class="signature " id="votes_count-instance_method">
604
-
605
- - (<tt>Object</tt>) <strong>votes_count</strong>
606
-
607
-
608
-
609
- </p><div class="docstring">
610
- <div class="discussion">
611
-
612
- <p>Get the number of votes count</p>
613
-
614
-
615
- </div>
616
- </div>
617
- <div class="tags">
618
-
619
- </div><table class="source_code">
620
- <tr>
621
- <td>
622
- <pre class="lines">
623
-
624
-
625
- 207
626
- 208
627
- 209</pre>
628
- </td>
629
- <td>
630
- <pre class="code"><span class="info file"># File 'lib/mongoid/voteable.rb', line 207</span>
631
-
632
- <span class='def def kw'>def</span> <span class='votes_count identifier id'>votes_count</span>
633
- <span class='voteable identifier id'>voteable</span><span class='dot token'>.</span><span class='try identifier id'>try</span><span class='lparen token'>(</span><span class='symbol val'>:[]</span><span class='comma token'>,</span> <span class='string val'>'votes_count'</span><span class='rparen token'>)</span> <span class='orop op'>||</span> <span class='integer val'>0</span>
634
- <span class='end end kw'>end</span>
635
- </pre>
636
- </td>
637
- </tr>
638
- </table>
639
- </div>
640
-
641
- <div class="method_details ">
642
- <p class="signature " id="votes_point-instance_method">
643
-
644
- - (<tt>Object</tt>) <strong>votes_point</strong>
466
+ <p class="signature " id="voteable-instance_method">
645
467
 
646
-
468
+ - (<tt>Object</tt>) <strong>voteable</strong>
647
469
 
648
- </p><div class="docstring">
649
- <div class="discussion">
650
-
651
- <p>Get the votes point</p>
652
-
653
470
 
654
- </div>
655
- </div>
656
- <div class="tags">
657
471
 
658
- </div><table class="source_code">
472
+ </p><table class="source_code">
659
473
  <tr>
660
474
  <td>
661
475
  <pre class="lines">
662
476
 
663
477
 
664
- 212
665
- 213
666
- 214</pre>
478
+ 242
479
+ 243
480
+ 244</pre>
667
481
  </td>
668
482
  <td>
669
- <pre class="code"><span class="info file"># File 'lib/mongoid/voteable.rb', line 212</span>
483
+ <pre class="code"><span class="info file"># File 'lib/voteable_mongoid/voteable.rb', line 242</span>
670
484
 
671
- <span class='def def kw'>def</span> <span class='votes_point identifier id'>votes_point</span>
672
- <span class='voteable identifier id'>voteable</span><span class='dot token'>.</span><span class='try identifier id'>try</span><span class='lparen token'>(</span><span class='symbol val'>:[]</span><span class='comma token'>,</span> <span class='string val'>'votes_point'</span><span class='rparen token'>)</span> <span class='orop op'>||</span> <span class='integer val'>0</span>
485
+ <span class='def def kw'>def</span> <span class='voteable identifier id'>voteable</span>
486
+ <span class='read_attribute identifier id'>read_attribute</span><span class='lparen token'>(</span><span class='string val'>'voteable'</span><span class='rparen token'>)</span>
673
487
  <span class='end end kw'>end</span>
674
488
  </pre>
675
489
  </td>
@@ -682,7 +496,7 @@ should be accessed and manipulated using Voteable.vote_point method</p>
682
496
  </div>
683
497
 
684
498
  <div id="footer">
685
- Generated on Wed Mar 30 11:06:27 2011 by
499
+ Generated on Wed Mar 30 22:06:28 2011 by
686
500
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
687
501
  0.6.5 (ruby-1.8.7).
688
502
  </div>