honor 1.0.2 → 1.0.3

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/.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: