voterable 0.0.1 → 0.0.2

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.
@@ -1,3 +1,3 @@
1
1
  module Voterable
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -65,16 +65,18 @@ module Voterable
65
65
  votes.collect{|x| x.voteable}.compact
66
66
  end
67
67
 
68
- def self.sort_by(hsh)
68
+ def self.sort_by(hsh = {})
69
69
 
70
70
  hsh[:page] ||= 1
71
71
  hsh[:limit] ||= 30
72
72
  hsh[:period] ||= :all_time
73
73
  hsh[:tally_type] ||= :point
74
74
 
75
+ skip_count = (hsh[:page]-1)*hsh[:limit]
76
+
75
77
  case hsh[:period]
76
78
  when :latest
77
- return self.order_by(:created_at, :desc).page(hsh[:page]).per(hsh[:limit])
79
+ return self.order_by(:created_at, :desc).skip(skip_count)
78
80
  when :all_time
79
81
  index = '0.'
80
82
  when :year
@@ -89,7 +91,7 @@ module Voterable
89
91
 
90
92
  string = "tallys." + index + hsh[:tally_type].to_s
91
93
 
92
- self.order_by(string,:desc).page(hsh[:page]).per(hsh[:limit]) #.where(:tallys.exists => true)
94
+ self.order_by(string,:desc).skip(skip_count) #.where(:tallys.exists => true)
93
95
  end
94
96
 
95
97
 
data/spec/factories.rb CHANGED
@@ -19,7 +19,7 @@ FactoryGirl.define do
19
19
  factory :voter do
20
20
  end
21
21
 
22
- factory :voteable do
22
+ factory :voteable, :class => Voteable do
23
23
  association :voter, :factory => :voter
24
24
  end
25
25
 
data/spec/spec_helper.rb CHANGED
@@ -9,9 +9,11 @@ require 'voterable' # and any other gems you need
9
9
  require 'voterable/functions'
10
10
 
11
11
  require 'rspec'
12
+ require 'database_cleaner'
12
13
  require 'factory_girl'
13
14
  FactoryGirl.find_definitions
14
15
 
16
+ #Setup Mongoid Database
15
17
  Mongoid.configure do |config|
16
18
  name = 'voterable_test'
17
19
  host = 'localhost'
@@ -28,4 +30,18 @@ RSpec.configure do |config|
28
30
  config.treat_symbols_as_metadata_keys_with_true_values = true
29
31
  config.filter_run :focus => true
30
32
  config.run_all_when_everything_filtered = true
33
+
34
+
35
+ # Database Cleaner
36
+ config.before(:suite) do
37
+ DatabaseCleaner.strategy = :truncation
38
+ end
39
+
40
+ config.before(:each) do
41
+ DatabaseCleaner.start
42
+ end
43
+
44
+ config.after(:each) do
45
+ DatabaseCleaner.clean
46
+ end
31
47
  end
@@ -0,0 +1,40 @@
1
+
2
+ require 'spec_helper'
3
+
4
+ describe Voterable::Voteable do
5
+
6
+
7
+ context "when voteables are present", :focus => true do
8
+
9
+ before(:each) do
10
+ @voter = Factory(:voter)
11
+ @third = Factory.create(:voteable, :point => -1)
12
+ @first = Factory.create(:voteable, :point => 99)
13
+ @second = Factory.create(:voteable) #Should Assume 0 points
14
+ end
15
+
16
+ it{@third.point.should == -1}
17
+ it{@first.point.should == 99}
18
+ it{@second.point.should == 0}
19
+
20
+ it{Voteable.all.count.should == 3}
21
+ it{@first.tallys.count.should == 1}
22
+ it{@first.tallys.first.name.should == :all_time}
23
+
24
+ context "when sorting by points" do
25
+ before{@all = Voteable.sort_by()}
26
+
27
+ it{@all.count.should == 3}
28
+
29
+ it{@all[0].should == @first}
30
+ it{@all[0].tallys.count.should == 1}
31
+ it{@all[0].tallys.first.name.should == :all_time}
32
+
33
+ it{@all[1].should == @second}
34
+ it{@all[2].should == @third}
35
+ end
36
+
37
+ end
38
+
39
+
40
+ end
data/voterable.gemspec CHANGED
@@ -30,7 +30,6 @@ Gem::Specification.new do |s|
30
30
  s.add_development_dependency "factory_girl", ["~> 2.1.0"]
31
31
 
32
32
  #Automated Testing
33
- s.add_development_dependency "spork", [ "> 0.9.0.rc"]
34
33
  s.add_development_dependency "guard"
35
34
  s.add_development_dependency "guard-rspec"
36
35
  s.add_development_dependency "guard-spork"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: voterable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-12-06 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
16
- requirement: &70277287991300 !ruby/object:Gem::Requirement
16
+ requirement: &70252860449820 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - =
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.3.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70277287991300
24
+ version_requirements: *70252860449820
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bson
27
- requirement: &70277287990780 !ruby/object:Gem::Requirement
27
+ requirement: &70252860448820 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.4.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70277287990780
35
+ version_requirements: *70252860448820
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bson_ext
38
- requirement: &70277287990300 !ruby/object:Gem::Requirement
38
+ requirement: &70252860448120 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - =
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.4.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70277287990300
46
+ version_requirements: *70252860448120
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70277287989900 !ruby/object:Gem::Requirement
49
+ requirement: &70252860447540 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70277287989900
57
+ version_requirements: *70252860447540
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: factory_girl
60
- requirement: &70277287989320 !ruby/object:Gem::Requirement
60
+ requirement: &70252860446980 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,21 +65,10 @@ dependencies:
65
65
  version: 2.1.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70277287989320
69
- - !ruby/object:Gem::Dependency
70
- name: spork
71
- requirement: &70277287988800 !ruby/object:Gem::Requirement
72
- none: false
73
- requirements:
74
- - - ! '>'
75
- - !ruby/object:Gem::Version
76
- version: 0.9.0.rc
77
- type: :development
78
- prerelease: false
79
- version_requirements: *70277287988800
68
+ version_requirements: *70252860446980
80
69
  - !ruby/object:Gem::Dependency
81
70
  name: guard
82
- requirement: &70277287988420 !ruby/object:Gem::Requirement
71
+ requirement: &70252860446540 !ruby/object:Gem::Requirement
83
72
  none: false
84
73
  requirements:
85
74
  - - ! '>='
@@ -87,10 +76,10 @@ dependencies:
87
76
  version: '0'
88
77
  type: :development
89
78
  prerelease: false
90
- version_requirements: *70277287988420
79
+ version_requirements: *70252860446540
91
80
  - !ruby/object:Gem::Dependency
92
81
  name: guard-rspec
93
- requirement: &70277287987960 !ruby/object:Gem::Requirement
82
+ requirement: &70252860446040 !ruby/object:Gem::Requirement
94
83
  none: false
95
84
  requirements:
96
85
  - - ! '>='
@@ -98,10 +87,10 @@ dependencies:
98
87
  version: '0'
99
88
  type: :development
100
89
  prerelease: false
101
- version_requirements: *70277287987960
90
+ version_requirements: *70252860446040
102
91
  - !ruby/object:Gem::Dependency
103
92
  name: guard-spork
104
- requirement: &70277287987540 !ruby/object:Gem::Requirement
93
+ requirement: &70252860445620 !ruby/object:Gem::Requirement
105
94
  none: false
106
95
  requirements:
107
96
  - - ! '>='
@@ -109,10 +98,10 @@ dependencies:
109
98
  version: '0'
110
99
  type: :development
111
100
  prerelease: false
112
- version_requirements: *70277287987540
101
+ version_requirements: *70252860445620
113
102
  - !ruby/object:Gem::Dependency
114
103
  name: database_cleaner
115
- requirement: &70277287987120 !ruby/object:Gem::Requirement
104
+ requirement: &70252860445200 !ruby/object:Gem::Requirement
116
105
  none: false
117
106
  requirements:
118
107
  - - ! '>='
@@ -120,10 +109,10 @@ dependencies:
120
109
  version: '0'
121
110
  type: :development
122
111
  prerelease: false
123
- version_requirements: *70277287987120
112
+ version_requirements: *70252860445200
124
113
  - !ruby/object:Gem::Dependency
125
114
  name: rb-fsevent
126
- requirement: &70277287986700 !ruby/object:Gem::Requirement
115
+ requirement: &70252860444780 !ruby/object:Gem::Requirement
127
116
  none: false
128
117
  requirements:
129
118
  - - ! '>='
@@ -131,10 +120,10 @@ dependencies:
131
120
  version: '0'
132
121
  type: :development
133
122
  prerelease: false
134
- version_requirements: *70277287986700
123
+ version_requirements: *70252860444780
135
124
  - !ruby/object:Gem::Dependency
136
125
  name: growl
137
- requirement: &70277287986260 !ruby/object:Gem::Requirement
126
+ requirement: &70252860444360 !ruby/object:Gem::Requirement
138
127
  none: false
139
128
  requirements:
140
129
  - - ! '>='
@@ -142,7 +131,7 @@ dependencies:
142
131
  version: '0'
143
132
  type: :development
144
133
  prerelease: false
145
- version_requirements: *70277287986260
134
+ version_requirements: *70252860444360
146
135
  description: Hackish implementaiton of voting on of voteable objects by a voter
147
136
  email:
148
137
  - benguest@gmail.com
@@ -165,6 +154,7 @@ files:
165
154
  - lib/voterable/voter.rb
166
155
  - spec/factories.rb
167
156
  - spec/spec_helper.rb
157
+ - spec/voteable_spec.rb
168
158
  - spec/voter_spec.rb
169
159
  - spec/voting_spec.rb
170
160
  - voterable.gemspec
@@ -195,5 +185,6 @@ summary: Mongoid dependant user voting rating
195
185
  test_files:
196
186
  - spec/factories.rb
197
187
  - spec/spec_helper.rb
188
+ - spec/voteable_spec.rb
198
189
  - spec/voter_spec.rb
199
190
  - spec/voting_spec.rb