voteable_mongoid 0.4.5 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +15 -4
 - data/TODO +0 -1
 - data/doc/Mongoid.html +3 -3
 - data/doc/Mongoid/Voteable.html +54 -240
 - data/doc/Mongoid/Voteable/Stats.html +733 -0
 - data/doc/Mongoid/Voter.html +7 -7
 - data/doc/Rails.html +101 -0
 - data/doc/Rails/VoteableMongoid.html +101 -0
 - data/doc/Rails/VoteableMongoid/Railtie.html +110 -0
 - data/doc/VoteableMongoid.html +2 -2
 - data/doc/_index.html +43 -1
 - data/doc/class_list.html +1 -1
 - data/doc/file.README.html +21 -6
 - data/doc/index.html +21 -6
 - data/doc/method_list.html +59 -11
 - data/doc/top-level-namespace.html +2 -2
 - data/lib/voteable_mongoid/version.rb +1 -1
 - data/lib/voteable_mongoid/voteable.rb +13 -13
 - data/lib/voteable_mongoid/voteable/stats.rb +5 -4
 - data/spec/models/comment.rb +2 -2
 - data/spec/models/post.rb +1 -1
 - data/voteable_mongoid.gemspec +1 -0
 - metadata +7 -4
 - data/VERSION +0 -0
 
    
        data/doc/class_list.html
    CHANGED
    
    | 
         @@ -27,7 +27,7 @@ 
     | 
|
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
                  <ul id="full_list" class="class">
         
     | 
| 
       29 
29 
     | 
    
         
             
                    <li><span class='object_link'><a href="top-level-namespace.html" title=" (root)">Top Level Namespace</a></span></li>
         
     | 
| 
       30 
     | 
    
         
            -
            <li><a class='toggle'></a> <span class='object_link'><a href="Mongoid.html" title="Mongoid (module)">Mongoid</a></span><small class='search_info'>Top Level Namespace</small></li><ul><li><span class='object_link'><a href="Mongoid/Voteable.html" title="Mongoid::Voteable (module)">Voteable</a></span><small class='search_info'>Mongoid</small></li><li><span class='object_link'><a href="Mongoid/Voter.html" title="Mongoid::Voter (module)">Voter</a></span><small class='search_info'>Mongoid</small></li></ul><li><span class='object_link'><a href="VoteableMongoid.html" title="VoteableMongoid (module)">VoteableMongoid</a></span><small class='search_info'>Top Level Namespace</small></li>
         
     | 
| 
      
 30 
     | 
    
         
            +
            <li><a class='toggle'></a> <span class='object_link'><a href="Mongoid.html" title="Mongoid (module)">Mongoid</a></span><small class='search_info'>Top Level Namespace</small></li><ul><li><a class='toggle'></a> <span class='object_link'><a href="Mongoid/Voteable.html" title="Mongoid::Voteable (module)">Voteable</a></span><small class='search_info'>Mongoid</small></li><ul><li><span class='object_link'><a href="Mongoid/Voteable/Stats.html" title="Mongoid::Voteable::Stats (module)">Stats</a></span><small class='search_info'>Mongoid::Voteable</small></li></ul><li><span class='object_link'><a href="Mongoid/Voter.html" title="Mongoid::Voter (module)">Voter</a></span><small class='search_info'>Mongoid</small></li></ul><li><a class='toggle'></a> <span class='object_link'><a href="Rails.html" title="Rails (module)">Rails</a></span><small class='search_info'>Top Level Namespace</small></li><ul><li><a class='toggle'></a> <span class='object_link'><a href="Rails/VoteableMongoid.html" title="Rails::VoteableMongoid (module)">VoteableMongoid</a></span><small class='search_info'>Rails</small></li><ul><li><span class='object_link'><a href="Rails/VoteableMongoid/Railtie.html" title="Rails::VoteableMongoid::Railtie (class)">Railtie</a></span> < Railtie<small class='search_info'>Rails::VoteableMongoid</small></li></ul></ul><li><span class='object_link'><a href="VoteableMongoid.html" title="VoteableMongoid (module)">VoteableMongoid</a></span><small class='search_info'>Top Level Namespace</small></li>
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
32 
     | 
    
         
             
                  </ul>
         
     | 
| 
       33 
33 
     | 
    
         
             
                </div>
         
     | 
    
        data/doc/file.README.html
    CHANGED
    
    | 
         @@ -47,12 +47,15 @@ 
     | 
|
| 
       47 
47 
     | 
    
         
             
            <p>Voteable Mongoid allows you to make your Mongoid::Document objects voteable
         
     | 
| 
       48 
48 
     | 
    
         
             
            (up or down)</p>
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
            <p>For instance, in a  
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
      
 50 
     | 
    
         
            +
            <p>For instance, in a forum, a user can vote up (or down) on a post or a
         
     | 
| 
      
 51 
     | 
    
         
            +
            comment.</p>
         
     | 
| 
       52 
52 
     | 
    
         | 
| 
       53 
53 
     | 
    
         
             
            <p>When user provided enough information, voteable_mongoid will use only one
         
     | 
| 
       54 
54 
     | 
    
         
             
            update-in-place operation per collection.</p>
         
     | 
| 
       55 
55 
     | 
    
         | 
| 
      
 56 
     | 
    
         
            +
            <p>Sample app at <a
         
     | 
| 
      
 57 
     | 
    
         
            +
            href="https://github.com/vinova/simple_qa">github.com/vinova/simple_qa</a></p>
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
       56 
59 
     | 
    
         
             
            <h2>Installation</h2>
         
     | 
| 
       57 
60 
     | 
    
         | 
| 
       58 
61 
     | 
    
         
             
            <h3>Rails 3.0.x</h3>
         
     | 
