has_streak 0.0.4 → 0.0.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 63ba6abb764f993e38c848030a927c31a005bc2f
4
- data.tar.gz: 2613f5a94496a8add316521c1d6379248cc8ec89
3
+ metadata.gz: 3e14e0ff1fca7cbb9754cb3f3180d1d829883123
4
+ data.tar.gz: ff80b14bbdd8bd9d069b50fbac119a2f06ee3e45
5
5
  SHA512:
6
- metadata.gz: 7a30056b442a2d419d4be6a2a62f93bfc45d90f87915a4ccbe05cdd976b50c21f69c2b3796453370b2f261fe08d2150ed3106fe20800639cfed27f263d61cd07
7
- data.tar.gz: 4824d3ec0ad9fcbd0a22a39c4882cda9dcdebfb210a02397b6e800b4b4fb299abacf83ca7c436e1920282d8eebaa707a87c907c0e1a0f1814721a5b63da07060
6
+ metadata.gz: 27b5c9929cf713ac2160650acb2edd746af0c3958e5c54b123a947e8f0b7859a1e8421f2d650c49deb5d7e00efd4bc163091e63307ce17ceb9286be6062eee7c
7
+ data.tar.gz: b74896a145315c5e3a94267526d0778645384bd3f79dea2e905c536a0550da81a89adce68066a7cd7f8331187d014e17d8a00253f16562969aec471f36e0c84b
data/has_streak.gemspec CHANGED
@@ -26,4 +26,5 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency "bundler", "~> 1.3"
27
27
  spec.add_development_dependency "rake"
28
28
  spec.add_development_dependency "pry"
29
+ spec.add_development_dependency "timecop"
29
30
  end
@@ -21,6 +21,7 @@ module HasStreak
21
21
  def determine_consecutive_days(days)
22
22
  streak = 1
23
23
  days.each_with_index do |day, index|
24
+ break unless days.first == Date.current
24
25
  if days[index+1] == day.yesterday
25
26
  streak += 1
26
27
  else
@@ -1,3 +1,3 @@
1
1
  module HasStreak
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -3,6 +3,7 @@ require "database_cleaner"
3
3
  require "support/database_cleaner"
4
4
  require "support/user"
5
5
  require "support/post"
6
+ require "timecop"
6
7
 
7
8
  ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
8
9
 
@@ -3,7 +3,6 @@ require 'spec_helper'
3
3
  describe HasStreak::Streakable do
4
4
  context "#streak" do
5
5
  let(:user) { User.create(name: "garrett") }
6
-
7
6
  it "returns a streak of 3" do
8
7
  user.posts.create(content: "hello", created_at: 2.days.ago)
9
8
  user.posts.create(content: "hello", created_at: 1.day.ago)
@@ -13,17 +12,18 @@ describe HasStreak::Streakable do
13
12
  end
14
13
 
15
14
  it "returns streak of one (no streak)" do
16
- user.posts.create(content: "hello", created_at: 5.days.ago)
15
+ user.posts.create(content: "hello", created_at: 4.days.ago)
16
+ user.posts.create(content: "hello", created_at: 3.days.ago)
17
17
  user.posts.create(content: "hello", created_at: 2.days.ago)
18
- user.posts.create(content: "hello", created_at: DateTime.current)
19
18
 
20
19
  expect(user.streak(:posts)).to eq(1)
21
20
  end
22
21
 
23
22
  context "spanning two months" do
24
23
  it "returns a streak of 2" do
25
- user.posts.create(content: "hello", created_at: Date.new.end_of_month)
26
- user.posts.create(content: "hello", created_at: Date.new.end_of_month.advance(days: 1))
24
+ Timecop.freeze(DateTime.current.beginning_of_month)
25
+ user.posts.create(content: "hello", created_at: 1.day.ago)
26
+ user.posts.create(content: "hello", created_at: DateTime.current)
27
27
 
28
28
  expect(user.streak(:posts)).to eq(2)
29
29
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_streak
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garrett Martin
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: timecop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description: Easily track streaks on your ActiveRecord models.
112
126
  email:
113
127
  - me@garrettqmartin.com