mods 3.0.3 → 3.0.4

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