| 
         @@ -75,7 +78,7 @@ update-in-place operation per collection.</p> 
     | 
|
| 
       75 
78 
     | 
    
         
             
              <span class='include identifier id'>include</span> <span class='Mongoid constant id'>Mongoid</span><span class='colon2 op'>::</span><span class='Voteable constant id'>Voteable</span>
         
     | 
| 
       76 
79 
     | 
    
         | 
| 
       77 
80 
     | 
    
         
             
              <span class='comment val'># set points for each vote</span>
         
     | 
| 
       78 
     | 
    
         
            -
              <span class=' 
     | 
| 
      
 81 
     | 
    
         
            +
              <span class='voteable identifier id'>voteable</span> <span class='self self kw'>self</span><span class='comma token'>,</span> <span class='symbol val'>:up</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='integer val'>+1</span><span class='comma token'>,</span> <span class='symbol val'>:down</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='integer val'>-1</span>
         
     | 
| 
       79 
82 
     | 
    
         | 
| 
       80 
83 
     | 
    
         
             
              <span class='references_many identifier id'>references_many</span> <span class='symbol val'>:comments</span>
         
     | 
| 
       81 
84 
     | 
    
         
             
            <span class='end end kw'>end</span>
         
     | 
| 
         @@ -91,10 +94,10 @@ update-in-place operation per collection.</p> 
     | 
|
| 
       91 
94 
     | 
    
         | 
| 
       92 
95 
     | 
    
         
             
              <span class='referenced_in identifier id'>referenced_in</span> <span class='symbol val'>:post</span>
         
     | 
| 
       93 
96 
     | 
    
         | 
| 
       94 
     | 
    
         
            -
              <span class=' 
     | 
| 
      
 97 
     | 
    
         
            +
              <span class='voteable identifier id'>voteable</span> <span class='self self kw'>self</span><span class='comma token'>,</span> <span class='symbol val'>:up</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='integer val'>+1</span><span class='comma token'>,</span> <span class='symbol val'>:down</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='integer val'>-3</span>
         
     | 
| 
       95 
98 
     | 
    
         | 
| 
       96 
99 
     | 
    
         
             
              <span class='comment val'># each vote on a comment can affect votes count and point of the related post as well</span>
         
     | 
| 
       97 
     | 
    
         
            -
              <span class=' 
     | 
| 
      
 100 
     | 
    
         
            +
              <span class='voteable identifier id'>voteable</span> <span class='Post constant id'>Post</span><span class='comma token'>,</span> <span class='symbol val'>:up</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='integer val'>+2</span><span class='comma token'>,</span> <span class='symbol val'>:down</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='integer val'>-1</span>
         
     | 
| 
       98 
101 
     | 
    
         
             
            <span class='end end kw'>end</span>
         
     | 
| 
       99 
102 
     | 
    
         
             
            </pre>
         
     | 
| 
       100 
103 
     | 
    
         | 
| 
         @@ -134,6 +137,18 @@ update-in-place operation per collection.</p> 
     | 
|
| 
       134 
137 
     | 
    
         
             
            <pre class="code"><span class='@user ivar id'>@user</span><span class='dot token'>.</span><span class='unvote identifier id'>unvote</span><span class='lparen token'>(</span><span class='@comment ivar id'>@comment</span><span class='rparen token'>)</span>
         
     | 
| 
       135 
138 
     | 
    
         
             
            </pre>
         
     | 
| 
       136 
139 
     | 
    
         | 
| 
      
 140 
     | 
    
         
            +
            <h3>Re-generate counters and vote points</h3>
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
      
 142 
     | 
    
         
            +
            <p>Rails</p>
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
            <pre class="code"><span class='rake identifier id'>rake</span> <span class='db identifier id'>db</span><span class='symbol val'>:mongoid</span><span class='symbol val'>:voteable</span><span class='symbol val'>:remake_stats</span>
         
     | 
| 
      
 145 
     | 
    
         
            +
            </pre>
         
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
      
 147 
     | 
    
         
            +
            <p>Ruby</p>
         
     | 
| 
      
 148 
     | 
    
         
            +
             
     | 
| 
      
 149 
     | 
    
         
            +
            <pre class="code"><span class='Mongoid constant id'>Mongoid</span><span class='colon2 op'>::</span><span class='Voteable constant id'>Voteable</span><span class='colon2 op'>::</span><span class='Stats constant id'>Stats</span><span class='dot token'>.</span><span class='remake identifier id'>remake</span>
         
     | 
| 
      
 150 
     | 
    
         
            +
            </pre>
         
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
       137 
152 
     | 
    
         
             
            <h2>Credits</h2>
         
     | 
| 
       138 
153 
     | 
    
         
             
            <ul><li>
         
     | 
| 
       139 
154 
     | 
    
         
             
            <p>Alex N. - Author</p>
         
     | 
| 
         @@ -148,7 +163,7 @@ href="http://vinova.sg">vinova.sg</a>)</p> 
     | 
|
| 
       148 
163 
     | 
    
         
             
            </div></div>
         
     | 
| 
       149 
164 
     | 
    
         | 
| 
       150 
165 
     | 
    
         
             
                <div id="footer">
         
     | 
| 
       151 
     | 
    
         
            -
              Generated on Wed Mar 30  
     | 
| 
      
 166 
     | 
    
         
            +
              Generated on Wed Mar 30 22:06:27 2011 by 
         
     | 
| 
       152 
167 
     | 
    
         
             
              <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
         
     | 
| 
       153 
168 
     | 
    
         
             
              0.6.5 (ruby-1.8.7).
         
     | 
| 
       154 
169 
     | 
    
         
             
            </div>
         
     | 
    
        data/doc/index.html
    CHANGED
    
    | 
         @@ -47,12 +47,15 @@ 
     | 
|
| 
       47 
47 
     | 
    
         
             
            <p>Voteable Mongoid allows you to make your Mongoid::Document objects voteable
         
     | 
| 
       48 
48 
     | 
    
         
             
            (up or down)</p>
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
            <p>For instance, in a  
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
      
 50 
     | 
    
         
            +
            <p>For instance, in a forum, a user can vote up (or down) on a post or a
         
     | 
| 
      
 51 
     | 
    
         
            +
            comment.</p>
         
     | 
| 
       52 
52 
     | 
    
         | 
| 
       53 
53 
     | 
    
         
             
            <p>When user provided enough information, voteable_mongoid will use only one
         
     | 
| 
       54 
54 
     | 
    
         
             
            update-in-place operation per collection.</p>
         
     | 
| 
       55 
55 
     | 
    
         | 
| 
      
 56 
     | 
    
         
            +
            <p>Sample app at <a
         
     | 
| 
      
 57 
     | 
    
         
            +
            href="https://github.com/vinova/simple_qa">github.com/vinova/simple_qa</a></p>
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
       56 
59 
     | 
    
         
             
            <h2>Installation</h2>
         
     | 
| 
       57 
60 
     | 
    
         | 
| 
       58 
61 
     | 
    
         
             
            <h3>Rails 3.0.x</h3>
         
     | 
| 
         @@ -75,7 +78,7 @@ update-in-place operation per collection.</p> 
     | 
|
| 
       75 
78 
     | 
    
         
             
              <span class='include identifier id'>include</span> <span class='Mongoid constant id'>Mongoid</span><span class='colon2 op'>::</span><span class='Voteable constant id'>Voteable</span>
         
     | 
| 
       76 
79 
     | 
    
         | 
| 
       77 
80 
     | 
    
         
             
              <span class='comment val'># set points for each vote</span>
         
     | 
| 
       78 
     | 
    
         
            -
              <span class=' 
     | 
| 
      
 81 
     | 
    
         
            +
              <span class='voteable identifier id'>voteable</span> <span class='self self kw'>self</span><span class='comma token'>,</span> <span class='symbol val'>:up</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='integer val'>+1</span><span class='comma token'>,</span> <span class='symbol val'>:down</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='integer val'>-1</span>
         
     | 
| 
       79 
82 
     | 
    
         | 
| 
       80 
83 
     | 
    
         
             
              <span class='references_many identifier id'>references_many</span> <span class='symbol val'>:comments</span>
         
     | 
| 
       81 
84 
     | 
    
         
             
            <span class='end end kw'>end</span>
         
     | 
| 
         @@ -91,10 +94,10 @@ update-in-place operation per collection.</p> 
     | 
|
| 
       91 
94 
     | 
    
         | 
| 
       92 
95 
     | 
    
         
             
              <span class='referenced_in identifier id'>referenced_in</span> <span class='symbol val'>:post</span>
         
     | 
| 
       93 
96 
     | 
    
         | 
| 
       94 
     | 
    
         
            -
              <span class=' 
     | 
| 
      
 97 
     | 
    
         
            +
              <span class='voteable identifier id'>voteable</span> <span class='self self kw'>self</span><span class='comma token'>,</span> <span class='symbol val'>:up</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='integer val'>+1</span><span class='comma token'>,</span> <span class='symbol val'>:down</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='integer val'>-3</span>
         
     | 
| 
       95 
98 
     | 
    
         | 
| 
       96 
99 
     | 
    
         
             
              <span class='comment val'># each vote on a comment can affect votes count and point of the related post as well</span>
         
     | 
| 
       97 
     | 
    
         
            -
              <span class=' 
     | 
| 
      
 100 
     | 
    
         
            +
              <span class='voteable identifier id'>voteable</span> <span class='Post constant id'>Post</span><span class='comma token'>,</span> <span class='symbol val'>:up</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='integer val'>+2</span><span class='comma token'>,</span> <span class='symbol val'>:down</span> <span class='assign token'>=</span><span class='gt op'>></span> <span class='integer val'>-1</span>
         
     | 
| 
       98 
101 
     | 
    
         
             
            <span class='end end kw'>end</span>
         
     | 
| 
       99 
102 
     | 
    
         
             
            </pre>
         
     | 
| 
       100 
103 
     | 
    
         | 
| 
         @@ -134,6 +137,18 @@ update-in-place operation per collection.</p> 
     | 
|
| 
       134 
137 
     | 
    
         
             
            <pre class="code"><span class='@user ivar id'>@user</span><span class='dot token'>.</span><span class='unvote identifier id'>unvote</span><span class='lparen token'>(</span><span class='@comment ivar id'>@comment</span><span class='rparen token'>)</span>
         
     | 
| 
       135 
138 
     | 
    
         
             
            </pre>
         
     | 
| 
       136 
139 
     | 
    
         | 
| 
      
 140 
     | 
    
         
            +
            <h3>Re-generate counters and vote points</h3>
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
      
 142 
     | 
    
         
            +
            <p>Rails</p>
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
            <pre class="code"><span class='rake identifier id'>rake</span> <span class='db identifier id'>db</span><span class='symbol val'>:mongoid</span><span class='symbol val'>:voteable</span><span class='symbol val'>:remake_stats</span>
         
     | 
| 
      
 145 
     | 
    
         
            +
            </pre>
         
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
      
 147 
     | 
    
         
            +
            <p>Ruby</p>
         
     | 
| 
      
 148 
     | 
    
         
            +
             
     | 
| 
      
 149 
     | 
    
         
            +
            <pre class="code"><span class='Mongoid constant id'>Mongoid</span><span class='colon2 op'>::</span><span class='Voteable constant id'>Voteable</span><span class='colon2 op'>::</span><span class='Stats constant id'>Stats</span><span class='dot token'>.</span><span class='remake identifier id'>remake</span>
         
     | 
| 
      
 150 
     | 
    
         
            +
            </pre>
         
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
       137 
152 
     | 
    
         
             
            <h2>Credits</h2>
         
     | 
| 
       138 
153 
     | 
    
         
             
            <ul><li>
         
     | 
| 
       139 
154 
     | 
    
         
             
            <p>Alex N. - Author</p>
         
     | 
| 
         @@ -148,7 +163,7 @@ href="http://vinova.sg">vinova.sg</a>)</p> 
     | 
|
| 
       148 
163 
     | 
    
         
             
            </div></div>
         
     | 
| 
       149 
164 
     | 
    
         | 
| 
       150 
165 
     | 
    
         
             
                <div id="footer">
         
     | 
| 
       151 
     | 
    
         
            -
              Generated on Wed Mar 30  
     | 
| 
      
 166 
     | 
    
         
            +
              Generated on Wed Mar 30 22:06:27 2011 by 
         
     | 
| 
       152 
167 
     | 
    
         
             
              <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
         
     | 
| 
       153 
168 
     | 
    
         
             
              0.6.5 (ruby-1.8.7).
         
     | 
| 
       154 
169 
     | 
    
         
             
            </div>
         
     | 
    
        data/doc/method_list.html
    CHANGED
    
    | 
         @@ -37,14 +37,38 @@ 
     | 
|
| 
       37 
37 
     | 
    
         | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
              <li class="r2 ">
         
     | 
| 
       40 
     | 
    
         
            -
                <span class='object_link'><a href="Mongoid/Voteable.html#down_votes_count-instance_method" title="Mongoid::Voteable#down_votes_count (method)">#down_votes_count</a></span> 
         
     | 
| 
      
 40 
     | 
    
         
            +
                <span class='object_link'><a href="Mongoid/Voteable/Stats.html#down_votes_count-instance_method" title="Mongoid::Voteable::Stats#down_votes_count (method)">#down_votes_count</a></span> 
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
     | 
    
         
            -
                  <small>Mongoid::Voteable</small>
         
     | 
| 
      
 42 
     | 
    
         
            +
                  <small>Mongoid::Voteable::Stats</small>
         
     | 
| 
      
 43 
     | 
    
         
            +
                
         
     | 
| 
      
 44 
     | 
    
         
            +
              </li>
         
     | 
| 
      
 45 
     | 
    
         
            +
              
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
              <li class="r1 ">
         
     | 
| 
      
 48 
     | 
    
         
            +
                <span class='object_link'><a href="Mongoid/Voteable/Stats.html#remake-class_method" title="Mongoid::Voteable::Stats.remake (method)">remake</a></span> 
         
     | 
| 
      
 49 
     | 
    
         
            +
                
         
     | 
| 
      
 50 
     | 
    
         
            +
                  <small>Mongoid::Voteable::Stats</small>
         
     | 
| 
      
 51 
     | 
    
         
            +
                
         
     | 
| 
      
 52 
     | 
    
         
            +
              </li>
         
     | 
| 
      
 53 
     | 
    
         
            +
              
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
              <li class="r2 ">
         
     | 
| 
      
 56 
     | 
    
         
            +
                <span class='object_link'><a href="Mongoid/Voteable/Stats.html#remake_stats-instance_method" title="Mongoid::Voteable::Stats#remake_stats (method)">#remake_stats</a></span> 
         
     | 
| 
      
 57 
     | 
    
         
            +
                
         
     | 
| 
      
 58 
     | 
    
         
            +
                  <small>Mongoid::Voteable::Stats</small>
         
     | 
| 
       43 
59 
     | 
    
         | 
| 
       44 
60 
     | 
    
         
             
              </li>
         
     | 
| 
       45 
61 
     | 
    
         | 
| 
       46 
62 
     | 
    
         | 
| 
       47 
63 
     | 
    
         
             
              <li class="r1 ">
         
     | 
| 
      
 64 
     | 
    
         
            +
                <span class='object_link'><a href="Mongoid/Voteable/Stats.html#remake_stats-class_method" title="Mongoid::Voteable::Stats.remake_stats (method)">remake_stats</a></span> 
         
     | 
| 
      
 65 
     | 
    
         
            +
                
         
     | 
| 
      
 66 
     | 
    
         
            +
                  <small>Mongoid::Voteable::Stats</small>
         
     | 
| 
      
 67 
     | 
    
         
            +
                
         
     | 
| 
      
 68 
     | 
    
         
            +
              </li>
         
     | 
| 
      
 69 
     | 
    
         
            +
              
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
              <li class="r2 ">
         
     | 
| 
       48 
72 
     | 
    
         
             
                <span class='object_link'><a href="Mongoid/Voter.html#unvote-instance_method" title="Mongoid::Voter#unvote (method)">#unvote</a></span> 
         
     | 
| 
       49 
73 
     | 
    
         | 
| 
       50 
74 
     | 
    
         
             
                  <small>Mongoid::Voter</small>
         
     | 
| 
         @@ -52,7 +76,7 @@ 
     | 
|
| 
       52 
76 
     | 
    
         
             
              </li>
         
     | 
| 
       53 
77 
     | 
    
         | 
| 
       54 
78 
     | 
    
         | 
| 
       55 
     | 
    
         
            -
              <li class=" 
     | 
| 
      
 79 
     | 
    
         
            +
              <li class="r1 ">
         
     | 
| 
       56 
80 
     | 
    
         
             
                <span class='object_link'><a href="Mongoid/Voteable.html#up_voter_ids-instance_method" title="Mongoid::Voteable#up_voter_ids (method)">#up_voter_ids</a></span> 
         
     | 
| 
       57 
81 
     | 
    
         | 
| 
       58 
82 
     | 
    
         
             
                  <small>Mongoid::Voteable</small>
         
     | 
| 
         @@ -60,15 +84,31 @@ 
     | 
|
| 
       60 
84 
     | 
    
         
             
              </li>
         
     | 
| 
       61 
85 
     | 
    
         | 
| 
       62 
86 
     | 
    
         | 
| 
      
 87 
     | 
    
         
            +
              <li class="r2 ">
         
     | 
| 
      
 88 
     | 
    
         
            +
                <span class='object_link'><a href="Mongoid/Voteable/Stats.html#up_votes_count-instance_method" title="Mongoid::Voteable::Stats#up_votes_count (method)">#up_votes_count</a></span> 
         
     | 
| 
      
 89 
     | 
    
         
            +
                
         
     | 
| 
      
 90 
     | 
    
         
            +
                  <small>Mongoid::Voteable::Stats</small>
         
     | 
| 
      
 91 
     | 
    
         
            +
                
         
     | 
| 
      
 92 
     | 
    
         
            +
              </li>
         
     | 
| 
      
 93 
     | 
    
         
            +
              
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
       63 
95 
     | 
    
         
             
              <li class="r1 ">
         
     | 
| 
       64 
     | 
    
         
            -
                <span class='object_link'><a href="Mongoid/Voteable.html# 
     | 
| 
      
 96 
     | 
    
         
            +
                <span class='object_link'><a href="Mongoid/Voteable/Stats.html#update_parent_stats-class_method" title="Mongoid::Voteable::Stats.update_parent_stats (method)">update_parent_stats</a></span> 
         
     | 
| 
       65 
97 
     | 
    
         | 
| 
       66 
     | 
    
         
            -
                  <small>Mongoid::Voteable</small>
         
     | 
| 
      
 98 
     | 
    
         
            +
                  <small>Mongoid::Voteable::Stats</small>
         
     | 
| 
       67 
99 
     | 
    
         | 
| 
       68 
100 
     | 
    
         
             
              </li>
         
     | 
| 
       69 
101 
     | 
    
         | 
| 
       70 
102 
     | 
    
         | 
| 
       71 
103 
     | 
    
         
             
              <li class="r2 ">
         
     | 
| 
      
 104 
     | 
    
         
            +
                <span class='object_link'><a href="Mongoid/Voteable/Stats.html#update_parent_stats-instance_method" title="Mongoid::Voteable::Stats#update_parent_stats (method)">#update_parent_stats</a></span> 
         
     | 
| 
      
 105 
     | 
    
         
            +
                
         
     | 
| 
      
 106 
     | 
    
         
            +
                  <small>Mongoid::Voteable::Stats</small>
         
     | 
| 
      
 107 
     | 
    
         
            +
                
         
     | 
| 
      
 108 
     | 
    
         
            +
              </li>
         
     | 
| 
      
 109 
     | 
    
         
            +
              
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
      
 111 
     | 
    
         
            +
              <li class="r1 ">
         
     | 
| 
       72 
112 
     | 
    
         
             
                <span class='object_link'><a href="Mongoid/Voteable.html#vote-instance_method" title="Mongoid::Voteable#vote (method)">#vote</a></span> 
         
     | 
| 
       73 
113 
     | 
    
         | 
| 
       74 
114 
     | 
    
         
             
                  <small>Mongoid::Voteable</small>
         
     | 
| 
         @@ -76,7 +116,7 @@ 
     | 
|
| 
       76 
116 
     | 
    
         
             
              </li>
         
     | 
| 
       77 
117 
     | 
    
         | 
| 
       78 
118 
     | 
    
         | 
| 
       79 
     | 
    
         
            -
              <li class=" 
     | 
| 
      
 119 
     | 
    
         
            +
              <li class="r2 ">
         
     | 
| 
       80 
120 
     | 
    
         
             
                <span class='object_link'><a href="Mongoid/Voter.html#vote-instance_method" title="Mongoid::Voter#vote (method)">#vote</a></span> 
         
     | 
| 
       81 
121 
     | 
    
         | 
| 
       82 
122 
     | 
    
         
             
                  <small>Mongoid::Voter</small>
         
     | 
| 
         @@ -84,6 +124,14 @@ 
     | 
|
| 
       84 
124 
     | 
    
         
             
              </li>
         
     | 
| 
       85 
125 
     | 
    
         | 
| 
       86 
126 
     | 
    
         | 
| 
      
 127 
     | 
    
         
            +
              <li class="r1 ">
         
     | 
| 
      
 128 
     | 
    
         
            +
                <span class='object_link'><a href="Mongoid/Voteable.html#vote_value-instance_method" title="Mongoid::Voteable#vote_value (method)">#vote_value</a></span> 
         
     | 
| 
      
 129 
     | 
    
         
            +
                
         
     | 
| 
      
 130 
     | 
    
         
            +
                  <small>Mongoid::Voteable</small>
         
     | 
| 
      
 131 
     | 
    
         
            +
                
         
     | 
| 
      
 132 
     | 
    
         
            +
              </li>
         
     | 
| 
      
 133 
     | 
    
         
            +
              
         
     | 
| 
      
 134 
     | 
    
         
            +
             
     | 
| 
       87 
135 
     | 
    
         
             
              <li class="r2 ">
         
     | 
| 
       88 
136 
     | 
    
         
             
                <span class='object_link'><a href="Mongoid/Voter.html#vote_value-instance_method" title="Mongoid::Voter#vote_value (method)">#vote_value</a></span> 
         
     | 
