mods 3.0.3 → 3.0.4

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: f6ac4089b58e673c2783c670e689cb6901bbad611a7271c95f1f8909726beb07
4
- data.tar.gz: ee1ee35aeae21d319485212f56535e4bc06068470295f5adcf3ff8593a06c9d0
3
+ metadata.gz: ba231dc5a8e9d54605e9b7a066419c6d0bb63430bf0a245b7c143b206360daf6
4
+ data.tar.gz: 9ae4a4448f22fb661ff683dc1f4612be5a0531a7f41a1f8d0f2b59ef2232d180
5
5
  SHA512:
6
- metadata.gz: 553a4d9e91f50357ff56b5e2c19404386852308c30f06f67ccf6baa586f74f3f4bdbfd05826d3225aac8a0793bdccd5049994e5df04ef691a86c7777a21e554c
7
- data.tar.gz: a496b63bef0f1b512d0e3c87886ee80b6665dd90044387d5ce318cc2471d855fcac64839d7d95e9bca75ca1705d786ee0b6220e254b10d31fa32a79768521d66
6
+ metadata.gz: 7d8680c108fb0b5f915474530a73d097b52efd5ecb940b701a02d08228f56bf63be8194e034713949dfed6548a38236fe736089e0a792e453a50b00e627442ef
7
+ data.tar.gz: 3ddc2d8b385002a230a5a913f9f393ae8aabe4919569a19cd1c847404fe51e9ecc2e8e0951c87e07a312971eb5095619672487ffa9d0963cb7dfebbca11c8437
data/lib/mods/name.rb CHANGED
@@ -2,8 +2,8 @@ module Mods
2
2
 
3
3
  class Name
4
4
 
5
- CHILD_ELEMENTS = ['namePart', 'displayForm', 'affiliation', 'role', 'description']
6
-
5
+ CHILD_ELEMENTS = ['namePart', 'displayForm', 'affiliation', 'role', 'nameIdentifier', 'description']
6
+
7
7
  # attributes on name node
8
8
  ATTRIBUTES = Mods::AUTHORITY_ATTRIBS + Mods::LANG_ATTRIBS + ['type', 'displayLabel', 'usage', 'altRepGroup', 'nameTitleGroup']
9
9
 
@@ -11,7 +11,7 @@ module Mods
11
11
  TYPES = ['personal', 'corporate', 'conference', 'family']
12
12
  # valid values for type attribute on namePart node <name><namePart type="val"/></name>
13
13
  NAME_PART_TYPES = ['date', 'family', 'given', 'termsOfAddress']
14
-
14
+
15
15
  end
16
-
16
+
17
17
  end
@@ -143,6 +143,9 @@ module Mods
143
143
  end
144
144
  n.displayForm :path => 'm:displayForm'
145
145
  n.affiliation :path => 'm:affiliation'
146
+ n.nameIdentifier :path => 'm:nameIdentifier' do |ni|
147
+ with_attributes(ni, Mods::LANG_ATTRIBS | %w[displayLabel type typeURI invalid])
148
+ end
146
149
  n.description_el :path => 'm:description' # description is used by Nokogiri
147
150
  n.role :path => 'm:role' do |r|
148
151
  r.roleTerm :path => 'm:roleTerm' do |rt|
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.3'.freeze
3
+ VERSION = '3.0.4'.freeze
4
4
  end
@@ -197,6 +197,7 @@ RSpec.describe "Mods <name> Element" do
197
197
  <name>
198
198
  <namePart>Exciting Prints</namePart>
199
199
  <affiliation>whatever</affiliation>
200
+ <nameIdentifier typeURI="https://orcid.org" type="orcid">0000-0002-0666-0666</nameIdentifier>
200
201
  <description>anything</description>
201
202
  <role><roleTerm type='text'>some role</roleTerm></role>
202
203
  </name>
@@ -280,6 +281,26 @@ RSpec.describe "Mods <name> Element" do
280
281
  end
281
282
  end
282
283
 
284
+ context 'with a nameIdentifier' do
285
+ subject(:record) do
286
+ mods_record(<<-XML)
287
+ <name>
288
+ <name type="personal">Whoopie Goldberg</name>
289
+ <nameIdentifier typeURI="https://orcid.org" type="orcid">0000-0002-0666-0666</nameIdentifier>
290
+ <role><roleTerm type='text'>some role</roleTerm></role>
291
+ </name>
292
+ XML
293
+ end
294
+
295
+ it 'has the expected attributes for nameIdentifier' do
296
+ expect(record.plain_name.nameIdentifier.first).to have_attributes(
297
+ text: '0000-0002-0666-0666',
298
+ typeURI: 'https://orcid.org',
299
+ type_at: 'orcid'
300
+ )
301
+ end
302
+ end
303
+
283
304
  context 'without a family name and given name' do
284
305
  subject(:record) do
285
306
  mods_record("<name type='personal'>
@@ -349,6 +370,7 @@ RSpec.describe "Mods <name> Element" do
349
370
  </name>
350
371
  <name>
351
372
  <namePart>Daniel Craig</namePart>
373
+ <nameIdentifier typeURI="https://orcid.org" type="orcid">0000-0002-0666-0666</nameIdentifier>
352
374
  <role>
353
375
  <roleTerm type='text' authority='marcrelator'>Actor</roleTerm>
354
376
  <roleTerm type='code' authority='marcrelator'>cre</roleTerm>
@@ -363,6 +385,12 @@ RSpec.describe "Mods <name> Element" do
363
385
  have_attributes(role: have_attributes(value: ['CreatorFake', 'Actor'], code: ['cre'], authority: ['marcrelator', 'marcrelator'], size: 2)),
364
386
  have_attributes(role: have_attributes(value: ['Actor'], code: ['cre'], authority: ['marcrelator'], size: 1)),
365
387
  ])
388
+ expect(record.plain_name.last.nameIdentifier.first).to have_attributes(
389
+ text: '0000-0002-0666-0666',
390
+ typeURI: 'https://orcid.org',
391
+ type_at: 'orcid'
392
+ )
393
+ expect(record.plain_name.first.nameIdentifier).to be_empty
366
394
  end
367
395
  end
368
396
  end
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.3
4
+ version: 3.0.4
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-07-13 00:00:00.000000000 Z
12
+ date: 2023-10-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -222,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
222
  - !ruby/object:Gem::Version
223
223
  version: '0'
224
224
  requirements: []
225
- rubygems_version: 3.2.32
225
+ rubygems_version: 3.4.13
226
226
  signing_key:
227
227
  specification_version: 4
228
228
  summary: Parse MODS (Metadata Object Description Schema) records.