flexyear 2.3.0 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|