date_continuity 0.2.2 → 0.3.0

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
  SHA256:
3
- metadata.gz: 53e852c09e2708211c4e1e449ebb9dcb6be20c63b4194b0499896e3109576ab1
4
- data.tar.gz: 1c3f7b52275f5119052e18cd7b27c394d3041b863061feb4e127e2094996ac12
3
+ metadata.gz: e1d7577b97382b9ed04948b62531e747b21117cc675443ece300ced7f64b4964
4
+ data.tar.gz: '03418a26403935db94bfe6a341150a24fb26fd3c06000a26387ddd6b3d68d7b7'
5
5
  SHA512:
6
- metadata.gz: 951f4f4338f3c6dab46df4e5b5a929610fb41b48335001a8f9303e4af8704a9549421a5e741ec4bfe93703920181ff18a3e2ce4c182f79239ebcefb7e56b8f35
7
- data.tar.gz: 1c83dd1a839c7d0293d189f5bab0940175473801592d4b050aaba71ac65a8fdd161277a96f6804d93973793017a80703d30ea74207daf36bea181aedab87a2a2
6
+ metadata.gz: ba63e8ae3b2ac8f05f799a0e3c03ce56355fcf163a27a0c430a86d9c1874461f3d3a016ee6b23c032aa7368cdba4026a67392e4f4086a7209b7e86149961b2ee
7
+ data.tar.gz: ac28c092029703ea2ebe515eb7bee03e7c57acd83bde4b27722f2198af82d96a38ff25ef5e65d1bba7085f7a2d10f6892fe889539f432f31dfd2191c147c64d5
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DateContinuity
4
+ module TimeBetween
5
+ extend ActiveSupport::Concern
6
+
7
+ def months_between(date1, date2)
8
+ earlier, later = [date1, date2].sort
9
+ (later.year - earlier.year) * 12 + later.month - earlier.month
10
+ end
11
+
12
+ def years_between(date1, date2)
13
+ earlier, later = [date1, date2].sort
14
+ diff = (later.year - earlier.year)
15
+
16
+ if earlier.month > later.month
17
+ diff -= 1
18
+ elsif earlier.month == later.month
19
+ if earlier.end_of_month == earlier && later.end_of_month == later
20
+ # no-op, account for leap years
21
+ elsif earlier.day > later.day
22
+ diff -= 1
23
+ end
24
+ end
25
+
26
+ diff
27
+ end
28
+ end
29
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: date_continuity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Merritt
@@ -35,6 +35,7 @@ files:
35
35
  - lib/date_continuity/errors.rb
36
36
  - lib/date_continuity/model.rb
37
37
  - lib/date_continuity/occurrences.rb
38
+ - lib/date_continuity/time_between.rb
38
39
  homepage: https://github.com/amerritt14/date_continuity
39
40
  licenses:
40
41
  - MIT