active_date_range 0.4.0 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7cc5d1d6cd20c08b30702deb5ecf7822c5cbff0da252e849fa290b90c81c6d8
4
- data.tar.gz: 55ff9960e377aed53497050259e8ed76891a11cb2be911cf7a0079429f7bedae
3
+ metadata.gz: 39f9a839e43c1880dc6316e99c40e0c07ad5fd18de9cf19658737eeb7e584d7a
4
+ data.tar.gz: 7d2827d72f24425b5ec13e2fe6a1783834e414da75f602a530bc3ff335842723
5
5
  SHA512:
6
- metadata.gz: f226583cd68e5f054cc4db0d2fade2ffe7f8825cb659400c07b9e1857c5279856a9fa65e1789ecd4a2b475847937281ce06bed1c4e73df089531ead7d1644900
7
- data.tar.gz: a44baee259cee6516cd7729f1572cc3c49aa0e6543d09a201f30036e14a44f886297582c63df7110a09d08ac81e4c752d47a15805c08d4e9b0c6fc7338f5cb5c
6
+ metadata.gz: b3754ca3eda22da5b853ad54643a1842f97606b15318c472da86ea379da540dd026d1c2de201d5d1b0838d9275e1e197df1ac0cd742f33885b1d6593bc145341
7
+ data.tar.gz: e4ccdd0cfbb3b39cb24b2f322ef2bf7be823793721f3bb00546f7054503649804f1045091d50b907b32fd75d410024bf5afbf801bf9190241f4cae811d1bfb19
data/.gitignore CHANGED
@@ -6,3 +6,4 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ .claude
data/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ ## 0.4.2
2
+
3
+ * Add shorthand class methods for creating DateRanges:
4
+
5
+ ```ruby
6
+ DateRange.year(2026) # => DateRange(2026-01-01..2026-12-31)
7
+ DateRange.quarter(2026, 4) # => DateRange(2026-10-01..2026-12-31)
8
+ DateRange.month(2026, 1) # => DateRange(2026-01-01..2026-01-31)
9
+ DateRange.week(2026, 1) # => DateRange for ISO week 1 of 2026
10
+ ```
11
+
12
+ *Edwin Vlieg*
13
+
14
+ ## 0.4.1
15
+
16
+ * Fix dependency issues in gemspec
17
+
18
+ *Vincent Oord*
19
+
1
20
  ## 0.4.0
2
21
 
3
22
  * Add #stretch_to_end_of_month:
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active_date_range (0.4.0)
5
- activesupport (> 6.1)
6
- i18n
4
+ active_date_range (0.4.2)
5
+ activesupport (~> 8.0)
6
+ i18n (~> 1.6)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
@@ -54,7 +54,6 @@ GEM
54
54
  erb (5.0.3)
55
55
  erubi (1.13.1)
56
56
  ffi (1.17.2)
57
- ffi (1.17.2-x86_64-linux-gnu)
58
57
  formatador (1.2.1)
59
58
  reline
60
59
  guard (2.19.1)
@@ -98,8 +97,6 @@ GEM
98
97
  nokogiri (1.18.10)
99
98
  mini_portile2 (~> 2.8.2)
100
99
  racc (~> 1.4)
101
- nokogiri (1.18.10-x86_64-linux-gnu)
102
- racc (~> 1.4)
103
100
  notiffany (0.1.3)
104
101
  nenv (~> 0.1)
105
102
  shellany (~> 0.0)
@@ -203,7 +200,7 @@ PLATFORMS
203
200
 
204
201
  DEPENDENCIES
205
202
  active_date_range!
206
- activemodel
203
+ activemodel (~> 8.0)
207
204
  benchmark-ips
208
205
  guard
209
206
  guard-minitest
@@ -212,10 +209,10 @@ DEPENDENCIES
212
209
  pry
213
210
  railties (> 6.1)
214
211
  rake (~> 13.0)
215
- rubocop
216
- rubocop-packaging
217
- rubocop-performance
218
- rubocop-rails
212
+ rubocop (~> 1.18)
213
+ rubocop-packaging (~> 0.6)
214
+ rubocop-performance (~> 1.26)
215
+ rubocop-rails (~> 2.33)
219
216
 
220
217
  BUNDLED WITH
221
218
  2.3.5
@@ -27,12 +27,12 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
29
 
30
- spec.add_runtime_dependency "activesupport", "~> 6.1"
30
+ spec.add_runtime_dependency "activesupport", "~> 8.0"
31
31
  spec.add_runtime_dependency "i18n", "~> 1.6"
32
32
 
33
33
  spec.add_development_dependency "rubocop", "~> 1.18"
34
34
  spec.add_development_dependency "rubocop-packaging", "~> 0.6"
35
35
  spec.add_development_dependency "rubocop-performance", "~> 1.26"
36
36
  spec.add_development_dependency "rubocop-rails", "~> 2.33"
37
- spec.add_development_dependency "activemodel", "~> 6.1"
37
+ spec.add_development_dependency "activemodel", "~> 8.0"
38
38
  end
@@ -64,6 +64,36 @@ module ActiveDateRange
64
64
  new(date, date + duration - 1.day)
65
65
  end
66
66
 
67
+ # Creates a DateRange for a full year.
68
+ #
69
+ # DateRange.year(2026) # => DateRange(2026-01-01..2026-12-31)
70
+ def self.year(year)
71
+ new(Date.new(year, 1, 1).all_year)
72
+ end
73
+
74
+ # Creates a DateRange for a specific month.
75
+ #
76
+ # DateRange.month(2026, 1) # => DateRange(2026-01-01..2026-01-31)
77
+ def self.month(year, month)
78
+ new(Date.new(year, month, 1).all_month)
79
+ end
80
+
81
+ # Creates a DateRange for a specific quarter (1-4).
82
+ #
83
+ # DateRange.quarter(2026, 4) # => DateRange(2026-10-01..2026-12-31)
84
+ def self.quarter(year, quarter)
85
+ month = ((quarter - 1) * 3) + 1
86
+ new(Date.new(year, month, 1).all_quarter)
87
+ end
88
+
89
+ # Creates a DateRange for a specific ISO week.
90
+ #
91
+ # DateRange.week(2026, 1) # => DateRange for ISO week 1 of 2026
92
+ def self.week(year, week)
93
+ date = Date.commercial(year, week, 1)
94
+ new(date.all_week)
95
+ end
96
+
67
97
  private_class_method :parse_date
68
98
 
69
99
  # Initializes a new DateRange. Accepts both a begin and end date or a range of dates.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveDateRange
4
- VERSION = "0.4.0"
4
+ VERSION = "0.4.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_date_range
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edwin Vlieg
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '6.1'
18
+ version: '8.0'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '6.1'
25
+ version: '8.0'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: i18n
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -99,14 +99,14 @@ dependencies:
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '6.1'
102
+ version: '8.0'
103
103
  type: :development
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '6.1'
109
+ version: '8.0'
110
110
  description: ActiveDateRange provides a range of dates with a powerful API to manipulate
111
111
  and use date ranges in your software.
112
112
  email: