bolognese 1.2.2 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/bolognese/readers/crossref_reader.rb +13 -7
- data/lib/bolognese/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/missing_creator.yml +89 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_t.yml +47 -0
- data/spec/readers/crossref_reader_spec.rb +15 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 168dbdf9c5d9941dc078dd58d9696fa8c725a6eda1b33ec0a683b7ecfc0ac00d
|
4
|
+
data.tar.gz: d156284fc1a2c67d5bc401e571909ab1c192bba5963b06e266c4a1d19ba4bc7b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1514f703356abef2dfc1dfb1be6131d2d1d5f861c89352780918aa57ee4878b61779ffa2f41221575abf09e15198f67e5491a923cfaad00b13d3ef233ddc8059
|
7
|
+
data.tar.gz: 9c39ab0ded867281c7fbfc3edca254e5cef2f023339d56e8ed00fd7755a7361cbf6569a6cf1c42d577e0e534f755c83587ee68e33900b6372eb8599f488b5bc4
|
data/Gemfile.lock
CHANGED
@@ -174,15 +174,21 @@ module Bolognese
|
|
174
174
|
end
|
175
175
|
|
176
176
|
def crossref_people(bibliographic_metadata, contributor_role)
|
177
|
-
person = bibliographic_metadata.dig("contributors", "person_name")
|
177
|
+
person = bibliographic_metadata.dig("contributors", "person_name") || [{ "name" => ":(unav)", "contributor_role"=>"author" }]
|
178
178
|
Array.wrap(person).select { |a| a["contributor_role"] == contributor_role }.map do |a|
|
179
179
|
name_identifiers = normalize_orcid(parse_attributes(a["ORCID"])).present? ? [{ "nameIdentifier" => normalize_orcid(parse_attributes(a["ORCID"])), "nameIdentifierScheme" => "ORCID", "schemeUri"=>"https://orcid.org" }] : nil
|
180
|
-
|
181
|
-
"
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
180
|
+
if a["surname"].present? || a["given_name"].present? || name_identifiers.present?
|
181
|
+
{ "nameType" => "Personal",
|
182
|
+
"nameIdentifiers" => name_identifiers,
|
183
|
+
"name" => [a["surname"], a["given_name"]].join(", "),
|
184
|
+
"givenName" => a["given_name"],
|
185
|
+
"familyName" => a["surname"],
|
186
|
+
"contributorType" => contributor_role == "editor" ? "Editor" : nil }.compact
|
187
|
+
else
|
188
|
+
{ "nameType" => "Organizational",
|
189
|
+
"name" => a["name"],
|
190
|
+
"contributorType" => a["contributor_role"] }
|
191
|
+
end
|
186
192
|
end.unwrap
|
187
193
|
end
|
188
194
|
|
data/lib/bolognese/version.rb
CHANGED
@@ -0,0 +1,89 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://doi.org/ra/10.3390
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Mozilla/5.0 (compatible; Maremma/4.2.3; mailto:info@datacite.org)
|
12
|
+
Accept:
|
13
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: ''
|
18
|
+
headers:
|
19
|
+
Date:
|
20
|
+
- Thu, 04 Jul 2019 13:49:19 GMT
|
21
|
+
Content-Type:
|
22
|
+
- application/json;charset=UTF-8
|
23
|
+
Content-Length:
|
24
|
+
- '54'
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
Set-Cookie:
|
28
|
+
- __cfduid=d819a54129d741ec2c3f8479097efe6cb1562248159; expires=Fri, 03-Jul-20
|
29
|
+
13:49:19 GMT; path=/; domain=.doi.org; HttpOnly
|
30
|
+
Expect-Ct:
|
31
|
+
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
32
|
+
Server:
|
33
|
+
- cloudflare
|
34
|
+
Cf-Ray:
|
35
|
+
- 4f118fd1cda4a8af-CDG
|
36
|
+
body:
|
37
|
+
encoding: ASCII-8BIT
|
38
|
+
string: |-
|
39
|
+
[
|
40
|
+
{
|
41
|
+
"DOI": "10.3390",
|
42
|
+
"RA": "Crossref"
|
43
|
+
}
|
44
|
+
]
|
45
|
+
http_version:
|
46
|
+
recorded_at: Thu, 04 Jul 2019 13:49:19 GMT
|
47
|
+
- request:
|
48
|
+
method: get
|
49
|
+
uri: https://api.crossref.org/works/10.3390/publications6020015/transform/application/vnd.crossref.unixsd+xml
|
50
|
+
body:
|
51
|
+
encoding: US-ASCII
|
52
|
+
string: ''
|
53
|
+
headers:
|
54
|
+
User-Agent:
|
55
|
+
- Mozilla/5.0 (compatible; Maremma/4.2.3; mailto:info@datacite.org)
|
56
|
+
Accept:
|
57
|
+
- text/xml
|
58
|
+
response:
|
59
|
+
status:
|
60
|
+
code: 200
|
61
|
+
message: OK
|
62
|
+
headers:
|
63
|
+
Link:
|
64
|
+
- <http://dx.doi.org/10.3390/publications6020015>; rel="canonical", <http://www.mdpi.com/2304-6775/6/2/15/pdf>;
|
65
|
+
version="vor"; rel="item", <https://creativecommons.org/licenses/by/4.0/>;
|
66
|
+
rel="license"
|
67
|
+
Access-Control-Allow-Origin:
|
68
|
+
- "*"
|
69
|
+
Access-Control-Allow-Headers:
|
70
|
+
- X-Requested-With
|
71
|
+
Content-Length:
|
72
|
+
- '10550'
|
73
|
+
Server:
|
74
|
+
- http-kit
|
75
|
+
Date:
|
76
|
+
- Thu, 04 Jul 2019 13:49:19 GMT
|
77
|
+
X-Rate-Limit-Limit:
|
78
|
+
- '50'
|
79
|
+
X-Rate-Limit-Interval:
|
80
|
+
- 1s
|
81
|
+
Connection:
|
82
|
+
- close
|
83
|
+
body:
|
84
|
+
encoding: ASCII-8BIT
|
85
|
+
string: !binary |-
|
86
|
+
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iam91cm5hbF9hcnRpY2xlIj4xMC4zMzkwL3B1YmxpY2F0aW9uczYwMjAwMTU8L2RvaT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9InB1Ymxpc2hlci1uYW1lIiB0eXBlPSJzdHJpbmciPk1EUEkgQUc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icHJlZml4LW5hbWUiIHR5cGU9InN0cmluZyI+TURQSSBBRzwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJtZW1iZXItaWQiIHR5cGU9Im51bWJlciI+MTk2ODwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjaXRhdGlvbi1pZCIgdHlwZT0ibnVtYmVyIj45NzczMzY5NjwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJqb3VybmFsLWlkIiB0eXBlPSJudW1iZXIiPjE5NDY2NTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJkZXBvc2l0LXRpbWVzdGFtcCIgdHlwZT0ibnVtYmVyIj4yMDE4MDQxMDE4NTgzODwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJvd25lci1wcmVmaXgiIHR5cGU9InN0cmluZyI+MTAuMzM5MDwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJsYXN0LXVwZGF0ZSIgdHlwZT0iZGF0ZSI+MjAxOC0wNC0xMFQxNzo1ODowNVo8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY3JlYXRlZCIgdHlwZT0iZGF0ZSI+MjAxOC0wNC0xMFQxNzowNjowOFo8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0ZWRieS1jb3VudCIgdHlwZT0ibnVtYmVyIj4wPC9jcm0taXRlbT4NCiAgICAgICAgPGRvaV9yZWNvcmQ+DQogICAgICAgICAgPGNyb3NzcmVmIHhtbG5zPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy94c2NoZW1hLzEuMSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy94c2NoZW1hLzEuMSBodHRwOi8vZG9pLmNyb3NzcmVmLm9yZy9zY2hlbWFzL3VuaXhyZWYxLjEueHNkIj4NCiAgICAgICAgICAgIDxqb3VybmFsPg0KICAgICAgICAgICAgICA8am91cm5hbF9tZXRhZGF0YSBsYW5ndWFnZT0iZW4iPg0KICAgICAgICAgICAgICAgIDxmdWxsX3RpdGxlPlB1YmxpY2F0aW9uczwvZnVsbF90aXRsZT4NCiAgICAgICAgICAgICAgICA8YWJicmV2X3RpdGxlPlB1YmxpY2F0aW9uczwvYWJicmV2X3RpdGxlPg0KICAgICAgICAgICAgICAgIDxpc3NuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjIzMDQtNjc3NTwvaXNzbj4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX21ldGFkYXRhPg0KICAgICAgICAgICAgICA8am91cm5hbF9pc3N1ZT4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJvbmxpbmUiPg0KICAgICAgICAgICAgICAgICAgPG1vbnRoPjY8L21vbnRoPg0KICAgICAgICAgICAgICAgICAgPHllYXI+MjAxODwveWVhcj4NCiAgICAgICAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgPGpvdXJuYWxfdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgPHZvbHVtZT42PC92b2x1bWU+DQogICAgICAgICAgICAgICAgPC9qb3VybmFsX3ZvbHVtZT4NCiAgICAgICAgICAgICAgICA8aXNzdWU+MjwvaXNzdWU+DQogICAgICAgICAgICAgIDwvam91cm5hbF9pc3N1ZT4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfYXJ0aWNsZSBwdWJsaWNhdGlvbl90eXBlPSJmdWxsX3RleHQiPg0KICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICA8dGl0bGU+Q29udmVydGluZyB0aGUgTGl0ZXJhdHVyZSBvZiBhIFNjaWVudGlmaWMgRmllbGQgdG8gT3BlbiBBY2Nlc3MgdGhyb3VnaCBHbG9iYWwgQ29sbGFib3JhdGlvbjogVGhlIEV4cGVyaWVuY2Ugb2YgU0NPQVAzIGluIFBhcnRpY2xlIFBoeXNpY3M8L3RpdGxlPg0KICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgIDxjb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgICA8b3JnYW5pemF0aW9uIHNlcXVlbmNlPSJmaXJzdCIgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIj5BbGV4YW5kZXIgS29obHM8L29yZ2FuaXphdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxvcmdhbml6YXRpb24gc2VxdWVuY2U9ImFkZGl0aW9uYWwiIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciI+U2FsdmF0b3JlIE1lbGU8L29yZ2FuaXphdGlvbj4NCiAgICAgICAgICAgICAgICA8L2NvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJvbmxpbmUiPg0KICAgICAgICAgICAgICAgICAgPG1vbnRoPjA0PC9tb250aD4NCiAgICAgICAgICAgICAgICAgIDxkYXk+MDk8L2RheT4NCiAgICAgICAgICAgICAgICAgIDx5ZWFyPjIwMTg8L3llYXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaWNhdGlvbl9kYXRlPg0KICAgICAgICAgICAgICAgIDxwYWdlcz4NCiAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE1PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgIDwvcGFnZXM+DQogICAgICAgICAgICAgICAgPHB1Ymxpc2hlcl9pdGVtPg0KICAgICAgICAgICAgICAgICAgPGlkZW50aWZpZXIgaWRfdHlwZT0icGlpIj5wdWJsaWNhdGlvbnM2MDIwMDE1PC9pZGVudGlmaWVyPg0KICAgICAgICAgICAgICAgIDwvcHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICAgICAgPGFpOnByb2dyYW0geG1sbnM6YWk9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL0FjY2Vzc0luZGljYXRvcnMueHNkIiBuYW1lPSJBY2Nlc3NJbmRpY2F0b3JzIj4NCiAgICAgICAgICAgICAgICAgIDxhaTpmcmVlX3RvX3JlYWQgLz4NCiAgICAgICAgICAgICAgICAgIDxhaTpsaWNlbnNlX3JlZj5odHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvNC4wLzwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPC9haTpwcm9ncmFtPg0KICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMzM5MC9wdWJsaWNhdGlvbnM2MDIwMDE1PC9kb2k+DQogICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL3d3dy5tZHBpLmNvbS8yMzA0LTY3NzUvNi8yLzE1PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJjcmF3bGVyLWJhc2VkIj4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0iaVBhcmFkaWdtcyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly93d3cubWRwaS5jb20vMjMwNC02Nzc1LzYvMi8xNS9wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8Y2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9InJlZjEiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxmb250PkNFUk4gQ29udmVudGlvbiBmb3IgdGhlIEVzdGFibGlzaG1lbnQgb2YgYSBFdXJvcGVhbiBPcmdhbml6YXRpb24gZm9yIE51Y2xlYXIgUmVzZWFyY2g8L2ZvbnQ+DQogICAgICAgICAgICAgICAgICAgICAgPHU+aHR0cHM6Ly9jb3VuY2lsLndlYi5jZXJuLmNoL2VuL2NvbnRlbnQvY29udmVudGlvbi1lc3RhYmxpc2htZW50LWV1cm9wZWFuLW9yZ2FuaXphdGlvbi1udWNsZWFyLXJlc2VhcmNoPC91Pg0KICAgICAgICAgICAgICAgICAgICA8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJyZWYyIj4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8Zm9udD5DRVJOIE1lbWJlciBTdGF0ZXM8L2ZvbnQ+DQogICAgICAgICAgICAgICAgICAgICAgPHU+aHR0cDovL3d3dy53ZWJjaXRhdGlvbi5vcmcvNnhOR0RIMm9VPC91Pg0KICAgICAgICAgICAgICAgICAgICA8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJyZWYzIj4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8Zm9udD5DRVJOIERpc3RyaWJ1dGlvbiBvZiBhbGwgQ0VSTiBVc2VycyBieSBMb2NhdGlvbiBvZiBJbnN0aXR1dGVzIG9uIDUgSnVseSAyMDE3PC9mb250Pg0KICAgICAgICAgICAgICAgICAgICAgIDx1Pmh0dHBzOi8vY2RzLmNlcm4uY2gvcmVjb3JkLzIyOTA0MDc8L3U+DQogICAgICAgICAgICAgICAgICAgIDwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9InJlZjQiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjMyMzMvSVNVLTIwMDgtMDU3MDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9InJlZjUiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxmb250PkNvbW11bmljYXRpb24gUGF0dGVybnMgaW4gSGlnaC1FbmVyZ3kgUGh5c2ljczwvZm9udD4NCiAgICAgICAgICAgICAgICAgICAgICA8dT5odHRwOi8vd2ViemluZS53ZWIuY2Vybi5jaC93ZWJ6aW5lLzYvcGFwZXJzLzEvaW5kZXguaHRtbDwvdT4NCiAgICAgICAgICAgICAgICAgICAgPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0icmVmNiI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9ucGh5czM4NjI8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJyZWY3Ij4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8Zm9udD5JbmZvcm1hdGlvbiBNYW5hZ2VtZW50OiBBIFByb3Bvc2FsPC9mb250Pg0KICAgICAgICAgICAgICAgICAgICAgIDx1Pmh0dHBzOi8vY2RzLmNlcm4uY2gvcmVjb3JkLzM2OTI0NTwvdT4NCiAgICAgICAgICAgICAgICAgICAgPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0icmVmOCI+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+U3ViZXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGFydGljbGVfdGl0bGU+V2hhdCBpcyBPcGVuIEFjY2VzczwvYXJ0aWNsZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHNlcmllc190aXRsZT5PcGVuIEFjY2Vzczwvc2VyaWVzX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0icmVmOSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAwNy9zMTExOTItMDA5LTAxMTEtMTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9InJlZjEwIj4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8Zm9udD5Ub3dhcmRzIE9wZW4gQWNjZXNzIFB1Ymxpc2hpbmcgaW4gSGlnaCBFbmVyZ3kgUGh5c2ljczogUmVwb3J0IG9mIHRoZSBTQ09BUDMgV29ya2luZyBQYXJ0eTwvZm9udD4NCiAgICAgICAgICAgICAgICAgICAgICA8dT5odHRwczovL3Njb2FwMy5vcmcvZmlsZXMvV29ya2luZ19QYXJ0eV9SZXBvcnQucGRmPC91Pg0KICAgICAgICAgICAgICAgICAgICA8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJyZWYxMSI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPGZvbnQ+U0NPQVAzIEludml0YXRpb24gdG8gVGVuZGVy4oCUVGVjaG5pY2FsIFNwZWNpZmljYXRpb248L2ZvbnQ+DQogICAgICAgICAgICAgICAgICAgICAgPHU+aHR0cHM6Ly9zY29hcDMub3JnL2ZpbGVzL1RlY2huaWNhbF9TcGVjaWZpY2F0aW9uLnBkZjwvdT4NCiAgICAgICAgICAgICAgICAgICAgPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0icmVmMTIiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxmb250PlJDVUsgUG9saWN5IG9uIE9wZW4gQWNjZXNzPC9mb250Pg0KICAgICAgICAgICAgICAgICAgICAgIDx1Pmh0dHA6Ly93d3cucmN1ay5hYy51ay9kb2N1bWVudHMvZG9jdW1lbnRzL3JjdWtvcGVuYWNjZXNzcG9saWN5LXBkZi88L3U+DQogICAgICAgICAgICAgICAgICAgIDwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9InJlZjEzIj4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8Zm9udD5GV0YgT3BlbiBBY2Nlc3MgUG9saWN5PC9mb250Pg0KICAgICAgICAgICAgICAgICAgICAgIDx1Pmh0dHA6Ly93d3cud2ViY2l0YXRpb24ub3JnLzZ4TkZ3dEFTZjwvdT4NCiAgICAgICAgICAgICAgICAgICAgPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0icmVmMTQiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDxmb250PlF1YW50aXRhdGl2ZSBTdHVkeSBvZiB0aGUgR2VvZ3JhcGhpY2FsIERpc3RyaWJ1dGlvbiBvZiB0aGUgQXV0aG9yc2hpcCBvZiBIaWdoLUVuZXJneSBQaHlzaWNzIEpvdXJuYWxzPC9mb250Pg0KICAgICAgICAgICAgICAgICAgICAgIDx1Pmh0dHBzOi8vY2RzLmNlcm4uY2gvcmVjb3JkLzEwMzMwOTk8L3U+DQogICAgICAgICAgICAgICAgICAgIDwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9InJlZjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8Zm9udD5TQ09BUDMgUGFydGljaXBhdGluZyBDb3VudHJpZXM8L2ZvbnQ+DQogICAgICAgICAgICAgICAgICAgICAgPHU+aHR0cDovL3d3dy53ZWJjaXRhdGlvbi5vcmcvNnhORmxCejlSPC91Pg0KICAgICAgICAgICAgICAgICAgICA8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJyZWYxNiI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPGZvbnQ+V2hhdCBpcyBTQ09BUDM6IEdvdmVybmFuY2U8L2ZvbnQ+DQogICAgICAgICAgICAgICAgICAgICAgPHU+aHR0cDovL3d3dy53ZWJjaXRhdGlvbi5vcmcvNnhORnBBUktFPC91Pg0KICAgICAgICAgICAgICAgICAgICA8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJyZWYxNyI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMjMxNC9DRVJOL0MyNlAuVzlEVDwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9InJlZjE4Ij4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8Zm9udD5TQ09BUDMgUGhhc2UgMSBKb3VybmFsczwvZm9udD4NCiAgICAgICAgICAgICAgICAgICAgICA8dT5odHRwOi8vd3d3LndlYmNpdGF0aW9uLm9yZy82eE5HMkNVdDE8L3U+DQogICAgICAgICAgICAgICAgICAgIDwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9InJlZjE5Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC40MTE5L1VOSUJJL1VCLjIwMTQuMTg8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJyZWYyMCI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPGZvbnQ+QXJ0aWNsZSBQcm9jZXNzaW5nIENoYXJnZXMgKEFQQ3MpIGFuZCBTdWJzY3JpcHRpb25z4oCUTW9uaXRvcmluZyBPcGVuIEFjY2VzcyBDb3N0czwvZm9udD4NCiAgICAgICAgICAgICAgICAgICAgICA8dT5odHRwczovL3d3dy5qaXNjLmFjLnVrL3NpdGVzL2RlZmF1bHQvZmlsZXMvYXBjLWFuZC1zdWJzY3JpcHRpb25zLXJlcG9ydC5wZGY8L3U+DQogICAgICAgICAgICAgICAgICAgIDwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9InJlZjIxIj4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICA8Zm9udD5TQ09BUDMgRm9ydW0gMjAxNyBQcmVzZW50YXRpb248L2ZvbnQ+DQogICAgICAgICAgICAgICAgICAgICAgPHU+aHR0cHM6Ly9zY29hcDMub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE3LzEyL1dlYmluYXItRGVjLTIwMTcucGRmPC91Pg0KICAgICAgICAgICAgICAgICAgICA8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJyZWYyMiI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPGZvbnQ+SW5zcGlyZUhFUDwvZm9udD4NCiAgICAgICAgICAgICAgICAgICAgICA8dT5odHRwOi8vaW5zcGlyZWhlcC5uZXQvP2xuPWVuPC91Pg0KICAgICAgICAgICAgICAgICAgICA8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJyZWYyMyI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICAgICAgPGZvbnQ+U0NPQVAzIE5ld3M6IEFQUyBKb2lucyBTQ09BUDM8L2ZvbnQ+DQogICAgICAgICAgICAgICAgICAgICAgPHU+aHR0cDovL3d3dy53ZWJjaXRhdGlvbi5vcmcvNnhORlFiNWlEPC91Pg0KICAgICAgICAgICAgICAgICAgICA8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgPC9jaXRhdGlvbl9saXN0Pg0KICAgICAgICAgICAgICA8L2pvdXJuYWxfYXJ0aWNsZT4NCiAgICAgICAgICAgIDwvam91cm5hbD4NCiAgICAgICAgICA8L2Nyb3NzcmVmPg0KICAgICAgICA8L2RvaV9yZWNvcmQ+DQogICAgICA8L3F1ZXJ5Pg0KICAgIDwvYm9keT4NCiAgPC9xdWVyeV9yZXN1bHQ+DQo8L2Nyb3NzcmVmX3Jlc3VsdD4=
|
87
|
+
http_version:
|
88
|
+
recorded_at: Thu, 04 Jul 2019 13:49:19 GMT
|
89
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,47 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://doi.org/ra/10.3280
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Mozilla/5.0 (compatible; Maremma/4.2.3; mailto:info@datacite.org)
|
12
|
+
Accept:
|
13
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: ''
|
18
|
+
headers:
|
19
|
+
Date:
|
20
|
+
- Thu, 04 Jul 2019 13:45:42 GMT
|
21
|
+
Content-Type:
|
22
|
+
- application/json;charset=UTF-8
|
23
|
+
Content-Length:
|
24
|
+
- '51'
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
Set-Cookie:
|
28
|
+
- __cfduid=da05a7d2fa59e8555ee2d62c1f6d7b8821562247942; expires=Fri, 03-Jul-20
|
29
|
+
13:45:42 GMT; path=/; domain=.doi.org; HttpOnly
|
30
|
+
Expect-Ct:
|
31
|
+
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
32
|
+
Server:
|
33
|
+
- cloudflare
|
34
|
+
Cf-Ray:
|
35
|
+
- 4f118a876833cd93-CDG
|
36
|
+
body:
|
37
|
+
encoding: ASCII-8BIT
|
38
|
+
string: |-
|
39
|
+
[
|
40
|
+
{
|
41
|
+
"DOI": "10.3280",
|
42
|
+
"RA": "mEDRA"
|
43
|
+
}
|
44
|
+
]
|
45
|
+
http_version:
|
46
|
+
recorded_at: Thu, 04 Jul 2019 13:45:42 GMT
|
47
|
+
recorded_with: VCR 3.0.3
|
@@ -210,6 +210,21 @@ describe Bolognese::Metadata, vcr: true do
|
|
210
210
|
expect(subject.agency).to eq("Crossref")
|
211
211
|
end
|
212
212
|
|
213
|
+
it "missing creator" do
|
214
|
+
input = "https://doi.org/10.3390/publications6020015"
|
215
|
+
subject = Bolognese::Metadata.new(input: input)
|
216
|
+
expect(subject.valid?).to be true
|
217
|
+
expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.3390/publications6020015", "identifierType"=>"DOI"}])
|
218
|
+
expect(subject.url).to eq("http://www.mdpi.com/2304-6775/6/2/15")
|
219
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
220
|
+
expect(subject.creators).to eq("contributorType"=>"author", "name"=>":(unav)", "nameType"=>"Organizational")
|
221
|
+
expect(subject.titles).to eq([{"title"=>"Converting the Literature of a Scientific Field to Open Access through Global Collaboration: The Experience of SCOAP3 in Particle Physics"}])
|
222
|
+
expect(subject.dates).to eq([{"date"=>"2018-04-09", "dateType"=>"Issued"}, {"date"=>"2018-04-10T17:58:05Z", "dateType"=>"Updated"}])
|
223
|
+
expect(subject.publication_year).to eq("2018")
|
224
|
+
expect(subject.publisher).to eq("MDPI AG")
|
225
|
+
expect(subject.agency).to eq("Crossref")
|
226
|
+
end
|
227
|
+
|
213
228
|
it "multiple titles" do
|
214
229
|
input = "https://doi.org/10.4000/dms.865"
|
215
230
|
subject = Bolognese::Metadata.new(input: input)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bolognese
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Fenner
|
@@ -825,6 +825,8 @@ files:
|
|
825
825
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/date_in_future.yml
|
826
826
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article.yml
|
827
827
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with.yml
|
828
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/missing_creator.yml
|
829
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_t.yml
|
828
830
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_titles.yml
|
829
831
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/not_found_error.yml
|
830
832
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/posted_content.yml
|