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.
- data/lib/voterable/version.rb +1 -1
- data/lib/voterable/voteable.rb +5 -3
- data/spec/factories.rb +1 -1
- data/spec/spec_helper.rb +16 -0
- data/spec/voteable_spec.rb +40 -0
- data/voterable.gemspec +0 -1
- metadata +25 -34
data/lib/voterable/version.rb
CHANGED
data/lib/voterable/voteable.rb
CHANGED
@@ -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).
|
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).
|
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
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.
|
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: &
|
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: *
|
24
|
+
version_requirements: *70252860449820
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bson
|
27
|
-
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: *
|
35
|
+
version_requirements: *70252860448820
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bson_ext
|
38
|
-
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: *
|
46
|
+
version_requirements: *70252860448120
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
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: *
|
57
|
+
version_requirements: *70252860447540
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: factory_girl
|
60
|
-
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: *
|
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: &
|
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: *
|
79
|
+
version_requirements: *70252860446540
|
91
80
|
- !ruby/object:Gem::Dependency
|
92
81
|
name: guard-rspec
|
93
|
-
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: *
|
90
|
+
version_requirements: *70252860446040
|
102
91
|
- !ruby/object:Gem::Dependency
|
103
92
|
name: guard-spork
|
104
|
-
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: *
|
101
|
+
version_requirements: *70252860445620
|
113
102
|
- !ruby/object:Gem::Dependency
|
114
103
|
name: database_cleaner
|
115
|
-
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: *
|
112
|
+
version_requirements: *70252860445200
|
124
113
|
- !ruby/object:Gem::Dependency
|
125
114
|
name: rb-fsevent
|
126
|
-
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: *
|
123
|
+
version_requirements: *70252860444780
|
135
124
|
- !ruby/object:Gem::Dependency
|
136
125
|
name: growl
|
137
|
-
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: *
|
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
|