honor 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -17,4 +17,5 @@ spec/reports
17
17
  test/tmp
18
18
  test/version_tmp
19
19
  tmp
20
- .DS_Store
20
+ .DS_Store
21
+ honor.sqlite3
@@ -1,3 +1,7 @@
1
+ ## v1.0.3
2
+
3
+ * Added method to batch update scorecards
4
+
1
5
  ## v1.0.2
2
6
 
3
7
  * Fixed migration files
@@ -44,6 +44,18 @@ module Honor
44
44
  :sort_direction => 'desc'
45
45
  includes(:user).where('user_id IN (?)', scorecard_user_ids).order("#{opt[:rank_by]} #{opt[:sort_direction]}")
46
46
  end
47
+
48
+ def update_scorecards
49
+ Honor::Scorecard.where("updated_at < ?", 1.day.ago).find_each do |scorecard|
50
+ scorecard.update_attributes!({
51
+ daily: Honor::Point.user_points_today(scorecard.user_id),
52
+ weekly: Honor::Point.user_points_this_week(scorecard.user_id),
53
+ monthly: Honor::Point.user_points_this_month(scorecard.user_id),
54
+ yearly: Honor::Point.user_points_this_year(scorecard.user_id),
55
+ lifetime: Honor::Point.user_points_total(scorecard.user_id)
56
+ })
57
+ end
58
+ end
47
59
  end
48
60
 
49
61
  end
@@ -1,3 +1,3 @@
1
1
  module Honor
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -35,14 +35,10 @@ describe Honor::Point do
35
35
  describe "Scorecard" do
36
36
  before(:each) do
37
37
  seed_points(user.id)
38
- Timecop.freeze(2012, 12, 4, 16, 00)
39
- end
40
-
41
- after(:each) do
42
- Timecop.return
43
38
  end
44
39
 
45
40
  it "should update after Points are saved" do
41
+ Timecop.freeze(2012, 12, 4, 16, 00)
46
42
  sc = Honor::Scorecard.find_by_user_id(user.id)
47
43
  sc.should_not be_nil
48
44
  sc.daily.should == 50
@@ -50,6 +46,21 @@ describe Honor::Point do
50
46
  sc.monthly.should == 50
51
47
  sc.yearly.should == 150
52
48
  sc.lifetime.should == 150
49
+ Timecop.return
50
+ end
51
+
52
+ describe "#update_scorecards" do
53
+ it "should set appropriate values for all cards" do
54
+ Timecop.freeze(2012, 12, 5, 16, 01)
55
+ Honor::Scorecard.update_scorecards
56
+ sc = Honor::Scorecard.find_by_user_id(user.id)
57
+ sc.daily.should == 0
58
+ sc.weekly.should == 50
59
+ sc.monthly.should == 50
60
+ sc.yearly.should == 150
61
+ sc.lifetime.should == 150
62
+ Timecop.return
63
+ end
53
64
  end
54
65
  end
55
66
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-03 00:00:00.000000000 Z
12
+ date: 2013-03-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -174,4 +174,3 @@ test_files:
174
174
  - spec/honor/point_spec.rb
175
175
  - spec/honor/scorecard_spec.rb
176
176
  - spec/spec_helper.rb
177
- has_rdoc: