bolognese 1.11.0 → 1.11.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/build.yml +0 -14
- data/.github/workflows/release.yml +0 -10
- data/Gemfile.lock +33 -34
- data/lib/bolognese/author_utils.rb +13 -1
- data/lib/bolognese/metadata.rb +5 -0
- data/lib/bolognese/utils.rb +1 -1
- data/lib/bolognese/version.rb +1 -1
- data/lib/bolognese/writers/ris_writer.rb +1 -1
- data/lib/bolognese/writers/schema_org_writer.rb +1 -1
- data/spec/author_utils_spec.rb +29 -5
- data/spec/fixtures/citeproc.json +4 -2
- data/spec/fixtures/datacite-example-ROR-nameIdentifiers.xml +7 -0
- data/spec/fixtures/datacite.json +9 -3
- data/spec/readers/datacite_reader_spec.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 84e06f3ca24650902cd1d96f777b2103a242fc44346d9995667961f090c1e300
|
4
|
+
data.tar.gz: 047d14ab54b8a9aa0569bdaeb90806a8a835809f399693c2b29c0a97e9eb0658
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2547f9e0c41915163269e3802c32c2f73abf6977987748eb70eec7d324585487585a3952a8874bb40e35e4d65d748e6968c0d1f7d92f76992ee3068b2cd718dd
|
7
|
+
data.tar.gz: 3beb48ca299e9b0a1ab95e7e74fabd99e127c374a513b9b775644695e12ac489f3d35851bc1553bc01a593c2ce3c84bc37e8f5e2bd452f6ac561d431edd4f669
|
data/.github/workflows/build.yml
CHANGED
@@ -7,17 +7,3 @@ on:
|
|
7
7
|
jobs:
|
8
8
|
ci:
|
9
9
|
uses: ./.github/workflows/ci.yml
|
10
|
-
build:
|
11
|
-
needs: ci
|
12
|
-
runs-on: ubuntu-latest
|
13
|
-
env:
|
14
|
-
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
15
|
-
steps:
|
16
|
-
- name: Notify Slack
|
17
|
-
uses: adamkdean/simple-slack-notify@1.0.4
|
18
|
-
with:
|
19
|
-
channel: '#ops'
|
20
|
-
username: 'GitHub Actions'
|
21
|
-
color: 'good'
|
22
|
-
text: 'A new version of the bolognese gem is ready for release.'
|
23
|
-
|
@@ -9,8 +9,6 @@ jobs:
|
|
9
9
|
build:
|
10
10
|
needs: ci
|
11
11
|
runs-on: ubuntu-latest
|
12
|
-
env:
|
13
|
-
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
14
12
|
steps:
|
15
13
|
- uses: actions/checkout@v3
|
16
14
|
- name: Set up Ruby 2.6
|
@@ -32,11 +30,3 @@ jobs:
|
|
32
30
|
gem push *.gem
|
33
31
|
env:
|
34
32
|
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
35
|
-
|
36
|
-
- name: Notify Slack
|
37
|
-
uses: adamkdean/simple-slack-notify@1.0.4
|
38
|
-
with:
|
39
|
-
channel: '#ops'
|
40
|
-
username: 'GitHub Actions'
|
41
|
-
color: 'good'
|
42
|
-
text: 'A new version of the bolognese gem has been released.'
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
bolognese (1.11.
|
4
|
+
bolognese (1.11.3)
|
5
5
|
activesupport (>= 4.2.5)
|
6
6
|
benchmark_methods (~> 0.7)
|
7
7
|
bibtex-ruby (>= 5.1.0)
|
@@ -29,7 +29,7 @@ PATH
|
|
29
29
|
GEM
|
30
30
|
remote: https://rubygems.org/
|
31
31
|
specs:
|
32
|
-
activesupport (6.1.7)
|
32
|
+
activesupport (6.1.7.3)
|
33
33
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
34
34
|
i18n (>= 1.6, < 2)
|
35
35
|
minitest (>= 5.1)
|
@@ -37,7 +37,6 @@ GEM
|
|
37
37
|
zeitwerk (~> 2.3)
|
38
38
|
addressable (2.8.1)
|
39
39
|
public_suffix (>= 2.0.2, < 6.0)
|
40
|
-
amazing_print (1.4.0)
|
41
40
|
benchmark_methods (0.7)
|
42
41
|
bibtex-ruby (6.0.0)
|
43
42
|
latex-decode (~> 0.0)
|
@@ -48,7 +47,7 @@ GEM
|
|
48
47
|
citeproc (~> 1.0, >= 1.0.9)
|
49
48
|
csl (~> 1.6)
|
50
49
|
colorize (0.8.1)
|
51
|
-
concurrent-ruby (1.
|
50
|
+
concurrent-ruby (1.2.2)
|
52
51
|
crack (0.4.5)
|
53
52
|
rexml
|
54
53
|
crass (1.0.6)
|
@@ -59,17 +58,16 @@ GEM
|
|
59
58
|
csl (~> 1.0)
|
60
59
|
diff-lcs (1.5.0)
|
61
60
|
docile (1.4.0)
|
62
|
-
ebnf (2.3.
|
63
|
-
amazing_print (~> 1.4)
|
61
|
+
ebnf (2.3.3)
|
64
62
|
htmlentities (~> 4.3)
|
65
63
|
rdf (~> 3.2)
|
66
64
|
scanf (~> 1.0)
|
67
65
|
sxp (~> 1.2)
|
68
|
-
unicode-types (~> 1.
|
69
|
-
edtf (3.1.
|
66
|
+
unicode-types (~> 1.8)
|
67
|
+
edtf (3.1.1)
|
70
68
|
activesupport (>= 3.0, < 8.0)
|
71
69
|
excon (0.71.1)
|
72
|
-
faraday (2.6
|
70
|
+
faraday (2.7.6)
|
73
71
|
faraday-net_http (>= 2.0, < 3.1)
|
74
72
|
ruby2_keywords (>= 0.0.4)
|
75
73
|
faraday-encoding (0.0.5)
|
@@ -84,7 +82,7 @@ GEM
|
|
84
82
|
zlib (~> 2.1)
|
85
83
|
faraday-multipart (1.0.4)
|
86
84
|
multipart-post (~> 2)
|
87
|
-
faraday-net_http (3.0.
|
85
|
+
faraday-net_http (3.0.2)
|
88
86
|
gender_detector (0.1.2)
|
89
87
|
unicode_utils (>= 1.3.0)
|
90
88
|
haml (5.2.2)
|
@@ -92,19 +90,19 @@ GEM
|
|
92
90
|
tilt
|
93
91
|
hashdiff (1.0.1)
|
94
92
|
htmlentities (4.3.4)
|
95
|
-
i18n (1.
|
93
|
+
i18n (1.14.1)
|
96
94
|
concurrent-ruby (~> 1.0)
|
97
95
|
iso8601 (0.9.1)
|
98
96
|
json (2.6.2)
|
99
|
-
json-canonicalization (0.3.
|
100
|
-
json-ld (3.2.
|
97
|
+
json-canonicalization (0.3.2)
|
98
|
+
json-ld (3.2.5)
|
101
99
|
htmlentities (~> 4.3)
|
102
|
-
json-canonicalization (~> 0.3)
|
100
|
+
json-canonicalization (~> 0.3, >= 0.3.2)
|
103
101
|
link_header (~> 0.0, >= 0.0.8)
|
104
102
|
multi_json (~> 1.15)
|
105
|
-
rack (
|
106
|
-
rdf (~> 3.2, >= 3.2.
|
107
|
-
json-ld-preloaded (3.2.
|
103
|
+
rack (>= 2.2, < 4)
|
104
|
+
rdf (~> 3.2, >= 3.2.10)
|
105
|
+
json-ld-preloaded (3.2.2)
|
108
106
|
json-ld (~> 3.2)
|
109
107
|
rdf (~> 3.2)
|
110
108
|
jsonlint (0.3.0)
|
@@ -112,9 +110,9 @@ GEM
|
|
112
110
|
optimist (~> 3)
|
113
111
|
latex-decode (0.4.0)
|
114
112
|
link_header (0.0.8)
|
115
|
-
loofah (2.
|
113
|
+
loofah (2.21.3)
|
116
114
|
crass (~> 1.0.2)
|
117
|
-
nokogiri (>= 1.
|
115
|
+
nokogiri (>= 1.12.0)
|
118
116
|
maremma (4.9.9)
|
119
117
|
activesupport (>= 4.2.5)
|
120
118
|
addressable (>= 2.3.6)
|
@@ -131,14 +129,14 @@ GEM
|
|
131
129
|
oj_mimic_json (~> 1.0, >= 1.0.1)
|
132
130
|
matrix (0.4.2)
|
133
131
|
mini_portile2 (2.8.0)
|
134
|
-
minitest (5.
|
132
|
+
minitest (5.18.0)
|
135
133
|
multi_json (1.15.0)
|
136
|
-
multipart-post (2.
|
134
|
+
multipart-post (2.3.0)
|
137
135
|
namae (1.1.1)
|
138
136
|
nokogiri (1.13.9)
|
139
137
|
mini_portile2 (~> 2.8.0)
|
140
138
|
racc (~> 1.4)
|
141
|
-
oj (3.
|
139
|
+
oj (3.14.2)
|
142
140
|
oj_mimic_json (1.0.1)
|
143
141
|
optimist (3.0.1)
|
144
142
|
postrank-uri (1.0.24)
|
@@ -151,18 +149,19 @@ GEM
|
|
151
149
|
rack-test (0.8.3)
|
152
150
|
rack (>= 1.0, < 3)
|
153
151
|
rake (12.3.3)
|
154
|
-
rdf (3.2.
|
152
|
+
rdf (3.2.11)
|
155
153
|
link_header (~> 0.0, >= 0.0.8)
|
156
154
|
rdf-aggregate-repo (3.2.1)
|
157
155
|
rdf (~> 3.2)
|
158
|
-
rdf-rdfa (3.2.
|
159
|
-
haml (
|
156
|
+
rdf-rdfa (3.2.2)
|
157
|
+
haml (>= 5.2, < 7)
|
160
158
|
htmlentities (~> 4.3)
|
161
159
|
rdf (~> 3.2)
|
162
160
|
rdf-aggregate-repo (~> 3.2)
|
163
161
|
rdf-vocab (~> 3.2)
|
164
162
|
rdf-xsd (~> 3.2)
|
165
|
-
rdf-rdfxml (3.2.
|
163
|
+
rdf-rdfxml (3.2.1)
|
164
|
+
haml (~> 5.2)
|
166
165
|
htmlentities (~> 4.3)
|
167
166
|
rdf (~> 3.2)
|
168
167
|
rdf-rdfa (~> 3.2)
|
@@ -170,7 +169,7 @@ GEM
|
|
170
169
|
rdf-turtle (3.2.1)
|
171
170
|
ebnf (~> 2.3)
|
172
171
|
rdf (~> 3.2)
|
173
|
-
rdf-vocab (3.2.
|
172
|
+
rdf-vocab (3.2.6)
|
174
173
|
rdf (~> 3.2, >= 3.2.4)
|
175
174
|
rdf-xsd (3.2.1)
|
176
175
|
rdf (~> 3.2)
|
@@ -199,13 +198,13 @@ GEM
|
|
199
198
|
json (>= 1.8, < 3)
|
200
199
|
simplecov-html (~> 0.10.0)
|
201
200
|
simplecov-html (0.10.2)
|
202
|
-
sxp (1.2.
|
201
|
+
sxp (1.2.4)
|
203
202
|
matrix (~> 0.4)
|
204
203
|
rdf (~> 3.2)
|
205
|
-
temple (0.
|
206
|
-
thor (1.2.
|
207
|
-
tilt (2.0
|
208
|
-
tzinfo (2.0.
|
204
|
+
temple (0.10.2)
|
205
|
+
thor (1.2.2)
|
206
|
+
tilt (2.2.0)
|
207
|
+
tzinfo (2.0.6)
|
209
208
|
concurrent-ruby (~> 1.0)
|
210
209
|
unicode-types (1.8.0)
|
211
210
|
unicode_utils (1.4.0)
|
@@ -214,7 +213,7 @@ GEM
|
|
214
213
|
addressable (>= 2.8.0)
|
215
214
|
crack (>= 0.3.2)
|
216
215
|
hashdiff (>= 0.4.0, < 2.0.0)
|
217
|
-
zeitwerk (2.6.
|
216
|
+
zeitwerk (2.6.8)
|
218
217
|
zlib (2.1.1)
|
219
218
|
|
220
219
|
PLATFORMS
|
@@ -233,4 +232,4 @@ DEPENDENCIES
|
|
233
232
|
webmock (~> 3.0, >= 3.0.1)
|
234
233
|
|
235
234
|
BUNDLED WITH
|
236
|
-
2.
|
235
|
+
2.4.10
|
@@ -144,16 +144,28 @@ module Bolognese
|
|
144
144
|
affiliation_identifier_scheme = nil
|
145
145
|
scheme_uri = nil
|
146
146
|
else
|
147
|
+
scheme_uri = a["schemeURI"]
|
147
148
|
if a["affiliationIdentifier"].present?
|
148
149
|
affiliation_identifier = a["affiliationIdentifier"]
|
149
150
|
if a["schemeURI"].present?
|
150
151
|
schemeURI = a["schemeURI"].end_with?("/") ? a["schemeURI"] : a["schemeURI"] + "/"
|
151
152
|
end
|
152
153
|
affiliation_identifier = !affiliation_identifier.to_s.start_with?("https://") && schemeURI.present? ? normalize_id(schemeURI + affiliation_identifier) : normalize_id(affiliation_identifier)
|
154
|
+
# The normalize_id(affiliation_identifier) method currently discards affiliation identifiers that don't start with a URL,
|
155
|
+
# for example: affiliation_identifier = "05bp8ka05".
|
156
|
+
# To address this issue, we are introducing the following change to handle such affiliation identifiers.
|
157
|
+
# when `normalize_id` method could not normalize, it returns nil, hence we have following condition
|
158
|
+
if affiliation_identifier.nil?
|
159
|
+
if a["affiliationIdentifierScheme"] == "ROR"
|
160
|
+
scheme_uri = "https://ror.org"
|
161
|
+
affiliation_identifier = normalize_ror(a["affiliationIdentifier"])
|
162
|
+
else
|
163
|
+
affiliation_identifier = a["affiliationIdentifier"]
|
164
|
+
end
|
165
|
+
end
|
153
166
|
end
|
154
167
|
name = a["__content__"].to_s.squish.presence
|
155
168
|
affiliation_identifier_scheme = a["affiliationIdentifierScheme"]
|
156
|
-
scheme_uri = a["SchemeURI"]
|
157
169
|
end
|
158
170
|
|
159
171
|
{ "name" => name,
|
data/lib/bolognese/metadata.rb
CHANGED
@@ -156,6 +156,11 @@ module Bolognese
|
|
156
156
|
@descriptions ||= meta.fetch("descriptions", nil)
|
157
157
|
end
|
158
158
|
|
159
|
+
def abstract_description
|
160
|
+
# Fetch the first description with descriptionType "Abstract"
|
161
|
+
@abstract_description ||= descriptions&.find { |d| d["descriptionType"] == "Abstract" }
|
162
|
+
end
|
163
|
+
|
159
164
|
def rights_list
|
160
165
|
@rights_list ||= meta.fetch("rights_list", nil)
|
161
166
|
end
|
data/lib/bolognese/utils.rb
CHANGED
@@ -1021,7 +1021,7 @@ module Bolognese
|
|
1021
1021
|
Array.wrap(element).map do |a|
|
1022
1022
|
if a["literal"].present?
|
1023
1023
|
a["@type"] = "Organization"
|
1024
|
-
a["
|
1024
|
+
a["creatorName"] = a["literal"]
|
1025
1025
|
else
|
1026
1026
|
a["@type"] = "Person"
|
1027
1027
|
a["name"] = [a["given"], a["family"]].compact.join(" ")
|
data/lib/bolognese/version.rb
CHANGED
@@ -11,7 +11,7 @@ module Bolognese
|
|
11
11
|
"AU" => to_ris(creators),
|
12
12
|
"DO" => doi,
|
13
13
|
"UR" => url,
|
14
|
-
"AB" => parse_attributes(
|
14
|
+
"AB" => parse_attributes(abstract_description, content: "description", first: true),
|
15
15
|
"KW" => Array.wrap(subjects).map { |k| parse_attributes(k, content: "subject", first: true) }.presence,
|
16
16
|
"PY" => publication_year,
|
17
17
|
"PB" => publisher,
|
@@ -13,7 +13,7 @@ module Bolognese
|
|
13
13
|
"name" => parse_attributes(titles, content: "title", first: true),
|
14
14
|
"author" => to_schema_org_creators(creators),
|
15
15
|
"editor" => to_schema_org_contributors(contributors),
|
16
|
-
"description" => parse_attributes(
|
16
|
+
"description" => parse_attributes(abstract_description, content: "description", first: true),
|
17
17
|
"license" => Array.wrap(rights_list).map { |l| l["rightsUri"] }.compact.unwrap,
|
18
18
|
"version" => version_info,
|
19
19
|
"keywords" => subjects.present? ? Array.wrap(subjects).map { |k| parse_attributes(k, content: "subject", first: true) }.join(", ") : nil,
|
data/spec/author_utils_spec.rb
CHANGED
@@ -163,15 +163,39 @@ describe Bolognese::Metadata, vcr: true do
|
|
163
163
|
it "has ROR nameIdentifiers" do
|
164
164
|
input = fixture_path + 'datacite-example-ROR-nameIdentifiers.xml'
|
165
165
|
subject = Bolognese::Metadata.new(input: input, from: "datacite")
|
166
|
-
expect(subject.creators[
|
167
|
-
expect(subject.creators[
|
168
|
-
expect(subject.creators[
|
169
|
-
expect(subject.creators[
|
170
|
-
expect(subject.creators[
|
166
|
+
expect(subject.creators[2]).to eq("nameType"=>"Organizational", "name"=>"Gump South Pacific Research Station", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/04sk0et52", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[])
|
167
|
+
expect(subject.creators[3]).to eq("nameType"=>"Organizational", "name"=>"University Of Vic", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/006zjws59", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[])
|
168
|
+
expect(subject.creators[4]).to eq("nameType"=>"Organizational", "name"=>"University Of Kivu", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/01qfhxr31", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[])
|
169
|
+
expect(subject.creators[5]).to eq("nameType"=>"Organizational", "name"=>"សាកលវិទ្យាល័យកម្ពុជា", "nameIdentifiers"=> [{"nameIdentifier"=>"http://ror.org/025e3rc84", "nameIdentifierScheme"=>"RORS"}], "affiliation"=>[])
|
170
|
+
expect(subject.creators[6]).to eq("nameType"=>"Organizational", "name"=>"جامعة زاخۆ", "nameIdentifiers"=> [{"nameIdentifier"=>"05sd1pz50", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"RORS"}], "affiliation"=>[])
|
171
171
|
expect(subject.contributors.first).to eq("nameType"=>"Organizational", "name"=>" Nawroz University ", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/04gp75d48", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[], "contributorType"=>"Producer")
|
172
172
|
expect(subject.contributors.last).to eq("nameType"=>"Organizational", "name"=>"University Of Greenland (Https://Www.Uni.Gl/)", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/00t5j6b61", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}],"affiliation"=>[], "contributorType"=>"Sponsor")
|
173
173
|
end
|
174
174
|
|
175
|
+
context "affiliationIdentifier" do
|
176
|
+
it "should normalize ROR affiliationIdentifier with and without URL" do
|
177
|
+
input = fixture_path + 'datacite-example-ROR-nameIdentifiers.xml'
|
178
|
+
subject = Bolognese::Metadata.new(input: input, from: "datacite")
|
179
|
+
# without URL inside affiliationIdentifier="05bp8ka77"
|
180
|
+
ror_affiliater0 = subject.creators[0]["affiliation"].select { |r| r["affiliationIdentifierScheme"] == "ROR" }
|
181
|
+
expect(ror_affiliater0[0]["affiliationIdentifier"]).to eq("https://ror.org/05bp8ka77")
|
182
|
+
# with URL "affiliationIdentifier"=>"https://ror.org/05bp8ka05"
|
183
|
+
ror_affiliater1 = subject.creators[1]["affiliation"].select { |r| r["affiliationIdentifierScheme"] == "ROR" }
|
184
|
+
expect(ror_affiliater1[0]["affiliationIdentifier"]).to eq("https://ror.org/05bp8ka05")
|
185
|
+
end
|
186
|
+
|
187
|
+
it "should parse non ROR schema's without normalizing them" do
|
188
|
+
input = fixture_path + 'datacite-example-ROR-nameIdentifiers.xml'
|
189
|
+
subject = Bolognese::Metadata.new(input: input, from: "datacite")
|
190
|
+
# without "schemeURI"
|
191
|
+
grid_affiliater0 = subject.creators[0]["affiliation"].select { |r| r["affiliationIdentifierScheme"] == "GRID" }
|
192
|
+
expect(grid_affiliater0[0]["affiliationIdentifier"]).to eq("grid.268117.b")
|
193
|
+
# with "schemeURI"=>"https://grid.ac/institutes/"
|
194
|
+
grid_affiliater1 = subject.creators[1]["affiliation"].select { |r| r["affiliationIdentifierScheme"] == "GRID" }
|
195
|
+
expect(grid_affiliater1[0]["affiliationIdentifier"]).to eq("https://grid.ac/institutes/grid.268117.b")
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
175
199
|
context "authors_as_string" do
|
176
200
|
let(:author_with_organization) { [{"type"=>"Person",
|
177
201
|
"id"=>"http://orcid.org/0000-0003-0077-4738",
|
data/spec/fixtures/citeproc.json
CHANGED
@@ -3,10 +3,17 @@
|
|
3
3
|
xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-%s http://schema.datacite.org/meta/kernel-4/metadata.xsd">
|
4
4
|
<identifier identifierType="DOI">10.48321/D1Z60Q</identifier>
|
5
5
|
<creators>
|
6
|
+
<creator>
|
7
|
+
<creatorName nameType="Personal">Ashwini Sukale</creatorName>
|
8
|
+
<nameIdentifier schemeURI="https://orcid.org/" nameIdentifierScheme="ORCID"> https://orcid.org/0000-0001-9998-0117 </nameIdentifier>
|
9
|
+
<affiliation affiliationIdentifier="05bp8ka77" affiliationIdentifierScheme="ROR"> Metadata Game Changers </affiliation>
|
10
|
+
<affiliation affiliationIdentifier="grid.268117.b" affiliationIdentifierScheme="GRID">Wesleyan University</affiliation>
|
11
|
+
</creator>
|
6
12
|
<creator>
|
7
13
|
<creatorName nameType="Personal">Erin Robinson</creatorName>
|
8
14
|
<nameIdentifier schemeURI="https://orcid.org/" nameIdentifierScheme="ORCID"> https://orcid.org/0000-0001-9998-0114 </nameIdentifier>
|
9
15
|
<affiliation schemeURI="https://ror.org" affiliationIdentifier="https://ror.org/05bp8ka05" affiliationIdentifierScheme="ROR"> Metadata Game Changers </affiliation>
|
16
|
+
<affiliation affiliationIdentifier="grid.268117.b" affiliationIdentifierScheme="GRID" schemeURI="https://grid.ac/institutes/">Wesleyan University</affiliation>
|
10
17
|
</creator>
|
11
18
|
<creator>
|
12
19
|
<creatorName nameType="Organizational">Gump South Pacific Research Station</creatorName>
|
data/spec/fixtures/datacite.json
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
}
|
44
44
|
],
|
45
45
|
"dates": [
|
46
|
-
{
|
46
|
+
{
|
47
47
|
"dateType": "Created",
|
48
48
|
"date": "2016-12-20"
|
49
49
|
},
|
@@ -74,10 +74,16 @@
|
|
74
74
|
}
|
75
75
|
],
|
76
76
|
"version": "1.0",
|
77
|
-
"descriptions": [
|
77
|
+
"descriptions": [
|
78
|
+
{
|
79
|
+
"descriptionType": "SeriesInformation",
|
80
|
+
"description": "Volume(1) Series(3)"
|
81
|
+
},
|
82
|
+
{
|
78
83
|
"descriptionType": "Abstract",
|
79
84
|
"description": "Eating your own dog food is a slang term to describe that an organization should itself use the products and services it provides. For DataCite this means that we should use DOIs with appropriate metadata and strategies for long-term preservation for..."
|
80
|
-
|
85
|
+
}
|
86
|
+
],
|
81
87
|
"schemaVersion": "http://datacite.org/schema/kernel-4",
|
82
88
|
"agency": "datacite"
|
83
89
|
}
|
@@ -121,7 +121,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
121
121
|
"name"=>"Brown University"},
|
122
122
|
{"affiliationIdentifier"=>"https://grid.ac/institutes/grid.268117.b",
|
123
123
|
"affiliationIdentifierScheme"=>"GRID",
|
124
|
-
"name"=>"Wesleyan University"}])
|
124
|
+
"name"=>"Wesleyan University", "schemeUri"=>"https://grid.ac/institutes/"}])
|
125
125
|
expect(subject.creators.dig(2, "affiliation")).to eq([{"affiliationIdentifier"=>"https://ror.org/05gq02987",
|
126
126
|
"affiliationIdentifierScheme"=>"ROR", "name"=>"Brown University"}])
|
127
127
|
expect(subject.titles).to eq([{"lang"=>"en-US", "title"=>"Full DataCite XML Example"}, {"lang"=>"en-US", "title"=>"Demonstration of DataCite Properties.", "titleType"=>"Subtitle"}])
|
@@ -950,7 +950,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
950
950
|
expect(subject.types["ris"]).to eq("DATA")
|
951
951
|
expect(subject.types["bibtex"]).to eq("misc")
|
952
952
|
expect(subject.creators.length).to eq(1)
|
953
|
-
expect(subject.creators.first).to eq("affiliation" => [{"affiliationIdentifier"=>"https://ror.org/04zt3wx35", "affiliationIdentifierScheme"=>"ROR", "name"=>"Canada Mortgage and Housing Corporation"}],
|
953
|
+
expect(subject.creators.first).to eq("affiliation" => [{"affiliationIdentifier"=>"https://ror.org/04zt3wx35", "affiliationIdentifierScheme"=>"ROR", "name"=>"Canada Mortgage and Housing Corporation", "schemeUri"=>"https://ror.org"}],
|
954
954
|
"name" => "Statistique Canada",
|
955
955
|
"nameIdentifiers" => [],
|
956
956
|
"nameType" => "Organizational")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bolognese
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.11.
|
4
|
+
version: 1.11.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Fenner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: maremma
|