fat_period 1.4.0 → 2.0.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/.envrc +7 -0
- data/.github/workflows/gem-push.yml +48 -0
- data/Gemfile +12 -0
- data/Rakefile +4 -1
- data/fat_period.gemspec +5 -12
- data/lib/fat_period/date.rb +0 -49
- data/lib/fat_period/period.rb +67 -88
- data/lib/fat_period/version.rb +1 -1
- data/lib/fat_period.rb +6 -0
- metadata +12 -109
- data/.simplecov +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5742b6c1b70e7477cb2b8e077c3b1e5d96fc417858f618a12ad64a457df692e4
|
4
|
+
data.tar.gz: 7965192d8da3ea88002089c52dc9344cae1f75e7fab28739185b5f290c3f1bc9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78bf26849daf793f3b2115e136599178817fd43a1a03bc2882eea408bd7995c44feb94998f22bb220afeb3c2b8270770aa7dc586736849af5f5506f6f7e1123b
|
7
|
+
data.tar.gz: dc0b08cb99a577a8fe11827e96ef1c9473a4536fe4ae0e7dd483fc7a1d1d0493a333eecbbcc8a2cd9f710d03489bc32aa4c8695b9787007dc51efddb9805e14b
|
data/.envrc
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
name: Ruby Gem
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ "master" ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ "master" ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
build:
|
11
|
+
name: Build + Publish
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
permissions:
|
14
|
+
contents: read
|
15
|
+
packages: write
|
16
|
+
|
17
|
+
steps:
|
18
|
+
- uses: actions/checkout@v4
|
19
|
+
- name: Set up Ruby 2.6
|
20
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
21
|
+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
22
|
+
# uses: ruby/setup-ruby@v1
|
23
|
+
uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
|
24
|
+
with:
|
25
|
+
ruby-version: 2.6.x
|
26
|
+
|
27
|
+
- name: Publish to GPR
|
28
|
+
run: |
|
29
|
+
mkdir -p $HOME/.gem
|
30
|
+
touch $HOME/.gem/credentials
|
31
|
+
chmod 0600 $HOME/.gem/credentials
|
32
|
+
printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
33
|
+
gem build *.gemspec
|
34
|
+
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
|
35
|
+
env:
|
36
|
+
GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
|
37
|
+
OWNER: ${{ github.repository_owner }}
|
38
|
+
|
39
|
+
- name: Publish to RubyGems
|
40
|
+
run: |
|
41
|
+
mkdir -p $HOME/.gem
|
42
|
+
touch $HOME/.gem/credentials
|
43
|
+
chmod 0600 $HOME/.gem/credentials
|
44
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
45
|
+
gem build *.gemspec
|
46
|
+
gem push *.gem
|
47
|
+
env:
|
48
|
+
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
data/Gemfile
CHANGED
@@ -2,3 +2,15 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in fat_period.gemspec
|
4
4
|
gemspec
|
5
|
+
|
6
|
+
gem 'bundler'
|
7
|
+
gem 'debug'
|
8
|
+
gem 'pry'
|
9
|
+
gem 'pry-doc'
|
10
|
+
gem 'rake'
|
11
|
+
gem 'rspec'
|
12
|
+
gem 'rubocop'
|
13
|
+
gem 'rubocop-rspec'
|
14
|
+
gem 'rubocop-performance'
|
15
|
+
gem 'rubocop-rake'
|
16
|
+
gem 'rubocop-shopify'
|
data/Rakefile
CHANGED
data/fat_period.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
|
2
3
|
lib = File.expand_path('../lib', __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'fat_period/version'
|
@@ -7,12 +8,12 @@ Gem::Specification.new do |spec|
|
|
7
8
|
spec.name = 'fat_period'
|
8
9
|
spec.version = FatPeriod::VERSION
|
9
10
|
spec.authors = ['Daniel E. Doherty']
|
10
|
-
spec.email = ['ded
|
11
|
+
spec.email = ['ded@ddoherty.net']
|
11
12
|
|
12
|
-
spec.summary =
|
13
|
+
spec.summary = 'Implements a Period class as a Range of Dates.'
|
13
14
|
spec.homepage = 'https://github.com/ddoherty03/fat_period'
|
14
15
|
|
15
|
-
spec.files =
|
16
|
+
spec.files = %x(git ls-files -z).split("\x0").reject do |f|
|
16
17
|
f.match(%r{^(test|spec|features)/})
|
17
18
|
end
|
18
19
|
# Don't install any executables.
|
@@ -20,13 +21,5 @@ Gem::Specification.new do |spec|
|
|
20
21
|
# spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
22
|
spec.require_paths = ['lib']
|
22
23
|
|
23
|
-
spec.
|
24
|
-
spec.add_development_dependency 'rake'
|
25
|
-
spec.add_development_dependency 'rspec'
|
26
|
-
spec.add_development_dependency 'debug', '>= 1.0.0'
|
27
|
-
spec.add_development_dependency 'pry'
|
28
|
-
spec.add_development_dependency 'pry-doc'
|
29
|
-
spec.add_development_dependency 'simplecov'
|
30
|
-
|
31
|
-
spec.add_runtime_dependency 'fat_core', '>= 4.8.3'
|
24
|
+
spec.add_dependency 'fat_core', '>= 5.4'
|
32
25
|
end
|
data/lib/fat_period/date.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'date'
|
2
|
-
|
3
1
|
module FatPeriod
|
4
2
|
# An extension of Date for methods useful with respect to FatPeriod::Periods.
|
5
3
|
module Date
|
@@ -20,53 +18,6 @@ module FatPeriod
|
|
20
18
|
require 'fat_period'
|
21
19
|
Period.new(beginning_of_chunk(chunk), end_of_chunk(chunk))
|
22
20
|
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
|
70
21
|
end
|
71
22
|
end
|
72
23
|
|
data/lib/fat_period/period.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
|
+
require 'active_support'
|
1
2
|
require 'fat_core/date'
|
2
|
-
require 'fat_core/range'
|
3
|
-
require 'fat_core/string'
|
4
3
|
|
5
4
|
# The Period class represents a range of Dates and supports a variety of
|
6
5
|
# operations on those ranges.
|
@@ -31,14 +30,13 @@ class Period
|
|
31
30
|
@last = Date.ensure_date(last).freeze
|
32
31
|
freeze
|
33
32
|
|
34
|
-
|
33
|
+
return unless @first > @last
|
34
|
+
|
35
|
+
raise ArgumentError, "Period's first date is later than its last date"
|
35
36
|
end
|
36
37
|
|
37
38
|
# These need to come after initialize is defined
|
38
39
|
|
39
|
-
# Period from commercial beginning of time to today
|
40
|
-
TO_DATE = Period.new(Date::BOT, Date.current)
|
41
|
-
|
42
40
|
# Period from commercial beginning of time to commercial end of time.
|
43
41
|
FOREVER = Period.new(Date::BOT, Date::EOT)
|
44
42
|
|
@@ -68,60 +66,35 @@ class Period
|
|
68
66
|
Period.new(first, second) if first && second
|
69
67
|
end
|
70
68
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
(\s+per\s+(?<chunk_part>\w+))?\z}xi
|
77
|
-
|
78
|
-
private_constant :PHRASE_RE
|
79
|
-
|
80
|
-
# Return an array of periods, either a single period as in `Period.parse`
|
81
|
-
# from a String phrase in which a `from spec` is introduced with 'from' and,
|
82
|
-
# optionally, a `to spec` is introduced with 'to', or a number of periods if
|
83
|
-
# there is a 'per <chunk>' modifier. A phrase with only a `to spec` is
|
84
|
-
# treated the same as one with only a from spec. If neither 'from' nor 'to'
|
85
|
-
# appear in phrase, treat the whole string as a from spec.
|
69
|
+
# Return a period as in `Period.parse` from a String phrase in which the from
|
70
|
+
# spec is introduced with 'from' and, optionally, the to spec is introduced
|
71
|
+
# with 'to'. A phrase with only a to spec is treated the same as one with
|
72
|
+
# only a from spec. If neither 'from' nor 'to' appear in phrase, treat the
|
73
|
+
# whole string as a from spec.
|
86
74
|
#
|
87
75
|
# @example
|
88
|
-
# Period.parse_phrase('from 2014-11 to 2015-3Q') #=>
|
89
|
-
# Period.parse_phrase('from 2014-11') #=>
|
90
|
-
# Period.parse_phrase('from 2015-3Q') #=>
|
91
|
-
# Period.parse_phrase('to 2015-3Q') #=>
|
92
|
-
# Period.parse_phrase('
|
93
|
-
#
|
94
|
-
#
|
95
|
-
#
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
raise ArgumentError, "invalid period phrase: `#{phrase}`" unless mm
|
106
|
-
|
107
|
-
if mm[:from_part] && mm[:to_part].nil?
|
108
|
-
from_part = mm[:from_part]
|
109
|
-
to_part = nil
|
110
|
-
elsif mm[:from_part].nil? && mm[:to_part]
|
111
|
-
from_part = mm[:to_part]
|
112
|
-
to_part = nil
|
113
|
-
else
|
114
|
-
from_part = mm[:from_part]
|
115
|
-
to_part = mm[:to_part]
|
116
|
-
end
|
117
|
-
|
118
|
-
whole_period = parse(from_part, to_part)
|
119
|
-
if mm[:chunk_part].nil?
|
120
|
-
[whole_period]
|
76
|
+
# Period.parse_phrase('from 2014-11 to 2015-3Q') #=> Period('2014-11-01..2015-09-30')
|
77
|
+
# Period.parse_phrase('from 2014-11') #=> Period('2014-11-01..2014-11-30')
|
78
|
+
# Period.parse_phrase('from 2015-3Q') #=> Period('2015-09-01..2015-12-31')
|
79
|
+
# Period.parse_phrase('to 2015-3Q') #=> Period('2015-09-01..2015-12-31')
|
80
|
+
# Period.parse_phrase('2015-3Q') #=> Period('2015-09-01..2015-12-31')
|
81
|
+
#
|
82
|
+
# @param phrase [String] with 'from <spec> to <spec>'
|
83
|
+
# @return [Period] translated from phrase
|
84
|
+
def self.parse_phrase(phrase)
|
85
|
+
phrase = phrase.clean
|
86
|
+
case phrase
|
87
|
+
when /\Afrom (.*) to (.*)\z/
|
88
|
+
from_phrase = $1
|
89
|
+
to_phrase = $2
|
90
|
+
when /\Afrom (.*)\z/, /\Ato (.*)\z/
|
91
|
+
from_phrase = $1
|
92
|
+
to_phrase = nil
|
121
93
|
else
|
122
|
-
|
123
|
-
|
94
|
+
from_phrase = phrase
|
95
|
+
to_phrase = nil
|
124
96
|
end
|
97
|
+
parse(from_phrase, to_phrase)
|
125
98
|
end
|
126
99
|
|
127
100
|
# @group Conversion
|
@@ -191,7 +164,7 @@ class Period
|
|
191
164
|
# @param other [Period] @return [Integer] -1 if self < other; 0 if self ==
|
192
165
|
# other; 1 if self > other
|
193
166
|
def <=>(other)
|
194
|
-
return
|
167
|
+
return unless other.is_a?(Period)
|
195
168
|
|
196
169
|
[first, last] <=> [other.first, other.last]
|
197
170
|
end
|
@@ -210,7 +183,7 @@ class Period
|
|
210
183
|
end
|
211
184
|
|
212
185
|
def eql?(other)
|
213
|
-
return
|
186
|
+
return unless other.is_a?(Period)
|
214
187
|
|
215
188
|
hash == other.hash
|
216
189
|
end
|
@@ -225,7 +198,7 @@ class Period
|
|
225
198
|
|
226
199
|
to_range.cover?(date)
|
227
200
|
end
|
228
|
-
|
201
|
+
alias_method :===, :contains?
|
229
202
|
|
230
203
|
include Enumerable
|
231
204
|
|
@@ -233,15 +206,10 @@ class Period
|
|
233
206
|
|
234
207
|
# Yield each day in this Period.
|
235
208
|
def each
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
d += 1.day
|
241
|
-
end
|
242
|
-
self
|
243
|
-
else
|
244
|
-
to_enum(:each)
|
209
|
+
d = first
|
210
|
+
while d <= last
|
211
|
+
yield d
|
212
|
+
d += 1.day
|
245
213
|
end
|
246
214
|
end
|
247
215
|
|
@@ -259,8 +227,8 @@ class Period
|
|
259
227
|
def size
|
260
228
|
(last - first + 1).to_i
|
261
229
|
end
|
262
|
-
|
263
|
-
|
230
|
+
alias_method :length, :size
|
231
|
+
alias_method :days, :size
|
264
232
|
|
265
233
|
# Return the fractional number of months in the period. By default, use the
|
266
234
|
# average number of days in a month, but allow the user to override the
|
@@ -306,8 +274,18 @@ class Period
|
|
306
274
|
|
307
275
|
# An Array of the valid Symbols for calendar chunks plus the Symbol :irregular
|
308
276
|
# for other periods.
|
309
|
-
CHUNKS = %i[
|
310
|
-
|
277
|
+
CHUNKS = %i[
|
278
|
+
day
|
279
|
+
week
|
280
|
+
biweek
|
281
|
+
semimonth
|
282
|
+
month
|
283
|
+
bimonth
|
284
|
+
quarter
|
285
|
+
half
|
286
|
+
year
|
287
|
+
irregular
|
288
|
+
].freeze
|
311
289
|
|
312
290
|
CHUNK_ORDER = {}
|
313
291
|
CHUNKS.each_with_index do |c, i|
|
@@ -317,13 +295,17 @@ class Period
|
|
317
295
|
|
318
296
|
# An Array of Ranges for the number of days that can be covered by each chunk.
|
319
297
|
CHUNK_RANGE = {
|
320
|
-
day: (1..1),
|
321
|
-
|
322
|
-
|
298
|
+
day: (1..1),
|
299
|
+
week: (7..7),
|
300
|
+
biweek: (14..14),
|
301
|
+
semimonth: (15..16),
|
302
|
+
month: (28..31),
|
303
|
+
bimonth: (59..62),
|
304
|
+
quarter: (90..92),
|
305
|
+
half: (180..183),
|
306
|
+
year: (365..366)
|
323
307
|
}.freeze
|
324
308
|
|
325
|
-
private_constant :CHUNK_ORDER, :CHUNK_RANGE
|
326
|
-
|
327
309
|
def self.chunk_cmp(chunk1, chunk2)
|
328
310
|
CHUNK_ORDER[chunk1] <=> CHUNK_ORDER[chunk2]
|
329
311
|
end
|
@@ -611,8 +593,8 @@ class Period
|
|
611
593
|
# @param round_up_last [Boolean] allow the last period in the returned array
|
612
594
|
# to extend beyond the end of self.
|
613
595
|
# @return [Array<Period>] periods that subdivide self into chunks of size, `size`
|
614
|
-
def chunks(size: :month, partial_first:
|
615
|
-
|
596
|
+
def chunks(size: :month, partial_first: true, partial_last: true,
|
597
|
+
round_up_last: false)
|
616
598
|
chunk_size = size.to_sym
|
617
599
|
raise ArgumentError, "unknown chunk size '#{chunk_size}'" unless CHUNKS.include?(chunk_size)
|
618
600
|
|
@@ -636,7 +618,6 @@ class Period
|
|
636
618
|
return result
|
637
619
|
end
|
638
620
|
|
639
|
-
# The first chunk
|
640
621
|
chunk_start = first.dup
|
641
622
|
chunk_end = chunk_start.end_of_chunk(chunk_size)
|
642
623
|
if chunk_start.beginning_of_chunk?(chunk_size) || partial_first
|
@@ -645,16 +626,14 @@ class Period
|
|
645
626
|
end
|
646
627
|
chunk_start = chunk_end + 1.day
|
647
628
|
chunk_end = chunk_start.end_of_chunk(chunk_size)
|
648
|
-
|
649
629
|
# Add Whole chunks
|
650
630
|
while chunk_end <= last
|
651
631
|
result << Period.new(chunk_start, chunk_end)
|
652
632
|
chunk_start = chunk_end + 1.day
|
653
633
|
chunk_end = chunk_start.end_of_chunk(chunk_size)
|
654
634
|
end
|
655
|
-
|
656
635
|
# Possibly append the final chunk to result
|
657
|
-
if chunk_start
|
636
|
+
if chunk_start < last
|
658
637
|
if round_up_last
|
659
638
|
result << Period.new(chunk_start, chunk_end)
|
660
639
|
elsif partial_last
|
@@ -747,8 +726,8 @@ class Period
|
|
747
726
|
Period.new(result.first, result.last)
|
748
727
|
end
|
749
728
|
end
|
750
|
-
|
751
|
-
|
729
|
+
alias_method :&, :intersection
|
730
|
+
alias_method :narrow_to, :intersection
|
752
731
|
|
753
732
|
# Return the Period that is the union of self with `other` or nil if
|
754
733
|
# they neither overlap nor are contiguous
|
@@ -765,11 +744,11 @@ class Period
|
|
765
744
|
# @return [Period, nil] self union `other`?
|
766
745
|
def union(other)
|
767
746
|
result = to_range.union(other.to_range)
|
768
|
-
return
|
747
|
+
return if result.nil?
|
769
748
|
|
770
749
|
Period.new(result.first, result.last)
|
771
750
|
end
|
772
|
-
|
751
|
+
alias_method :+, :union
|
773
752
|
|
774
753
|
# Return an array of periods that are this period excluding any overlap with
|
775
754
|
# other. If there is no overlap, return an array with a period equal to self
|
@@ -787,7 +766,7 @@ class Period
|
|
787
766
|
ranges = to_range.difference(other.to_range)
|
788
767
|
ranges.each.map { |r| Period.new(r.first, r.last) }
|
789
768
|
end
|
790
|
-
|
769
|
+
alias_method :-, :difference
|
791
770
|
|
792
771
|
# Return whether this period overlaps the `other` period. To overlap, the
|
793
772
|
# periods must have at least one day in common.
|
data/lib/fat_period/version.rb
CHANGED
data/lib/fat_period.rb
CHANGED
metadata
CHANGED
@@ -1,137 +1,40 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fat_period
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel E. Doherty
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rspec
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: debug
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 1.0.0
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 1.0.0
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: pry
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: pry-doc
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
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'
|
111
13
|
- !ruby/object:Gem::Dependency
|
112
14
|
name: fat_core
|
113
15
|
requirement: !ruby/object:Gem::Requirement
|
114
16
|
requirements:
|
115
17
|
- - ">="
|
116
18
|
- !ruby/object:Gem::Version
|
117
|
-
version: 4
|
19
|
+
version: '5.4'
|
118
20
|
type: :runtime
|
119
21
|
prerelease: false
|
120
22
|
version_requirements: !ruby/object:Gem::Requirement
|
121
23
|
requirements:
|
122
24
|
- - ">="
|
123
25
|
- !ruby/object:Gem::Version
|
124
|
-
version: 4
|
125
|
-
description:
|
26
|
+
version: '5.4'
|
27
|
+
description:
|
126
28
|
email:
|
127
|
-
- ded
|
29
|
+
- ded@ddoherty.net
|
128
30
|
executables: []
|
129
31
|
extensions: []
|
130
32
|
extra_rdoc_files: []
|
131
33
|
files:
|
34
|
+
- ".envrc"
|
35
|
+
- ".github/workflows/gem-push.yml"
|
132
36
|
- ".gitignore"
|
133
37
|
- ".rspec"
|
134
|
-
- ".simplecov"
|
135
38
|
- ".travis.yml"
|
136
39
|
- Gemfile
|
137
40
|
- LICENSE.txt
|
@@ -147,7 +50,7 @@ files:
|
|
147
50
|
homepage: https://github.com/ddoherty03/fat_period
|
148
51
|
licenses: []
|
149
52
|
metadata: {}
|
150
|
-
post_install_message:
|
53
|
+
post_install_message:
|
151
54
|
rdoc_options: []
|
152
55
|
require_paths:
|
153
56
|
- lib
|
@@ -162,8 +65,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
65
|
- !ruby/object:Gem::Version
|
163
66
|
version: '0'
|
164
67
|
requirements: []
|
165
|
-
rubygems_version: 3.
|
166
|
-
signing_key:
|
68
|
+
rubygems_version: 3.5.22
|
69
|
+
signing_key:
|
167
70
|
specification_version: 4
|
168
71
|
summary: Implements a Period class as a Range of Dates.
|
169
72
|
test_files: []
|
data/.simplecov
DELETED
@@ -1,18 +0,0 @@
|
|
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
|