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 +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.
|