bolognese 0.10.15 → 0.10.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/lib/bolognese/metadata_utils.rb +1 -1
- data/lib/bolognese/readers/datacite_reader.rb +4 -0
- data/lib/bolognese/readers/schema_org_reader.rb +2 -2
- data/lib/bolognese/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/series-information.yml +103 -0
- data/spec/readers/datacite_reader_spec.rb +18 -0
- data/spec/writers/citeproc_writer_spec.rb +1 -1
- data/spec/writers/ris_writer_spec.rb +10 -9
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a009bb63af24c28139e8e05c47602792c1471958bf852933692b18d268a472f4
|
4
|
+
data.tar.gz: cf0077dba6bca12875259089b41ed0b63cdd4df1d255f7c37bad953548d51a52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0974d89b07f5f3c45e90c4c91a06844f8f577ce3e0c5a04fa544dcdc12a69ae3c39dc5b1a3ce71c0d2fbea0f10ae0b807e4bd56412f8f7114c18610d8ffeb51d
|
7
|
+
data.tar.gz: 9af779cb903ed4acf2c5914c142d769b08e6756b87d8370efc655dd1399b26718dd19f08da687930e2db58ad14ab608d5a3f82d528173211de45d2b212b87806
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
bolognese (0.10.
|
4
|
+
bolognese (0.10.16)
|
5
5
|
activesupport (>= 4.2.5, < 6)
|
6
6
|
benchmark_methods (~> 0.7)
|
7
7
|
bibtex-ruby (~> 4.1)
|
@@ -48,7 +48,7 @@ GEM
|
|
48
48
|
rdf (>= 2.2, < 4.0)
|
49
49
|
sxp (~> 1.0)
|
50
50
|
excon (0.62.0)
|
51
|
-
faraday (0.15.
|
51
|
+
faraday (0.15.2)
|
52
52
|
multipart-post (>= 1.2, < 3)
|
53
53
|
faraday-encoding (0.0.4)
|
54
54
|
faraday
|
@@ -70,6 +70,9 @@ module Bolognese
|
|
70
70
|
{ "title_type" => r["titleType"], "lang" => r["xml:lang"], "text" => sanitize(r["__content__"]) }.compact
|
71
71
|
end
|
72
72
|
end.unwrap
|
73
|
+
|
74
|
+
container_title = Array.wrap(meta.dig("descriptions", "description")).find { |r| r["descriptionType"] == "SeriesInformation" }.to_h.fetch("__content__", nil)
|
75
|
+
|
73
76
|
alternate_name = Array.wrap(meta.dig("alternateIdentifiers", "alternateIdentifier")).map do |r|
|
74
77
|
{ "type" => r["alternateIdentifierType"], "name" => r["__content__"] }.compact
|
75
78
|
end.unwrap
|
@@ -108,6 +111,7 @@ module Bolognese
|
|
108
111
|
"alternate_name" => alternate_name,
|
109
112
|
"author" => get_authors(meta.dig("creators", "creator")),
|
110
113
|
"editor" => get_authors(Array.wrap(meta.dig("contributors", "contributor")).select { |r| r["contributorType"] == "Editor" }),
|
114
|
+
"container_title" => container_title,
|
111
115
|
"publisher" => meta.fetch("publisher", nil),
|
112
116
|
"service_provider" => "DataCite",
|
113
117
|
"funding" => funding,
|
@@ -112,11 +112,11 @@ module Bolognese
|
|
112
112
|
end
|
113
113
|
|
114
114
|
def schema_org_is_previous_version_of(meta)
|
115
|
-
schema_org_related_identifier(meta, relation_type: "
|
115
|
+
schema_org_related_identifier(meta, relation_type: "PredecessorOf")
|
116
116
|
end
|
117
117
|
|
118
118
|
def schema_org_is_new_version_of(meta)
|
119
|
-
schema_org_related_identifier(meta, relation_type: "
|
119
|
+
schema_org_related_identifier(meta, relation_type: "SuccessorOf")
|
120
120
|
end
|
121
121
|
|
122
122
|
def schema_org_references(meta)
|
data/lib/bolognese/version.rb
CHANGED
data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/series-information.yml
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://app.datacite.org/prefixes/10.4229
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Maremma 4.0.5 - https://github.com/datacite/maremma
|
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: OK
|
18
|
+
headers:
|
19
|
+
Date:
|
20
|
+
- Mon, 28 May 2018 19:59:29 GMT
|
21
|
+
Content-Type:
|
22
|
+
- application/vnd.api+json; charset=utf-8
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Status:
|
26
|
+
- 200 OK
|
27
|
+
X-Anonymous-Consumer:
|
28
|
+
- 'true'
|
29
|
+
Cache-Control:
|
30
|
+
- max-age=0, private, must-revalidate
|
31
|
+
Vary:
|
32
|
+
- Accept-Encoding, Origin
|
33
|
+
Etag:
|
34
|
+
- W/"399fd9c15c3050282c7afd157028d097"
|
35
|
+
X-Runtime:
|
36
|
+
- '0.012449'
|
37
|
+
X-Request-Id:
|
38
|
+
- b0f99e20-f9da-4b65-9502-dbfc5c5c2b80
|
39
|
+
X-Powered-By:
|
40
|
+
- Phusion Passenger 5.3.1
|
41
|
+
Server:
|
42
|
+
- nginx/1.14.0 + Phusion Passenger 5.3.1
|
43
|
+
body:
|
44
|
+
encoding: ASCII-8BIT
|
45
|
+
string: '{"data":{"id":"10.4229","type":"prefixes","attributes":{"registration-agency":"DataCite","created":"2010-01-01T00:00:00.000Z","updated":null},"relationships":{"clients":{"data":[{"id":"tib.wip","type":"clients"}]},"providers":{"data":[{"id":"tib","type":"providers"}]}}},"included":[{"id":"tib.wip","type":"clients","attributes":{"name":"WIP
|
46
|
+
- Renewable Energies","symbol":"TIB.WIP","year":2011,"contact-name":"Anna
|
47
|
+
Werner","contact-email":"Anna.Werner@wip-munich.de","domains":"eupvsec-proceedings.com","url":null,"is-active":true,"has-password":true,"created":"2011-11-29T14:57:13Z","updated":"2018-05-28T02:30:09Z"},"relationships":{"prefixes":{"meta":{}},"provider":{"meta":{}},"repository":{"meta":{}}}},{"id":"tib","type":"providers","attributes":{"name":"German
|
48
|
+
National Library of Science and Technology","symbol":"TIB","website":"http://www.tib.eu","contact-name":"Steffen
|
49
|
+
Krentz","contact-email":"steffen.krentz@tib.eu","phone":"+49 511 762 17642","description":"The
|
50
|
+
TIB is the German National Library for all areas of engineering as well as
|
51
|
+
architecture, chemistry, information technology, mathematics and physics.
|
52
|
+
We are the world''s largest specialised library for science and technology
|
53
|
+
and are part of the German research infrastructure. Our function is the comprehensive
|
54
|
+
procurement and archival storage of technical scientific literature from all
|
55
|
+
over the world. TIB was the first DOI registration agency for primary data
|
56
|
+
worldwide. We have been providing DOI registration services since 2005 and
|
57
|
+
we now work directly with over 40 data centres. TIB is one of the founding
|
58
|
+
members of DataCite and is currently the Business Office. We provide DOI registration
|
59
|
+
services for all German data centres in the fields of engineering, architecture,
|
60
|
+
chemistry, information technology, mathematics and physics. Our current focus
|
61
|
+
is on providing DOI names for primary data and grey literature.","country":"DE","logo-url":"https://assets.datacite.org/images/members/tib.png","institution-type":null,"is-active":true,"has-password":true,"joined":"2009-12-01","created":"2010-01-01T00:00:00.000Z","updated":"2018-05-28T02:25:50.000Z"},"relationships":{"clients":{"meta":{}},"prefixes":{"meta":{}}}}]}'
|
62
|
+
http_version:
|
63
|
+
recorded_at: Mon, 28 May 2018 19:59:29 GMT
|
64
|
+
- request:
|
65
|
+
method: get
|
66
|
+
uri: https://search.datacite.org/api?defType=edismax&fl=doi,url,xml,state,allocator_symbol,datacentre_symbol,media,minted,updated&q=10.4229/23rdeupvsec2008-5co.8.3&wt=json
|
67
|
+
body:
|
68
|
+
encoding: US-ASCII
|
69
|
+
string: ''
|
70
|
+
headers:
|
71
|
+
User-Agent:
|
72
|
+
- Maremma 4.0.5 - https://github.com/datacite/maremma
|
73
|
+
Accept:
|
74
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
75
|
+
response:
|
76
|
+
status:
|
77
|
+
code: 200
|
78
|
+
message: OK
|
79
|
+
headers:
|
80
|
+
Date:
|
81
|
+
- Mon, 28 May 2018 19:59:29 GMT
|
82
|
+
Content-Type:
|
83
|
+
- application/json;charset=UTF-8
|
84
|
+
Connection:
|
85
|
+
- keep-alive
|
86
|
+
Server:
|
87
|
+
- nginx/1.10.3 (Ubuntu)
|
88
|
+
Access-Control-Allow-Origin:
|
89
|
+
- "*"
|
90
|
+
Access-Control-Allow-Methods:
|
91
|
+
- GET, POST, PUT, DELETE, OPTIONS
|
92
|
+
Access-Control-Allow-Headers:
|
93
|
+
- DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Authorization
|
94
|
+
Access-Control-Expose-Headers:
|
95
|
+
- DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Authorization
|
96
|
+
body:
|
97
|
+
encoding: ASCII-8BIT
|
98
|
+
string: '{"responseHeader":{"status":0,"QTime":15},"response":{"numFound":1,"start":0,"docs":[{"datacentre_symbol":"TIB.WIP","xml":"PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxyZXNvdXJjZSB4bWxucz0iaHR0cDovL2RhdGFjaXRlLm9yZy9zY2hlbWEva2VybmVsLTIuMiIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMi4yIGh0dHA6Ly9zY2hlbWEuZGF0YWNpdGUub3JnL21ldGEva2VybmVsLTIuMi9tZXRhZGF0YS54c2QiPg0KCTxpZGVudGlmaWVyIGlkZW50aWZpZXJUeXBlPSJET0kiPjEwLjQyMjkvMjNyZEVVUFZTRUMyMDA4LTVDTy44LjM8L2lkZW50aWZpZXI+DQoJPGNyZWF0b3JzPg0KCQk8Y3JlYXRvcj48Y3JlYXRvck5hbWU+TGxhbWFzLCBQLjwvY3JlYXRvck5hbWU+PC9jcmVhdG9yPgoJCTxjcmVhdG9yPjxjcmVhdG9yTmFtZT5Xb2xsbnksIE0uPC9jcmVhdG9yTmFtZT48L2NyZWF0b3I+CgkJPGNyZWF0b3I+PGNyZWF0b3JOYW1lPlRhcGFubGlzLCBTLjwvY3JlYXRvck5hbWU+PC9jcmVhdG9yPgoJPC9jcmVhdG9ycz4NCgk8dGl0bGVzPg0KCQk8dGl0bGU+UnVyYWwgRWxlY3RyaWZpY2F0aW9uIFdpdGggSHlicmlkIFBvd2VyIFN5c3RlbXMgQmFzZWQgb24gUmVuZXdhYmxlcyAtIFRlY2huaWNhbCBTeXN0ZW0gQ29uZmlndXJhdGlvbnMgRnJvbSB0aGUgUG9pbnQgb2YgVmlldyBvZiB0aGUgRXVyb3BlYW4gSW5kdXN0cnk8L3RpdGxlPg0KCTwvdGl0bGVzPg0KCTxwdWJsaXNoZXI+V0lQLU11bmljaDwvcHVibGlzaGVyPg0KCTxwdWJsaWNhdGlvblllYXI+MjAwODwvcHVibGljYXRpb25ZZWFyPg0KCTxzdWJqZWN0cz4NCgkJPHN1YmplY3Q+UFYgU3lzdGVtczwvc3ViamVjdD4NCgkJPHN1YmplY3Q+T2ZmLWdyaWQgQXBwbGljYXRpb25zPC9zdWJqZWN0Pg0KCTwvc3ViamVjdHM+DQoJPGRhdGVzPg0KCQk8ZGF0ZSBkYXRlVHlwZT0iVmFsaWQiPjIwMDgtMTEtMDE8L2RhdGU+DQoJPC9kYXRlcz4NCgk8bGFuZ3VhZ2U+ZW5nPC9sYW5ndWFnZT4NCgk8cmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUdlbmVyYWw9IlRleHQiPkFydGljbGU8L3Jlc291cmNlVHlwZT4NCgk8YWx0ZXJuYXRlSWRlbnRpZmllcnM+PGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9IklTQk4iPjMtOTM2MzM4LTI0LTg8L2FsdGVybmF0ZUlkZW50aWZpZXI+PC9hbHRlcm5hdGVJZGVudGlmaWVycz4NCgk8c2l6ZXM+DQoJCTxzaXplPjQgcGFnZXM8L3NpemU+DQoJCTxzaXplPjEyMjIga2I8L3NpemU+DQoJPC9zaXplcz4NCgk8Zm9ybWF0cz4NCgkJPGZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2Zvcm1hdD4NCgk8L2Zvcm1hdHM+DQoJPGRlc2NyaXB0aW9ucz4NCgkgICA8ZGVzY3JpcHRpb24gZGVzY3JpcHRpb25UeXBlPSJTZXJpZXNJbmZvcm1hdGlvbiI+MjNyZCBFdXJvcGVhbiBQaG90b3ZvbHRhaWMgU29sYXIgRW5lcmd5IENvbmZlcmVuY2UgYW5kIEV4aGliaXRpb24sIDEtNSBTZXB0ZW1iZXIgMjAwOCwgVmFsZW5jaWEsIFNwYWluOyAzMzUzLTMzNTY8L2Rlc2NyaXB0aW9uPg0KICAgICAgPGRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uVHlwZT0iQWJzdHJhY3QiPg0KQWltIG9mIHRoaXMgcGFwZXIgaXMgdGhlIHByZXNlbnRhdGlvbiBvZiB0aGUgd29yayBhbmQgdGhlIHNlcnZpY2VzIG9mIHRoZSBBbGxpYW5jZSBmb3IgUnVyYWwgRWxlY3RyaWZpY2F0aW9uIGFuZCBpbnRyb2R1Y3Rpb24gb2Ygc3RhbmRhcmRpc2VkIHN5c3RlbSBjb25maWd1cmF0aW9uIGNvbmNlcHRzIGZvciB0aGUgcnVyYWwgZWxlY3RyaWZpY2F0aW9uIGJ5IEh5YnJpZCBTeXN0ZW1zIGJhc2VkIG9uIHJlbmV3YWJsZSBlbmVyZ3kgc291cmNlcy4gVGhlIEFsbGlhbmNlIG9mIFJ1cmFsIEVsZWN0cmlmaWNhdGlvbiAoQVJFKSB3YXMgZm91bmRlZCBpbiAyMDA2IGluIHJlc3BvbnNlIHRvIHRoZSBuZWVkIHRvIHByb3ZpZGUgc3VzdGFpbmFibGUgZWxlY3RyaWNpdHkgdG8gdGhlIGRldmVsb3Bpbmcgd29ybGQsIGFuZCB0byBmYWNpbGl0YXRlIHRoZSBpbnZvbHZlbWVudCBvZiBpdHMgbWVtYmVycyBpbiB0aGUgZW1lcmdpbmcgcnVyYWwgZW5lcmd5IG1hcmtldHMuIFRoZSBncmVhdGVzdCBzdHJlbmd0aCBvZiBBUkUgaXMgaXRzIHJvYnVzdCBpbmR1c3RyeS1iYXNlZCBhcHByb2FjaCwgY291cGxlZCB3aXRoIHRoZSBhYmlsaXR5IHRvIGNvbWJpbmUgZGlmZmVyZW50IHJlbmV3YWJsZSBlbmVyZ3kgc291cmNlcyBpbiBvcmRlciB0byBwcm92aWRlIG1vcmUgZWZmaWNpZW50IGFuZCByZWxpYWJsZSBzb2x1dGlvbnMgZm9yIHJ1cmFsIGVsZWN0cmlmaWNhdGlvbi4gQVJFwrRzIG1haW4gb2JqZWN0aXZlcyBhcmUgdG86IEluY3JlYXNlIGF3YXJlbmVzcyBvZiB0aGUgcG90ZW50aWFsIG9mIHJlbmV3YWJsZSBlbmVyZ3kgaW4gdGhlIGZpZ2h0IGFnYWluc3QgY2xpbWF0ZQpjaGFuZ2UgYW5kIHBvdmVydHk7IEFjY2VsZXJhdGUgdGhlIGRlcGxveW1lbnQgYW5kIHVzZSBvZiByZW5ld2FibGUgZW5lcmd5IHRlY2hub2xvZ2llcyB3aXRoaW4gZGV2ZWxvcGluZyBjb3VudHJpZXM7IEdlbmVyYXRlIGZpbmFuY2lhbCByZXNvdXJjZXMgZm9yIHJ1cmFsIGVsZWN0cmlmaWNhdGlvbjsgUHJvbW90ZSBhbmQgc3VwcG9ydCB0aGUgZGV2ZWxvcG1lbnQgb2YgaGVhbHRoeQpkZWNlbnRyYWxpemVkIGVuZXJneSBtYXJrZXRzLiBBUkUgaXMgZGV2ZWxvcGluZyBhIG51bWJlciBvZiBjb21tdW5pY2F0aW9uIHRvb2xzIGFuZCBtYXRlcmlhbHMgdG8gY2Fycnkgb3V0IHRoZXNlIG9iamVjdGl2ZXMsIGluY2x1ZGluZyB0aGUgY3JlYXRpb24gb2YgZGlmZmVyZW50IFdvcmtpbmcgR3JvdXBzIHRvIGFzc2VzcyB0aGUgc2VydmljZXMgYW5kIHRlY2hub2xvZ2llcyBjdXJyZW50bHkgc3VwcGxpZWQgdG8gcnVyYWwgYXJlYXM7IHRvIHN1cHBvcnQgdGhlIGNyZWF0aW9uIG9mIHN1aXRhYmxlIGZpbmFuY2luZyBpbnN0cnVtZW50cywgYWRhcHRlZCB0byB0aGVzZSB0ZWNobm9sb2dpZXMgYW5kIHRvIHB1c2ggZm9yd2FyZCB0aGUgb2ZmIGdyaWQgbWFya2V0cyBmb3IgcnVyYWwgZWxlY3RyaWZpY2F0aW9uLiBBdXRvbm9tb3VzIGRlY2VudHJhbGl6ZWQgKG9mZiBncmlkKSBydXJhbCBlbGVjdHJpZmljYXRpb24gLWJhc2VkIG9uIHRoZSBnZW5lcmF0aW9uIG9mIHJlbmV3YWJsZSBlbmVyZ3kgcG93ZXIgb24gc2l0ZSB0aHJvdWdoIHRoZSBpbnN0YWxsYXRpb24gb2Ygc3RhbmQgYWxvbmUgcG93ZXIgc3lzdGVtcyBpbiBydXJhbCBob3VzZWhvbGRzLSwgYW5kIHRoZSBzZXQgdXAgb2YgZWxlY3RyaWNpdHkgZGlzdHJpYnV0aW9uIG1pbmktZ3JpZHMgLWZlZCBieSBSRVMgb3IgbWl4ZWQgc3lzdGVtcy0sIGhhdmUgYmVlbiBwcm92ZW4gY2FwYWJsZSBvZiBkZWxpdmVyaW5nIGhpZ2ggcXVhbGl0eSBhbmQgcmVsaWFibGUgZWxlY3RyaWNpdHkgZm9yIGxpZ2h0aW5nLCBjb21tdW5pY2F0aW9uLCB3YXRlciBzdXBwbHkgYW5kIG1vdGl2ZSBwb3dlciwgYW1vbmcgb3RoZXJzLiBPZmYtR3JpZCByZW5ld2FibGUgZW5lcmd5CnRlY2hub2xvZ2llcyBzYXRpc2Z5IGVuZXJneSBkZW1hbmQgZGlyZWN0bHkgYW5kIGF2b2lkIHRoZSBuZWVkIGZvciBsb25nIGRpc3RyaWJ1dGlvbiBpbmZyYXN0cnVjdHVyZXMuIEEgY29tYmluYXRpb24gb2YgZGlmZmVyZW50IGJ1dCBjb21wbGVtZW50YXJ5IGVuZXJneSBnZW5lcmF0aW9uIHN5c3RlbXMgYmFzZWQgb24gcmVuZXdhYmxlIGVuZXJnaWVzIG9yIG1peGVkIChSRVMtIHdpdGggYSBiYWNrdXAgb2YgTGlxdWVmaWVkIFBldHJvbGV1bSBHYXMgKExQRykvZGllc2VsL2dhc29saW5lIGdlbnNldCksIGlzIGtub3duIGFzIGEgaHlicmlkIHBvd2VyIHN5c3RlbS4gSHlicmlkIHN5c3RlbXMgY2FwdHVyZSB0aGUgYmVzdCBmZWF0dXJlcyBvZiBlYWNoIGVuZXJneSByZXNvdXJjZSBhbmQgY2FuIHByb3ZpZGUg4oCcZ3JpZC1xdWFsaXR54oCdIGVsZWN0cmljaXR5LCB3aXRoIGEgcG93ZXIgcmFuZ2UgZnJvbSBvbmUga2lsb3dhdHQgdXAgdG8gc2V2ZXJhbCBodW5kcmVkIGtpbG93YXR0cy4gVGhleSBjYW4gYmUgZGV2ZWxvcGVkIGFzIG5ldyBpbnRlZ3JhdGVkIGRlc2lnbnMgd2l0aGluIHNtYWxsIGVsZWN0cmljaXR5IGRpc3RyaWJ1dGlvbiBzeXN0ZW1zIChNaW5pLUdyaWRzKSBhbmQgY2FuIGFsc28gYmUgcmV0cm9maXR0ZWQgaW4gZGllc2VsIGJhc2VkIHBvd2VyIHN5c3RlbXMuIEh5YnJpZCBzeXN0ZW1zIGNhbiBwcm92aWRlIGEgc3RlYWR5IGNvbW11bml0eS1sZXZlbCBlbGVjdHJpY2l0eSBzZXJ2aWNlLCBzdWNoIGFzIHZpbGxhZ2UgZWxlY3RyaWZpY2F0aW9uLCBvZmZlcmluZyBhbHNvIHRoZSBwb3NzaWJpbGl0eSB0byBiZSB1cGdyYWRlZCB0aHJvdWdoIGdyaWQgY29ubmVjdGlvbiBpbiB0aGUgZnV0dXJlLiBGdXJ0aGVybW9yZSwgZHVlIHRvIHRoZWlyIGhpZ2ggbGV2ZWxzIG9mIGVmZmljaWVuY3ksIHJlbGlhYmlsaXR5IGFuZCBsb25nIHRlcm0gcGVyZm9ybWFuY2UsIHRoZXNlIHN5c3RlbXMgY2FuIGFsc28gYmUgdXNlZCBhcyBhbiBlZmZlY3RpdmUgYmFja3VwIHNvbHV0aW9uIHRvIHRoZSBwdWJsaWMgZ3JpZCBpbiBjYXNlIG9mIGJsYWNrb3V0cyBvciB3ZWFrIGdyaWRzLCBhbmQgZm9yIHByb2Zlc3Npb25hbCBlbmVyZ3kgc29sdXRpb25zLCBzdWNoIGFzIHRlbGVjb21tdW5pY2F0aW9uIHN0YXRpb25zIG9yIGVtZXJnZW5jeSByb29tcyBhdCBob3NwaXRhbHMuCiAgICAgIDwvZGVzY3JpcHRpb24+DQogICA8L2Rlc2NyaXB0aW9ucz4NCjwvcmVzb3VyY2U+DQo=","allocator_symbol":"TIB","minted":"2009-12-03T13:55:49Z","state":"findable","updated":"2012-11-06T09:04:32Z","doi":"10.4229/23RDEUPVSEC2008-5CO.8.3"}]}}
|
99
|
+
|
100
|
+
'
|
101
|
+
http_version:
|
102
|
+
recorded_at: Mon, 28 May 2018 19:59:29 GMT
|
103
|
+
recorded_with: VCR 3.0.3
|
@@ -317,6 +317,24 @@ describe Bolognese::Metadata, vcr: true do
|
|
317
317
|
expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
|
318
318
|
end
|
319
319
|
|
320
|
+
it "series-information" do
|
321
|
+
input = "https://doi.org/10.4229/23RDEUPVSEC2008-5CO.8.3"
|
322
|
+
subject = Bolognese::Metadata.new(input: input)
|
323
|
+
expect(subject.valid?).to be true
|
324
|
+
expect(subject.identifier).to eq("https://doi.org/10.4229/23rdeupvsec2008-5co.8.3")
|
325
|
+
expect(subject.type).to eq("ScholarlyArticle")
|
326
|
+
expect(subject.additional_type).to eq("Article")
|
327
|
+
expect(subject.resource_type_general).to eq("Text")
|
328
|
+
expect(subject.author.length).to eq(3)
|
329
|
+
expect(subject.author.first).to eq("type"=>"Person", "name"=>"P. Llamas", "givenName"=>"P.", "familyName"=>"Llamas")
|
330
|
+
expect(subject.title).to eq("Rural Electrification With Hybrid Power Systems Based on Renewables - Technical System Configurations From the Point of View of the European Industry")
|
331
|
+
expect(subject.date_published).to eq("2008")
|
332
|
+
expect(subject.container_title).to eq("23rd European Photovoltaic Solar Energy Conference and Exhibition, 1-5 September 2008, Valencia, Spain; 3353-3356")
|
333
|
+
expect(subject.publisher).to eq("WIP-Munich")
|
334
|
+
expect(subject.service_provider).to eq("DataCite")
|
335
|
+
expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.2")
|
336
|
+
end
|
337
|
+
|
320
338
|
it "empty subject" do
|
321
339
|
input = "https://doi.org/10.18169/PAPDEOTTX00502"
|
322
340
|
subject = Bolognese::Metadata.new(input: input)
|
@@ -133,7 +133,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
133
133
|
expect(json["title"]).to eq("Deutsche Version der Positive and Negative Affect Schedule (PANAS)")
|
134
134
|
expect(json["author"]).to eq([{"family"=>"Janke", "given"=>"S."},
|
135
135
|
{"family"=>"Glöckner-Rist", "given"=>"A."}])
|
136
|
-
expect(json["container-title"]).to
|
136
|
+
expect(json["container-title"]).to eq("Zusammenstellung sozialwissenschaftlicher Items und Skalen (ZIS)")
|
137
137
|
expect(json["issued"]).to eq("date-parts" => [[2012]])
|
138
138
|
end
|
139
139
|
|
@@ -45,15 +45,16 @@ describe Bolognese::Metadata, vcr: true do
|
|
45
45
|
ris = subject.ris.split("\r\n")
|
46
46
|
expect(ris[0]).to eq("TY - RPRT")
|
47
47
|
expect(ris[1]).to eq("T1 - Visions and reality: the idea of competence-oriented assessment for German medical students is not yet realised in licensing examinations")
|
48
|
-
expect(ris[2]).to eq("
|
49
|
-
expect(ris[
|
50
|
-
expect(ris[9]).to
|
51
|
-
expect(ris[10]).to
|
52
|
-
expect(ris[
|
53
|
-
expect(ris[21]).to eq("
|
54
|
-
expect(ris[22]).to eq("
|
55
|
-
expect(ris[
|
56
|
-
expect(ris[25]).to eq("
|
48
|
+
expect(ris[2]).to eq("T2 - GMS Journal for Medical Education; 34(2):Doc25")
|
49
|
+
expect(ris[3]).to eq("AU - Huber-Lang, Markus")
|
50
|
+
expect(ris[9]).to eq("DO - 10.3205/zma001102")
|
51
|
+
expect(ris[10]).to start_with("AB - Objective: Competence orientation")
|
52
|
+
expect(ris[11]).to eq("KW - medical competence")
|
53
|
+
expect(ris[21]).to eq("PY - 2017")
|
54
|
+
expect(ris[22]).to eq("PB - German Medical Science GMS Publishing House")
|
55
|
+
expect(ris[23]).to eq("AN - urn:nbn:de:0183-zma0011024")
|
56
|
+
expect(ris[25]).to eq("LA - en")
|
57
|
+
expect(ris[26]).to eq("ER - ")
|
57
58
|
end
|
58
59
|
|
59
60
|
it "Crossref DOI" do
|
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: 0.10.
|
4
|
+
version: 0.10.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Fenner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: maremma
|
@@ -671,6 +671,7 @@ files:
|
|
671
671
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/leading_and_trailing_whitespace.yml
|
672
672
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorName.yml
|
673
673
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_licenses.yml
|
674
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/series-information.yml
|
674
675
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme.yml
|
675
676
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/date.yml
|
676
677
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year-month.yml
|