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 +4 -4
- data/lib/mods/name.rb +4 -4
- data/lib/mods/nom_terminology.rb +3 -0
- data/lib/mods/version.rb +1 -1
- data/spec/lib/name_spec.rb +28 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba231dc5a8e9d54605e9b7a066419c6d0bb63430bf0a245b7c143b206360daf6
|
4
|
+
data.tar.gz: 9ae4a4448f22fb661ff683dc1f4612be5a0531a7f41a1f8d0f2b59ef2232d180
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/lib/mods/nom_terminology.rb
CHANGED
@@ -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
data/spec/lib/name_spec.rb
CHANGED
@@ -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.
|
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:
|
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.
|
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.
|