mods 3.0.2 → 3.0.3

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: cea16c53599001b8cede7fb85bffef53aa28de61718785af76fd5445915fc80c
4
- data.tar.gz: fba29c21dd8bc15483de289aafb690616b6bd6af817d6252915e41238bf1ed70
3
+ metadata.gz: f6ac4089b58e673c2783c670e689cb6901bbad611a7271c95f1f8909726beb07
4
+ data.tar.gz: ee1ee35aeae21d319485212f56535e4bc06068470295f5adcf3ff8593a06c9d0
5
5
  SHA512:
6
- metadata.gz: e6ec16f53b9355f57315248e6eabd57d3db32743e4235365f119a519c36abc0d47e75af9c600ac2666bc5db9b2c77a6629e1ace33b847077606ef3bd32d65f78
7
- data.tar.gz: 2028457eec91d93b8a44d48d2da3152d6808e850dbc201a199deb43465464497d18611049b888b5a0f2029db5166e7c99e34206f9bde2480e04e4bcf3d6eb7b2
6
+ metadata.gz: 553a4d9e91f50357ff56b5e2c19404386852308c30f06f67ccf6baa586f74f3f4bdbfd05826d3225aac8a0793bdccd5049994e5df04ef691a86c7777a21e554c
7
+ data.tar.gz: a496b63bef0f1b512d0e3c87886ee80b6665dd90044387d5ce318cc2471d855fcac64839d7d95e9bca75ca1705d786ee0b6220e254b10d31fa32a79768521d66
data/lib/mods/date.rb CHANGED
@@ -183,7 +183,7 @@ module Mods
183
183
 
184
184
  def self.munge_to_yyyy(text)
185
185
  value = roman_to_int(text.upcase)
186
- (value - 1).to_s.rjust(2, "0") + 'XX'
186
+ (value - 1).to_s.rjust(2, "0") + 'xx'
187
187
  end
188
188
  end
189
189
 
@@ -194,7 +194,7 @@ module Mods
194
194
  REGEX = /(?<century>\d{2})--/
195
195
  def self.normalize_to_edtf(text)
196
196
  matches = text.match(REGEX)
197
- "#{matches[:century]}XX"
197
+ "#{matches[:century]}xx"
198
198
  end
199
199
  end
200
200
 
@@ -204,7 +204,7 @@ module Mods
204
204
 
205
205
  def self.normalize_to_edtf(text)
206
206
  matches = text.match(REGEX)
207
- "#{matches[:century].to_i - 1}XX"
207
+ "#{matches[:century].to_i - 1}xx"
208
208
  end
209
209
  end
210
210
 
@@ -224,7 +224,7 @@ module Mods
224
224
 
225
225
  def self.normalize_to_edtf(text)
226
226
  matches = text.match(REGEX)
227
- "#{matches[:year]}X"
227
+ "#{matches[:year]}x"
228
228
  end
229
229
  end
230
230
 
@@ -234,7 +234,7 @@ module Mods
234
234
 
235
235
  def self.normalize_to_edtf(text)
236
236
  matches = text.match(REGEX)
237
- "#{matches[:year]}X"
237
+ "#{matches[:year]}x"
238
238
  end
239
239
  end
240
240
 
@@ -460,6 +460,8 @@ module Mods
460
460
  :century
461
461
  elsif date_range.is_a? EDTF::Decade
462
462
  :decade
463
+ elsif date.is_a? EDTF::Season
464
+ :month
463
465
  elsif date.is_a? EDTF::Interval
464
466
  date_range.precision
465
467
  else
@@ -497,7 +499,7 @@ module Mods
497
499
  case date_range
498
500
  when EDTF::Unknown
499
501
  nil
500
- when EDTF::Epoch, EDTF::Interval
502
+ when EDTF::Epoch, EDTF::Interval, EDTF::Season
501
503
  date_range.min
502
504
  when EDTF::Set
503
505
  date_range.to_a.first
@@ -522,7 +524,7 @@ module Mods
522
524
  case date_range
523
525
  when EDTF::Unknown
524
526
  nil
525
- when EDTF::Epoch, EDTF::Interval
527
+ when EDTF::Epoch, EDTF::Interval, EDTF::Season
526
528
  date_range.max
527
529
  when EDTF::Set
528
530
  date_range.to_a.last.change(month: 12, day: 31)
@@ -538,7 +540,7 @@ module Mods
538
540
 
539
541
  def date_range
540
542
  @date_range ||= if text =~ /u/
541
- ::Date.edtf(text.gsub('u', 'X')) || date
543
+ ::Date.edtf(text.gsub('u', 'x').gsub('X', 'x')) || date
542
544
  else
543
545
  date
544
546
  end
data/lib/mods/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Mods
2
2
  # this is the Ruby Gem version
3
- VERSION = '3.0.2'.freeze
3
+ VERSION = '3.0.3'.freeze
4
4
  end
@@ -101,7 +101,8 @@ RSpec.describe Mods::Date do
101
101
  '1900-06' => :month,
102
102
  '1900-06-uu' => :month,
103
103
  '1900-06-15' => :day,
104
- '2014-01-01/2020-12-31' => :day
104
+ '2014-01-01/2020-12-31' => :day,
105
+ '1986-22' => :month
105
106
  }.each do |data, expected|
106
107
  describe "with #{data}" do
107
108
  let(:date_element) { "<dateCreated encoding=\"edtf\">#{data}</dateCreated>" }
@@ -201,9 +202,9 @@ RSpec.describe Mods::Date do
201
202
  {
202
203
  '1905' => Date.parse('1905-01-01')..Date.parse('1905-12-31'),
203
204
  '190u' => Date.parse('1900-01-01')..Date.parse('1909-12-31'),
204
- '190X' => Date.parse('1900-01-01')..Date.parse('1909-12-31'),
205
+ '190x' => Date.parse('1900-01-01')..Date.parse('1909-12-31'),
205
206
  '19uu' => Date.parse('1900-01-01')..Date.parse('1999-12-31'),
206
- '19XX' => Date.parse('1900-01-01')..Date.parse('1999-12-31'),
207
+ '19xx' => Date.parse('1900-01-01')..Date.parse('1999-12-31'),
207
208
  '1856/1876' => Date.parse('1856-01-01')..Date.parse('1876-12-31'),
208
209
  '[1667,1668,1670..1672]' => Date.parse('1667-01-01')..Date.parse('1672-12-31'),
209
210
  '1900-uu' => Date.parse('1900-01-01')..Date.parse('1900-12-31'),
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mods
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naomi Dushay
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-04-11 00:00:00.000000000 Z
12
+ date: 2022-07-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri