active_date_range 0.4.1 → 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: 48f1d44d9e022c726c3432b029620448b87a87d031b4691f53ecd0b6df91c2f4
4
- data.tar.gz: 8ab8a0b336c57512c0ec86ada1d78754f1a27aedd81e760e7c922a3184d75b37
3
+ metadata.gz: 39f9a839e43c1880dc6316e99c40e0c07ad5fd18de9cf19658737eeb7e584d7a
4
+ data.tar.gz: 7d2827d72f24425b5ec13e2fe6a1783834e414da75f602a530bc3ff335842723
5
5
  SHA512:
6
- metadata.gz: 88a50903fcc2658ac8dc33ef174e73c3e2e568f605cc09e356867f2a92eeaa69bd02d2372fec9e9ce3e3da8d3589640537def25e8d3056bf487cc9671c5eba68
7
- data.tar.gz: b6cd444d1367f2a681642385b05d3ccaed7f6b5e806db1a2986b85831074c84e2508cf1ad675a6d556b5871d1d9b04f800f8afb96fa06210199eb280be3e1418
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,16 @@
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
+
1
14
  ## 0.4.1
2
15
 
3
16
  * Fix dependency issues in gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active_date_range (0.4.0)
4
+ active_date_range (0.4.2)
5
5
  activesupport (~> 8.0)
6
6
  i18n (~> 1.6)
7
7
 
@@ -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)
@@ -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.1"
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.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edwin Vlieg