| 
       89 
137 
     | 
    
         | 
| 
         @@ -93,7 +141,7 @@ 
     | 
|
| 
       93 
141 
     | 
    
         | 
| 
       94 
142 
     | 
    
         | 
| 
       95 
143 
     | 
    
         
             
              <li class="r1 ">
         
     | 
| 
       96 
     | 
    
         
            -
                <span class='object_link'><a href="Mongoid/Voteable.html# 
     | 
| 
      
 144 
     | 
    
         
            +
                <span class='object_link'><a href="Mongoid/Voteable.html#voteable-instance_method" title="Mongoid::Voteable#voteable (method)">#voteable</a></span> 
         
     | 
| 
       97 
145 
     | 
    
         | 
| 
       98 
146 
     | 
    
         
             
                  <small>Mongoid::Voteable</small>
         
     | 
| 
       99 
147 
     | 
    
         | 
| 
         @@ -117,17 +165,17 @@ 
     | 
|
| 
       117 
165 
     | 
    
         | 
| 
       118 
166 
     | 
    
         | 
| 
       119 
167 
     | 
    
         
             
              <li class="r2 ">
         
     | 
| 
       120 
     | 
    
         
            -
                <span class='object_link'><a href="Mongoid/Voteable.html#votes_count-instance_method" title="Mongoid::Voteable#votes_count (method)">#votes_count</a></span> 
         
     | 
| 
      
 168 
     | 
    
         
            +
                <span class='object_link'><a href="Mongoid/Voteable/Stats.html#votes_count-instance_method" title="Mongoid::Voteable::Stats#votes_count (method)">#votes_count</a></span> 
         
     | 
| 
       121 
169 
     | 
    
         | 
| 
       122 
     | 
    
         
            -
                  <small>Mongoid::Voteable</small>
         
     | 
| 
      
 170 
     | 
    
         
            +
                  <small>Mongoid::Voteable::Stats</small>
         
     | 
| 
       123 
171 
     | 
    
         | 
| 
       124 
172 
     | 
    
         
             
              </li>
         
     | 
| 
       125 
173 
     | 
    
         | 
| 
       126 
174 
     | 
    
         | 
| 
       127 
175 
     | 
    
         
             
              <li class="r1 ">
         
     | 
| 
       128 
     | 
    
         
            -
                <span class='object_link'><a href="Mongoid/Voteable.html#votes_point-instance_method" title="Mongoid::Voteable#votes_point (method)">#votes_point</a></span> 
         
     | 
| 
      
 176 
     | 
    
         
            +
                <span class='object_link'><a href="Mongoid/Voteable/Stats.html#votes_point-instance_method" title="Mongoid::Voteable::Stats#votes_point (method)">#votes_point</a></span> 
         
     | 
| 
       129 
177 
     | 
    
         | 
| 
       130 
     | 
    
         
            -
                  <small>Mongoid::Voteable</small>
         
     | 
| 
      
 178 
     | 
    
         
            +
                  <small>Mongoid::Voteable::Stats</small>
         
     | 
| 
       131 
179 
     | 
    
         | 
| 
       132 
180 
     | 
    
         
             
              </li>
         
     | 
| 
       133 
181 
     | 
    
         | 
| 
         @@ -65,7 +65,7 @@ 
     | 
|
| 
       65 
65 
     | 
    
         
             
            <p class="children">
         
     | 
| 
       66 
66 
     | 
    
         | 
| 
       67 
67 
     | 
    
         | 
| 
       68 
     | 
    
         
            -
                  <strong class="modules">Modules:</strong> <span class='object_link'><a href="Mongoid.html" title="Mongoid (module)">Mongoid</a></span>, <span class='object_link'><a href="VoteableMongoid.html" title="VoteableMongoid (module)">VoteableMongoid</a></span>
         
     | 
| 
      
 68 
     | 
    
         
            +
                  <strong class="modules">Modules:</strong> <span class='object_link'><a href="Mongoid.html" title="Mongoid (module)">Mongoid</a></span>, <span class='object_link'><a href="Rails.html" title="Rails (module)">Rails</a></span>, <span class='object_link'><a href="VoteableMongoid.html" title="VoteableMongoid (module)">VoteableMongoid</a></span>
         
     | 
| 
       69 
69 
     | 
    
         | 
| 
       70 
70 
     | 
    
         | 
| 
       71 
71 
     | 
    
         | 
| 
         @@ -79,7 +79,7 @@ 
     | 
|
| 
       79 
79 
     | 
    
         
             
            </div>
         
     | 
| 
       80 
80 
     | 
    
         | 
| 
       81 
81 
     | 
    
         
             
                <div id="footer">
         
     | 
| 
       82 
     | 
    
         
            -
              Generated on Wed Mar 30  
     | 
| 
      
 82 
     | 
    
         
            +
              Generated on Wed Mar 30 22:06:28 2011 by 
         
     | 
| 
       83 
83 
     | 
    
         
             
              <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
         
     | 
| 
       84 
84 
     | 
    
         
             
              0.6.5 (ruby-1.8.7).
         
     | 
| 
       85 
85 
     | 
    
         
             
            </div>
         
     | 
| 
         @@ -3,13 +3,13 @@ module Mongoid 
     | 
|
| 
       3 
3 
     | 
    
         
             
                extend ActiveSupport::Concern
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
                # How many points should be assigned for each up or down vote.
         
     | 
| 
       6 
     | 
    
         
            -
                # This hash should manipulated using  
     | 
| 
       7 
     | 
    
         
            -
                 
     | 
| 
      
 6 
     | 
    
         
            +
                # This hash should manipulated using voteable method
         
     | 
| 
      
 7 
     | 
    
         
            +
                VOTEABLE = {}
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                included do
         
     | 
| 
       10 
10 
     | 
    
         
             
                  include Mongoid::Voteable::Stats
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
                  def self. 
     | 
| 
      
 12 
     | 
    
         
            +
                  def self.voteable_data_only
         
     | 
| 
       13 
13 
     | 
    
         
             
                    foreign_keys = relations.values.map{ |meta| meta.try(:foreign_key) }.compact
         
     | 
| 
       14 
14 
     | 
    
         
             
                    only(foreign_keys + %w[voteable])
         
     | 
| 
       15 
15 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -18,11 +18,11 @@ module Mongoid 
     | 
|
| 
       18 
18 
     | 
    
         
             
                  # 
         
     | 
| 
       19 
19 
     | 
    
         
             
                  # @param [Hash] options a hash containings:
         
     | 
| 
       20 
20 
     | 
    
         
             
                  # 
         
     | 
| 
       21 
     | 
    
         
            -
                  #  
     | 
| 
       22 
     | 
    
         
            -
                  #  
     | 
| 
       23 
     | 
    
         
            -
                  def self. 
     | 
| 
       24 
     | 
    
         
            -
                     
     | 
| 
       25 
     | 
    
         
            -
                     
     | 
| 
      
 21 
     | 
    
         
            +
                  # voteable self, :up => +1, :down => -3
         
     | 
| 
      
 22 
     | 
    
         
            +
                  # voteable Post, :up => +2, :down => -1, :update_counters => false # skip counter update
         
     | 
| 
      
 23 
     | 
    
         
            +
                  def self.voteable(klass = self, options = nil)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    VOTEABLE[self.name] ||= {}
         
     | 
| 
      
 25 
     | 
    
         
            +
                    VOTEABLE[self.name][klass.name] ||= options
         
     | 
| 
       26 
26 
     | 
    
         
             
                  end
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
                  # We usually need to show current_user his voting value on voteable object
         
     | 
| 
         @@ -49,8 +49,8 @@ module Mongoid 
     | 
|
| 
       49 
49 
     | 
    
         
             
                    voter_id = BSON::ObjectId(voter_id) if voter_id.is_a?(String)
         
     | 
| 
       50 
50 
     | 
    
         | 
| 
       51 
51 
     | 
    
         
             
                    klass = options[:class]
         
     | 
| 
       52 
     | 
    
         
            -
                    klass ||=  
     | 
| 
       53 
     | 
    
         
            -
                    value_point =  
     | 
| 
      
 52 
     | 
    
         
            +
                    klass ||= VOTEABLE.keys.include?(name) ? name : collection.name.classify
         
     | 
| 
      
 53 
     | 
    
         
            +
                    value_point = VOTEABLE[klass][klass]
         
     | 
| 
       54 
54 
     | 
    
         | 
| 
       55 
55 
     | 
    
         
             
                    if options[:revote]
         
     | 
| 
       56 
56 
     | 
    
         
             
                      if value == :up
         
     | 
| 
         @@ -146,10 +146,10 @@ module Mongoid 
     | 
|
| 
       146 
146 
     | 
    
         
             
                      update_result['n'] == 1 )
         
     | 
| 
       147 
147 
     | 
    
         | 
| 
       148 
148 
     | 
    
         
             
                    if successed
         
     | 
| 
       149 
     | 
    
         
            -
                       
     | 
| 
       150 
     | 
    
         
            -
                        # For other class in  
     | 
| 
      
 149 
     | 
    
         
            +
                      VOTEABLE[klass].each do |class_name, value_point|
         
     | 
| 
      
 150 
     | 
    
         
            +
                        # For other class in VOTEABLE options, if is parent of current class
         
     | 
| 
       151 
151 
     | 
    
         
             
                        next unless relation_metadata = relations[class_name.underscore]
         
     | 
| 
       152 
     | 
    
         
            -
                        next unless votee ||= options[:votee] ||  
     | 
| 
      
 152 
     | 
    
         
            +
                        next unless votee ||= options[:votee] || voteable_data_only.where(:id => options[:votee_id]).first
         
     | 
| 
       153 
153 
     | 
    
         
             
                        # If can find current votee foreign_key value for that class
         
     | 
| 
       154 
154 
     | 
    
         
             
                        next unless foreign_key_value = votee.read_attribute(relation_metadata.foreign_key)
         
     | 
| 
       155 
155 
     | 
    
         | 
| 
         @@ -35,17 +35,18 @@ module Mongoid 
     | 
|
| 
       35 
35 
     | 
    
         
             
                    voteable.try(:[], 'votes_point') || 0
         
     | 
| 
       36 
36 
     | 
    
         
             
                  end
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
      
 38 
     | 
    
         
            +
                  # Re-generate vote counters and vote points
         
     | 
| 
       38 
39 
     | 
    
         
             
                  def self.remake(log = false)
         
     | 
| 
       39 
40 
     | 
    
         
             
                    remake_stats(log)
         
     | 
| 
       40 
41 
     | 
    
         
             
                    update_parent_stats(log)
         
     | 
| 
       41 
42 
     | 
    
         
             
                  end
         
     | 
| 
       42 
43 
     | 
    
         | 
| 
       43 
44 
     | 
    
         
             
                  def self.remake_stats(log)
         
     | 
| 
       44 
     | 
    
         
            -
                    Mongoid::Voteable:: 
     | 
| 
      
 45 
     | 
    
         
            +
                    Mongoid::Voteable::VOTEABLE.each do |class_name, value_point|
         
     | 
| 
       45 
46 
     | 
    
         
             
                      klass = class_name.constantize
         
     | 
| 
       46 
47 
     | 
    
         
             
                      klass_value_point = value_point[class_name]
         
     | 
| 
       47 
48 
     | 
    
         
             
                      puts "Generating stats for #{class_name}" if log
         
     | 
| 
       48 
     | 
    
         
            -
                      klass. 
     | 
| 
      
 49 
     | 
    
         
            +
                      klass.voteable_data_only.each{ |doc|
         
     | 
| 
       49 
50 
     | 
    
         
             
                        doc.remake_stats(klass_value_point)
         
     | 
| 
       50 
51 
     | 
    
         
             
                      }
         
     | 
| 
       51 
52 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -64,7 +65,7 @@ module Mongoid 
     | 
|
| 
       64 
65 
     | 
    
         
             
                  end
         
     | 
| 
       65 
66 
     | 
    
         | 
| 
       66 
67 
     | 
    
         
             
                  def self.update_parent_stats(log)
         
     | 
| 
       67 
     | 
    
         
            -
                     
     | 
| 
      
 68 
     | 
    
         
            +
                    VOTEABLE.each do |class_name, value_point|
         
     | 
| 
       68 
69 
     | 
    
         
             
                      klass = class_name.constantize
         
     | 
| 
       69 
70 
     | 
    
         
             
                      value_point.each do |parent_class_name, parent_value_point|
         
     | 
| 
       70 
71 
     | 
    
         
             
                        relation_metadata = klass.relations[parent_class_name.underscore]
         
     | 
| 
         @@ -72,7 +73,7 @@ module Mongoid 
     | 
|
| 
       72 
73 
     | 
    
         
             
                          parent_class = parent_class_name.constantize
         
     | 
| 
       73 
74 
     | 
    
         
             
                          foreign_key = relation_metadata.foreign_key
         
     | 
| 
       74 
75 
     | 
    
         
             
                          puts "Updating stats for #{class_name} > #{parent_class_name}" if log
         
     | 
| 
       75 
     | 
    
         
            -
                          klass. 
     | 
| 
      
 76 
     | 
    
         
            +
                          klass.voteable_data_only.each{ |doc|
         
     | 
| 
       76 
77 
     | 
    
         
             
                            doc.update_parent_stats(parent_class, foreign_key, parent_value_point)
         
     | 
| 
       77 
78 
     | 
    
         
             
                          }
         
     | 
| 
       78 
79 
     | 
    
         
             
                        end
         
     | 
    
        data/spec/models/comment.rb
    CHANGED
    
    | 
         @@ -6,6 +6,6 @@ class Comment 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              referenced_in :post
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
               
     | 
| 
       10 
     | 
    
         
            -
               
     | 
| 
      
 9 
     | 
    
         
            +
              voteable self, :up => +1, :down => -3
         
     | 
| 
      
 10 
     | 
    
         
            +
              voteable Post, :up => +2, :down => -1 #, :not_update_counters => true
         
     | 
| 
       11 
11 
     | 
    
         
             
            end
         
     | 
    
        data/spec/models/post.rb
    CHANGED
    
    
    
        data/voteable_mongoid.gemspec
    CHANGED
    
    | 
         @@ -13,6 +13,7 @@ Gem::Specification.new do |s| 
     | 
|
| 
       13 
13 
     | 
    
         
             
              s.description = %q{Add Up / Down Voting for Mongoid (built for speed by using one Mongodb update-in-place for each collection when provided enough information)}
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
              s.add_dependency 'mongoid', '~> 2.0.0'
         
     | 
| 
      
 16 
     | 
    
         
            +
              
         
     | 
| 
       16 
17 
     | 
    
         
             
              s.add_development_dependency 'rspec'
         
     | 
| 
       17 
18 
     | 
    
         
             
              s.add_development_dependency 'bson_ext'
         
     | 
| 
       18 
19 
     | 
    
         
             
              s.add_development_dependency 'watchr'
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: voteable_mongoid
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash:  
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 11
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 0
         
     | 
| 
       8 
     | 
    
         
            -
              - 4
         
     | 
| 
       9 
8 
     | 
    
         
             
              - 5
         
     | 
| 
       10 
     | 
    
         
            -
               
     | 
| 
      
 9 
     | 
    
         
            +
              - 0
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 0.5.0
         
     | 
| 
       11 
11 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
12 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
13 
     | 
    
         
             
            - Alex Nguyen
         
     | 
| 
         @@ -92,10 +92,13 @@ files: 
     | 
|
| 
       92 
92 
     | 
    
         
             
            - README.rdoc
         
     | 
| 
       93 
93 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       94 
94 
     | 
    
         
             
            - TODO
         
     | 
| 
       95 
     | 
    
         
            -
            - VERSION
         
     | 
| 
       96 
95 
     | 
    
         
             
            - doc/Mongoid.html
         
     | 
| 
       97 
96 
     | 
    
         
             
            - doc/Mongoid/Voteable.html
         
     | 
| 
      
 97 
     | 
    
         
            +
            - doc/Mongoid/Voteable/Stats.html
         
     | 
| 
       98 
98 
     | 
    
         
             
            - doc/Mongoid/Voter.html
         
     | 
| 
      
 99 
     | 
    
         
            +
            - doc/Rails.html
         
     | 
| 
      
 100 
     | 
    
         
            +
            - doc/Rails/VoteableMongoid.html
         
     | 
| 
      
 101 
     | 
    
         
            +
            - doc/Rails/VoteableMongoid/Railtie.html
         
     | 
| 
       99 
102 
     | 
    
         
             
            - doc/VoteableMongoid.html
         
     | 
| 
       100 
103 
     | 
    
         
             
            - doc/_index.html
         
     | 
| 
       101 
104 
     | 
    
         
             
            - doc/class_list.html
         
     |