fat_period 1.3.1 → 1.4.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 +4 -4
- data/.simplecov +18 -0
- data/fat_period.gemspec +1 -0
- data/lib/fat_period/date.rb +47 -0
- data/lib/fat_period/period.rb +2 -4
- data/lib/fat_period/version.rb +1 -1
- metadata +18 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8592241a9f75949afa4df46469ff74029aa57ad67ac46234717aa751ba4cfef8
|
4
|
+
data.tar.gz: 26658db3f5a219236ae9bc9132cafa58850051fdf5d67c389c51306bcd4cd748
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48f7404be05db83ec57ceb7c2b4e75f584920422067bfc1600163cc58253db0ff3856201df4b6265145a5cbceee534e9d380b1ee44953fbb5fad0ffc772fa0df
|
7
|
+
data.tar.gz: 2ac2dcdb14642e774826f18b6ba7a5bd157fc067bc55495480b7ac91e7e95a21a30217725c4decf5e333e2b8b2cef581df72ee76afa5d18c459b510134c322b1
|
data/.simplecov
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- mode: ruby -*-
|
2
|
+
|
3
|
+
SimpleCov.start do
|
4
|
+
# any custom configs like groups and filters can be here at a central place
|
5
|
+
add_filter '/spec/'
|
6
|
+
add_filter '/tmp/'
|
7
|
+
add_group "Models", "lib/fat_period"
|
8
|
+
# add_group "Core Extension", "lib/ext"
|
9
|
+
# After this many seconds between runs, old coverage stats are thrown out,
|
10
|
+
# so 3600 => 1 hour
|
11
|
+
merge_timeout 3600
|
12
|
+
# Make this true to merge rspec and cucumber coverage together
|
13
|
+
use_merging false
|
14
|
+
command_name 'Rspec'
|
15
|
+
nocov_token 'no_cover'
|
16
|
+
# Branch coverage
|
17
|
+
enable_coverage :branch
|
18
|
+
end
|
data/fat_period.gemspec
CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency 'debug', '>= 1.0.0'
|
27
27
|
spec.add_development_dependency 'pry'
|
28
28
|
spec.add_development_dependency 'pry-doc'
|
29
|
+
spec.add_development_dependency 'simplecov'
|
29
30
|
|
30
31
|
spec.add_runtime_dependency 'fat_core', '>= 4.8.3'
|
31
32
|
end
|
data/lib/fat_period/date.rb
CHANGED
@@ -20,6 +20,53 @@ module FatPeriod
|
|
20
20
|
require 'fat_period'
|
21
21
|
Period.new(beginning_of_chunk(chunk), end_of_chunk(chunk))
|
22
22
|
end
|
23
|
+
|
24
|
+
# Return a period representing a chunk containing a given Date.
|
25
|
+
def day_containing
|
26
|
+
Period.new(self, self)
|
27
|
+
end
|
28
|
+
|
29
|
+
def week_containing
|
30
|
+
Period.new(self.beginning_of_week, self.end_of_week)
|
31
|
+
end
|
32
|
+
|
33
|
+
def biweek_containing
|
34
|
+
Period.new(self.beginning_of_biweek, self.end_of_biweek)
|
35
|
+
end
|
36
|
+
|
37
|
+
def semimonth_containing
|
38
|
+
Period.new(self.beginning_of_semimonth, self.end_of_semimonth)
|
39
|
+
end
|
40
|
+
|
41
|
+
def month_containing
|
42
|
+
Period.new(self.beginning_of_month, self.end_of_month)
|
43
|
+
end
|
44
|
+
|
45
|
+
def bimonth_containing
|
46
|
+
Period.new(self.beginning_of_bimonth, self.end_of_bimonth)
|
47
|
+
end
|
48
|
+
|
49
|
+
def quarter_containing
|
50
|
+
Period.new(self.beginning_of_quarter, self.end_of_quarter)
|
51
|
+
end
|
52
|
+
|
53
|
+
def half_containing
|
54
|
+
Period.new(self.beginning_of_half, self.end_of_half)
|
55
|
+
end
|
56
|
+
|
57
|
+
def year_containing
|
58
|
+
Period.new(self.beginning_of_year, self.end_of_year)
|
59
|
+
end
|
60
|
+
|
61
|
+
def chunk_containing(chunk)
|
62
|
+
raise ArgumentError, 'chunk is nil' unless chunk
|
63
|
+
|
64
|
+
chunk = chunk.to_sym
|
65
|
+
raise ArgumentError, "unknown chunk name: #{chunk}" unless CHUNKS.include?(chunk)
|
66
|
+
|
67
|
+
method = "#{chunk}_containing".to_sym
|
68
|
+
send(method, self)
|
69
|
+
end
|
23
70
|
end
|
24
71
|
end
|
25
72
|
|
data/lib/fat_period/period.rb
CHANGED
@@ -31,9 +31,7 @@ class Period
|
|
31
31
|
@last = Date.ensure_date(last).freeze
|
32
32
|
freeze
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
raise ArgumentError, "Period's first date is later than its last date"
|
34
|
+
raise ArgumentError, "Period's first date is later than its last date" if @first > @last
|
37
35
|
end
|
38
36
|
|
39
37
|
# These need to come after initialize is defined
|
@@ -72,7 +70,7 @@ class Period
|
|
72
70
|
|
73
71
|
PHRASE_RE = %r{\A
|
74
72
|
# One or both of from and to parts
|
75
|
-
((from
|
73
|
+
(((from)?\s+(?<from_part>[-_a-z0-9]+)\s*)?
|
76
74
|
(to\s+(?<to_part>[-_a-z0-9]+))?)
|
77
75
|
# Wholly optional chunk part
|
78
76
|
(\s+per\s+(?<chunk_part>\w+))?\z}xi
|
data/lib/fat_period/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fat_period
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel E. Doherty
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-10-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: simplecov
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: fat_core
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,6 +131,7 @@ extra_rdoc_files: []
|
|
117
131
|
files:
|
118
132
|
- ".gitignore"
|
119
133
|
- ".rspec"
|
134
|
+
- ".simplecov"
|
120
135
|
- ".travis.yml"
|
121
136
|
- Gemfile
|
122
137
|
- LICENSE.txt
|
@@ -147,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
147
162
|
- !ruby/object:Gem::Version
|
148
163
|
version: '0'
|
149
164
|
requirements: []
|
150
|
-
rubygems_version: 3.
|
165
|
+
rubygems_version: 3.4.14
|
151
166
|
signing_key:
|
152
167
|
specification_version: 4
|
153
168
|
summary: Implements a Period class as a Range of Dates.
|