flexyear 2.3.0 → 2.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 +5 -5
- data/lib/flexyear/version.rb +1 -1
- data/lib/flexyear.rb +8 -1
- data/spec/flexyear_spec.rb +19 -1
- metadata +6 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 76222dec0e41ccbd4cfae4dd0d6ce3372790ae0ff9f1a0454b7003b663d03f1a
|
4
|
+
data.tar.gz: 9ae27ce940ba0e5b8e5258c7e4ccc2b405913b077b2193eef32ff7f5ca8f1702
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b375a2c188636a09b4598e0141649112d4845485b3c618061d86cdc16a099ccbf5aee9c5b51b84b5a9a5d8b58cffa52219b8cedd15fa8ea26aac8d610f051fb3
|
7
|
+
data.tar.gz: 1264dbafb0d737569bde093983260a23bb1d0f8468ad09ecf1d4d3b6a31a9c6eb437717cebe49e6810511052682023daede11376f28ee306b81e54aa989ed88a
|
data/lib/flexyear/version.rb
CHANGED
data/lib/flexyear.rb
CHANGED
@@ -67,7 +67,7 @@ class FlexYear
|
|
67
67
|
[year.year_low, year.year_high]
|
68
68
|
end
|
69
69
|
|
70
|
-
flat_years = all_years.
|
70
|
+
flat_years = all_years.uniq.map { |y| y.nil? ? Date.today.year : y }
|
71
71
|
|
72
72
|
@year_low = flat_years.min
|
73
73
|
@year_high = flat_years.max
|
@@ -110,6 +110,9 @@ class FlexYear
|
|
110
110
|
if year_string =~ range_regex && $1 && $2
|
111
111
|
@year_low = centuryize($1).to_i
|
112
112
|
@year_low, @year_high = [@year_low, centuryize($2, @year_low).to_i].sort
|
113
|
+
elsif year_string =~ open_ended_range_regex
|
114
|
+
@year_low = centuryize($1).to_i
|
115
|
+
@year_high = Date.today.year
|
113
116
|
else
|
114
117
|
if year_string =~ decade_regex
|
115
118
|
@base_year = centuryize($1).to_i
|
@@ -134,6 +137,10 @@ class FlexYear
|
|
134
137
|
/(\d+)\s*-\s*(\d+)/
|
135
138
|
end
|
136
139
|
|
140
|
+
def open_ended_range_regex
|
141
|
+
/(\d+)\s*-\s*(\D+)/
|
142
|
+
end
|
143
|
+
|
137
144
|
def asterisk_regex
|
138
145
|
/(\d+).*\*$/
|
139
146
|
end
|
data/spec/flexyear_spec.rb
CHANGED
@@ -170,6 +170,15 @@ describe FlexYear do
|
|
170
170
|
its(:decades) { should be_nil }
|
171
171
|
end
|
172
172
|
|
173
|
+
context "given a range from a year to present" do
|
174
|
+
subject { flexyear_class.new('1975-Present') }
|
175
|
+
its(:year_low) { should eq(1975) }
|
176
|
+
its(:year_high) { should eq(2016) }
|
177
|
+
its(:decade?) { should eq(false) }
|
178
|
+
its(:decade) { should be_nil }
|
179
|
+
its(:decades) { should be_nil }
|
180
|
+
end
|
181
|
+
|
173
182
|
context "given a range in difference decades" do
|
174
183
|
subject { flexyear_class.new('1975-1983') }
|
175
184
|
its(:year_low) { should eq(1975) }
|
@@ -342,11 +351,20 @@ describe FlexYear do
|
|
342
351
|
context "mixed years with nil" do
|
343
352
|
subject { flexyear_class.new(["1988", "1990s", nil]) }
|
344
353
|
its(:year_low) { should eq(1988) }
|
345
|
-
its(:year_high) { should eq(
|
354
|
+
its(:year_high) { should eq(2016) }
|
346
355
|
its(:decade?) { should eq(false) }
|
347
356
|
its(:decade) { should be_nil }
|
348
357
|
its(:decades) { should eq(["1980s", "1990s", nil])}
|
349
358
|
end
|
359
|
+
|
360
|
+
context "with a year with an undefined end date" do
|
361
|
+
subject { flexyear_class.new(["1980s", "mid-80s", "1988 - 1999", 2001, "199*", "1999 - Present"]) }
|
362
|
+
its(:year_low) { should eq(1980) }
|
363
|
+
its(:year_high) { should eq(2016) }
|
364
|
+
its(:decade?) { should eq(false) }
|
365
|
+
its(:decade) { should be_nil }
|
366
|
+
its(:decades) { should eq(["1980s", "1980s", nil, "2000s", "1990s", nil])}
|
367
|
+
end
|
350
368
|
end
|
351
369
|
|
352
370
|
context "given 12345 (five digit year)" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flexyear
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Melnick & Yan Pritzker
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -100,7 +100,7 @@ homepage: http://github.com/reverbdotcom/flexyear
|
|
100
100
|
licenses:
|
101
101
|
- MIT
|
102
102
|
metadata: {}
|
103
|
-
post_install_message:
|
103
|
+
post_install_message:
|
104
104
|
rdoc_options: []
|
105
105
|
require_paths:
|
106
106
|
- lib
|
@@ -115,9 +115,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
117
|
requirements: []
|
118
|
-
|
119
|
-
|
120
|
-
signing_key:
|
118
|
+
rubygems_version: 3.1.6
|
119
|
+
signing_key:
|
121
120
|
specification_version: 4
|
122
121
|
summary: Natural language year range parser
|
123
122
|
test_files:
|