bolognese 1.8.10 → 1.9
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 +37 -0
- data/.github/workflows/changelog.yml +36 -0
- data/.github/workflows/release.yml +47 -0
- data/CHANGELOG.md +1708 -0
- data/Gemfile.lock +63 -59
- data/README.md +1 -1
- data/bolognese.gemspec +1 -1
- data/lib/bolognese/author_utils.rb +6 -5
- data/lib/bolognese/datacite_utils.rb +69 -3
- data/lib/bolognese/metadata.rb +10 -5
- data/lib/bolognese/metadata_utils.rb +3 -2
- data/lib/bolognese/readers/bibtex_reader.rb +5 -4
- data/lib/bolognese/readers/citeproc_reader.rb +1 -1
- data/lib/bolognese/readers/crossref_reader.rb +18 -6
- data/lib/bolognese/readers/datacite_reader.rb +57 -11
- data/lib/bolognese/readers/ris_reader.rb +3 -3
- data/lib/bolognese/utils.rb +163 -46
- data/lib/bolognese/version.rb +1 -1
- data/lib/bolognese/writers/bibtex_writer.rb +1 -1
- data/resources/kernel-4.4/include/datacite-contributorType-v4.xsd +35 -0
- data/resources/kernel-4.4/include/datacite-dateType-v4.xsd +25 -0
- data/resources/kernel-4.4/include/datacite-descriptionType-v4.xsd +19 -0
- data/resources/kernel-4.4/include/datacite-funderIdentifierType-v4.xsd +16 -0
- data/resources/kernel-4.4/include/datacite-nameType-v4.xsd +10 -0
- data/resources/kernel-4.4/include/datacite-numberType-v4.xsd +12 -0
- data/resources/kernel-4.4/include/datacite-relatedIdentifierType-v4.xsd +34 -0
- data/resources/kernel-4.4/include/datacite-relationType-v4.xsd +51 -0
- data/resources/kernel-4.4/include/datacite-resourceType-v4.xsd +43 -0
- data/resources/kernel-4.4/include/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-4.4/include/xml.xsd +286 -0
- data/resources/kernel-4.4/metadata.xsd +707 -0
- data/resources/kernel-4/include/datacite-contributorType-v4.xsd +21 -21
- data/resources/kernel-4/include/datacite-dateType-v4.xsd +11 -11
- data/resources/kernel-4/include/datacite-descriptionType-v4.xsd +6 -6
- data/resources/kernel-4/include/datacite-funderIdentifierType-v4.xsd +5 -5
- data/resources/kernel-4/include/datacite-nameType-v4.xsd +2 -2
- data/resources/kernel-4/include/datacite-numberType-v4.xsd +12 -0
- data/resources/kernel-4/include/datacite-relatedIdentifierType-v4.xsd +19 -19
- data/resources/kernel-4/include/datacite-relationType-v4.xsd +36 -34
- data/resources/kernel-4/include/datacite-resourceType-v4.xsd +32 -17
- data/resources/kernel-4/include/datacite-titleType-v4.xsd +4 -4
- data/resources/kernel-4/metadata.xsd +297 -105
- data/spec/fixtures/datacite-example-dissertation-v4.4.xml +56 -0
- data/spec/fixtures/datacite-example-full-v4.4.xml +114 -0
- data/spec/fixtures/datacite-example-relateditems.xml +61 -0
- data/spec/fixtures/datacite-example-xs-string.xml +28 -0
- data/spec/fixtures/datacite-geolocationpolygons-multiple.xml +56 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/affiliation_is_space.yml +100 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/article_id_as_page_number.yml +100 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_issn.yml +98 -0
- data/spec/metadata_spec.rb +1 -1
- data/spec/readers/bibtex_reader_spec.rb +2 -2
- data/spec/readers/crossref_reader_spec.rb +89 -36
- data/spec/readers/datacite_json_reader_spec.rb +1 -1
- data/spec/readers/datacite_reader_spec.rb +255 -4
- data/spec/readers/ris_reader_spec.rb +3 -3
- data/spec/writers/bibtex_writer_spec.rb +1 -1
- data/spec/writers/citation_writer_spec.rb +2 -2
- data/spec/writers/crosscite_writer_spec.rb +3 -3
- data/spec/writers/csv_writer_spec.rb +4 -4
- data/spec/writers/datacite_json_writer_spec.rb +3 -3
- data/spec/writers/datacite_writer_spec.rb +5 -5
- data/spec/writers/ris_writer_spec.rb +3 -2
- data/spec/writers/schema_org_writer_spec.rb +4 -4
- metadata +32 -8
- data/.travis.yml +0 -35
@@ -0,0 +1,98 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://doi.org/ra/10.1007
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Mozilla/5.0 (compatible; Maremma/4.7.2; 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
|
+
- Mon, 12 Oct 2020 21:10:28 GMT
|
21
|
+
Content-Type:
|
22
|
+
- application/json;charset=UTF-8
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Set-Cookie:
|
26
|
+
- __cfduid=d46720dbaaa6164af527771d3ccf0993e1602537028; expires=Wed, 11-Nov-20
|
27
|
+
21:10:28 GMT; path=/; domain=.doi.org; HttpOnly; SameSite=Lax; Secure
|
28
|
+
Cf-Cache-Status:
|
29
|
+
- DYNAMIC
|
30
|
+
Cf-Request-Id:
|
31
|
+
- 05c03f924a0000dfd3801da200000001
|
32
|
+
Expect-Ct:
|
33
|
+
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
34
|
+
Report-To:
|
35
|
+
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report?lkg-colo=71&lkg-time=1602537028"}],"group":"cf-nel","max_age":604800}'
|
36
|
+
Nel:
|
37
|
+
- '{"report_to":"cf-nel","max_age":604800}'
|
38
|
+
Strict-Transport-Security:
|
39
|
+
- max-age=31536000; includeSubDomains; preload
|
40
|
+
Server:
|
41
|
+
- cloudflare
|
42
|
+
Cf-Ray:
|
43
|
+
- 5e13ceca1d6bdfd3-FRA
|
44
|
+
Alt-Svc:
|
45
|
+
- h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400
|
46
|
+
body:
|
47
|
+
encoding: ASCII-8BIT
|
48
|
+
string: |-
|
49
|
+
[
|
50
|
+
{
|
51
|
+
"DOI": "10.1007",
|
52
|
+
"RA": "Crossref"
|
53
|
+
}
|
54
|
+
]
|
55
|
+
http_version:
|
56
|
+
recorded_at: Mon, 12 Oct 2020 21:10:28 GMT
|
57
|
+
- request:
|
58
|
+
method: get
|
59
|
+
uri: https://api.crossref.org/works/10.1007/978-3-642-34922-5_19/transform/application/vnd.crossref.unixsd+xml
|
60
|
+
body:
|
61
|
+
encoding: US-ASCII
|
62
|
+
string: ''
|
63
|
+
headers:
|
64
|
+
User-Agent:
|
65
|
+
- Mozilla/5.0 (compatible; Maremma/4.7.2; mailto:info@datacite.org)
|
66
|
+
Accept:
|
67
|
+
- text/xml
|
68
|
+
response:
|
69
|
+
status:
|
70
|
+
code: 200
|
71
|
+
message: OK
|
72
|
+
headers:
|
73
|
+
Link:
|
74
|
+
- <http://dx.doi.org/10.1007/978-3-642-34922-5_19>; rel="canonical", <http://www.springerlink.com/index/pdf/10.1007/978-3-642-34922-5_19>;
|
75
|
+
version="vor"; rel="item"
|
76
|
+
Access-Control-Allow-Origin:
|
77
|
+
- "*"
|
78
|
+
Access-Control-Allow-Headers:
|
79
|
+
- X-Requested-With
|
80
|
+
Content-Length:
|
81
|
+
- '20454'
|
82
|
+
Server:
|
83
|
+
- http-kit
|
84
|
+
Date:
|
85
|
+
- Mon, 12 Oct 2020 21:10:29 GMT
|
86
|
+
X-Rate-Limit-Limit:
|
87
|
+
- '50'
|
88
|
+
X-Rate-Limit-Interval:
|
89
|
+
- 1s
|
90
|
+
Connection:
|
91
|
+
- close
|
92
|
+
body:
|
93
|
+
encoding: ASCII-8BIT
|
94
|
+
string: !binary |-
|
95
|
+
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iYm9va19jb250ZW50Ij4xMC4xMDA3Lzk3OC0zLTY0Mi0zNDkyMi01XzE5PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5TcHJpbmdlciBTY2llbmNlIGFuZCBCdXNpbmVzcyBNZWRpYSBMTEM8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icHJlZml4LW5hbWUiIHR5cGU9InN0cmluZyI+U3ByaW5nZXItVmVybGFnPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Im1lbWJlci1pZCIgdHlwZT0ibnVtYmVyIj4yOTc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0YXRpb24taWQiIHR5cGU9Im51bWJlciI+NTgzNjE5NTk8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iYm9vay1pZCIgdHlwZT0ibnVtYmVyIj4xMTYzNzU2PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9InNlcmllcy1pZCIgdHlwZT0ibnVtYmVyIj4yNjc4ODA8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iZGVwb3NpdC10aW1lc3RhbXAiIHR5cGU9Im51bWJlciI+MjAxMjEwMzExNjE1NDQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ib3duZXItcHJlZml4IiB0eXBlPSJzdHJpbmciPjEwLjEwMDc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibGFzdC11cGRhdGUiIHR5cGU9ImRhdGUiPjIwMTktMDctMDVUMDA6MDk6NThaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNyZWF0ZWQiIHR5cGU9ImRhdGUiPjIwMTItMTAtMzFUMTE6MTU6NDhaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNpdGVkYnktY291bnQiIHR5cGU9Im51bWJlciI+MTwvY3JtLWl0ZW0+DQogICAgICAgIDxkb2lfcmVjb3JkPg0KICAgICAgICAgIDxjcm9zc3JlZiB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjAiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjAgaHR0cDovL2RvaS5jcm9zc3JlZi5vcmcvc2NoZW1hcy91bml4cmVmMS4wLnhzZCI+DQogICAgICAgICAgICA8Ym9vayBib29rX3R5cGU9Im90aGVyIj4NCiAgICAgICAgICAgICAgPGJvb2tfc2VyaWVzX21ldGFkYXRhPg0KICAgICAgICAgICAgICAgIDxzZXJpZXNfbWV0YWRhdGE+DQogICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U3R1ZGllcyBpbiBGdXp6aW5lc3MgYW5kIFNvZnQgQ29tcHV0aW5nPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgPGlzc24gbWVkaWFfdHlwZT0icHJpbnQiPjE0MzQtOTkyMjwvaXNzbj4NCiAgICAgICAgICAgICAgICAgIDxpc3NuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjE4NjAtMDgwODwvaXNzbj4NCiAgICAgICAgICAgICAgICA8L3Nlcmllc19tZXRhZGF0YT4NCiAgICAgICAgICAgICAgICA8Y29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImVkaXRvciIgc2VxdWVuY2U9ImZpcnN0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+Um9uYWxkIFIuPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5ZYWdlcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iZWRpdG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkFsaSBNLjwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+QWJiYXNvdjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iZWRpdG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPk1hcmVrIFouPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5SZWZvcm1hdDwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iZWRpdG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPlNoYWhuYXogTi48L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlNoYWhiYXpvdmE8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgIDwvY29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICA8dGl0bGU+U29mdCBDb21wdXRpbmc6IFN0YXRlIG9mIHRoZSBBcnQgVGhlb3J5IGFuZCBOb3ZlbCBBcHBsaWNhdGlvbnM8L3RpdGxlPg0KICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgIDx2b2x1bWU+MjkxPC92b2x1bWU+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0icHJpbnQiPg0KICAgICAgICAgICAgICAgICAgPHllYXI+MjAxMzwveWVhcj4NCiAgICAgICAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgPGlzYm4gbWVkaWFfdHlwZT0icHJpbnQiPjk3OC0zLTY0Mi0zNDkyMS04PC9pc2JuPg0KICAgICAgICAgICAgICAgIDxpc2JuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjk3OC0zLTY0Mi0zNDkyMi01PC9pc2JuPg0KICAgICAgICAgICAgICAgIDxwdWJsaXNoZXI+DQogICAgICAgICAgICAgICAgICA8cHVibGlzaGVyX25hbWU+U3ByaW5nZXIgQmVybGluIEhlaWRlbGJlcmc8L3B1Ymxpc2hlcl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHB1Ymxpc2hlcl9wbGFjZT5CZXJsaW4sIEhlaWRlbGJlcmc8L3B1Ymxpc2hlcl9wbGFjZT4NCiAgICAgICAgICAgICAgICA8L3B1Ymxpc2hlcj4NCiAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMDcvOTc4LTMtNjQyLTM0OTIyLTU8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vd3d3LnNwcmluZ2VybGluay5jb20vaW5kZXgvMTAuMTAwNy85NzgtMy02NDItMzQ5MjItNTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0iY3Jhd2xlci1iYXNlZCIgc2V0YnlJRD0ic3ByaW5nZXIiPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJpUGFyYWRpZ21zIj4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL3d3dy5zcHJpbmdlcmxpbmsuY29tL2luZGV4L3BkZi8xMC4xMDA3Lzk3OC0zLTY0Mi0zNDkyMi01PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgIDwvYm9va19zZXJpZXNfbWV0YWRhdGE+DQogICAgICAgICAgICAgIDxjb250ZW50X2l0ZW0gY29tcG9uZW50X3R5cGU9ImNoYXB0ZXIiIGxldmVsX3NlcXVlbmNlX251bWJlcj0iMSIgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICAgICAgICA8Y29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImZpcnN0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+QWxpPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5SYXppYjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPlNjb3R0PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5EaWNrPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+VmluY2VudDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+R2F1ZGV0PC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICA8L2NvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgPHRpdGxlPkxvZy1Eb21haW4gQXJpdGhtZXRpYyBmb3IgSGlnaC1TcGVlZCBGdXp6eSBDb250cm9sIG9uIGEgRmllbGQtUHJvZ3JhbW1hYmxlIEdhdGUgQXJyYXk8L3RpdGxlPg0KICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgIDxjb21wb25lbnRfbnVtYmVyPkNoYXB0ZXIgMTk8L2NvbXBvbmVudF9udW1iZXI+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0icHJpbnQiPg0KICAgICAgICAgICAgICAgICAgPHllYXI+MjAxMzwveWVhcj4NCiAgICAgICAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgPHBhZ2VzPg0KICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjY5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgPGxhc3RfcGFnZT4yODc8L2xhc3RfcGFnZT4NCiAgICAgICAgICAgICAgICA8L3BhZ2VzPg0KICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAwNy85NzgtMy02NDItMzQ5MjItNV8xOTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9saW5rLnNwcmluZ2VyLmNvbS8xMC4xMDA3Lzk3OC0zLTY0Mi0zNDkyMi01XzE5PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJjcmF3bGVyLWJhc2VkIiBzZXRieUlEPSJzcHJpbmdlciI+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9ImlQYXJhZGlnbXMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vd3d3LnNwcmluZ2VybGluay5jb20vaW5kZXgvcGRmLzEwLjEwMDcvOTc4LTMtNjQyLTM0OTIyLTVfMTk8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8Y2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkluZm9ybWF0aW9uIGFuZCBDb250cm9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkwuIFphZGVoPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+ODwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MzwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjMzODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5NjU8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvUzAwMTktOTk1OCg2NSk5MDI0MS1YPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+WmFkZWgsIEwuOiBGdXp6eSBTZXRzLiBJbmZvcm1hdGlvbiBhbmQgQ29udHJvbMKgOCgzKSwgMzM44oCTMzUzICgxOTY1KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPklFRUUgVHJhbnMuIENvbXB1dGVyczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5FLkguIE1hbWRhbmk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yNjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMTgyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk3NzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEwOS9UQy4xOTc3LjE2NzQ3Nzk8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5NYW1kYW5pLCBFLkguOiBBcHBsaWNhdGlvbiBvZiBGdXp6eSBMb2dpYyB0byBBcHByb3hpbWF0ZSBSZWFzb25pbmcuIElFRUUgVHJhbnMuIENvbXB1dGVyc8KgKDI2KSwgMTE4MuKAkzExOTEgKDE5NzcpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IzIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExMDkvRlVaWlkuMjAwNy40Mjk1NjY5PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+SGFuLCBJLlMuOiBNZW1iZXJzaGlwIEZ1bmN0aW9uIENpcmN1aXQgZm9yIE5ldXJhbC9GdXp6eSBIYXJkd2FyZSBvZiBBbmFsb2ctTWl4ZWQgT3BlcmF0aW9uIEJhc2VkIG9uIHRoZSBQcm9ncmFtbWFibGUgQ29uZHVjdGFuY2UuIEluOiBJRUVFIEludC4gRnV6enkgU3lzdGVtcyBDb25mLiwgcHAuIDHigJM0ICgyMDA3KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSNCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkVsZWN0cm9uaWNzIExldHRlcnM8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TC4gVGlnYWVydTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjM5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT44PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NjQyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTA0OS9lbDoyMDAzMDQzNDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlRpZ2FlcnUsIEwuOiBQcm9ncmFtbWFibGUgYW5hbG9ndWUgbWVtYmVyc2hpcCBmdW5jdGlvbiBjaXJjdWl0IGZvciBoeWJyaWQtbW9kZSBmdXp6eSBzeXN0ZW1zLiBFbGVjdHJvbmljcyBMZXR0ZXJzwqAzOSg4KSwgNjQy4oCTNjQ0ICgyMDAzKTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSNSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTA5L05BRklQUy4yMDAyLjEwMTgwMjE8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5LYWxheWtvdiwgSS4sIFRvbHQsIEcuOiBGYXN0IGZ1enp5IHNpZ25hbCBhbmQgaW1hZ2UgcHJvY2Vzc2luZyBoYXJkd2FyZS4gSW46IEFubnVhbCBNZWV0aW5nIG9mIHRoZSBOb3J0aCBBbWVyaWNhbiBGdXp6eSBJbmZvcm1hdGlvbiBQcm9jZXNzaW5nIFNvY2lldHksIHBwLiA34oCTMTIgKDIwMDIpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1I2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExMDkvTkFGSVBTLjIwMDguNDUzMTI1ODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkRpY2ssIFMuLCBHYXVkZXQsIFYuLCBCYWksIEguOiBCaXQtc2VyaWFsIGFyaXRobWV0aWM6IEEgbm92ZWwgYXBwcm9hY2ggdG8gZnV6enkgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24uIEluOiBBbm51YWwgTWVldGluZyBvZiB0aGUgTm9ydGggQW1lcmljYW4gRnV6enkgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBTb2NpZXR5LCBwcC4gMeKAkzYgKDIwMDgpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1I3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+SUVFRSBUcmFuc2FjdGlvbnMgb24gU3lzdGVtcywgTWFuIGFuZCBDeWJlcm5ldGljcywgUGFydCBBPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlouIFNhbGNpYzwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjMxPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT42PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzMxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEwOS8zNDY4Ljk4MzQzMDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlNhbGNpYywgWi46IEhpZ2gtc3BlZWQgY3VzdG9taXphYmxlIGZ1enp5LWxvZ2ljIHByb2Nlc3NvcjogYXJjaGl0ZWN0dXJlIGFuZCBpbXBsZW1lbnRhdGlvbi4gSUVFRSBUcmFuc2FjdGlvbnMgb24gU3lzdGVtcywgTWFuIGFuZCBDeWJlcm5ldGljcywgUGFydCBBwqAzMSg2KSwgNzMx4oCTNzM3ICgyMDAxKTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSOCI+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+Ui5SLiBTdG9sbDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk3OTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+U2V0IFRoZW9yeSBhbmQgTG9naWM8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5TdG9sbCwgUi5SLjogU2V0IFRoZW9yeSBhbmQgTG9naWMuIERvdmVyIFB1YmxpY2F0aW9ucywgTmV3IFlvcmsgKDE5NzkpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1I5Ij4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5ELlAuIEZpbGV2PC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk0PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5Fc3NlbnRpYWxzIG9mIEZ1enp5IE1vZGVsaW5nIGFuZCBDb250cm9sPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+RmlsZXYsIEQuUC4sIFlhZ2VyLCBSLlIuOiBFc3NlbnRpYWxzIG9mIEZ1enp5IE1vZGVsaW5nIGFuZCBDb250cm9sLiBXaWxleSwgTmV3IFlvcmsgKDE5OTQpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IxMCI+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+Si4gSmFudHplbjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+Rm91bmRhdGlvbnMgb2YgRnV6enkgQ29udHJvbDwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMDIvOTc4MDQ3MDA2MTE3NjwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkphbnR6ZW4sIEouOiBGb3VuZGF0aW9ucyBvZiBGdXp6eSBDb250cm9sLiBXaWxleSwgTmV3IFlvcmsgKDIwMDcpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IxMSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDE2L0I5NzgtMDc1MDY3NjA1LTIvNTAwMDMtWDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPklicmFoaW0sIEEuOiBGdXp6eSBMb2dpYyBmb3IgRW1iZWRkZWQgU3lzdGVtcyBBcHBsaWNhdGlvbnMuIEVsc2V2aWVyICgyMDA0KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMTIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5JRUVFIFRyYW5zLiBvbiBTeXN0ZW1zLCBNYW4sIGFuZCBDeWJlcm5ldGljcyDigJMgUGFydCBBPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlkuRC4gS2ltPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Mjc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjE8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMDkvMzQ2OC41NTMyMjQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5LaW0sIFkuRC46IEhpZ2ggU3BlZWQgRmxleGlibGUgRnV6enkgSGFyZHdhcmUgZm9yIEZ1enp5IEluZm9ybWF0aW9uIFByb2Nlc3NpbmcuIElFRUUgVHJhbnMuIG9uIFN5c3RlbXMsIE1hbiwgYW5kIEN5YmVybmV0aWNzIOKAkyBQYXJ0IEHCoDI3KDEpLCA0NeKAkzU2ICgxOTk3KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMTMiPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkMuUy4gTGVlPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk2PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5OZXVyYWwgRnV6enkgU3lzdGVtczogQSBOZXVyby1GdXp6eSBTeW5lcmdpc20gdG8gSW50ZWxsaWdlbnQgU3lzdGVtczwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkxlZSwgQy5TLiwgTGluLCBDLjogTmV1cmFsIEZ1enp5IFN5c3RlbXM6IEEgTmV1cm8tRnV6enkgU3luZXJnaXNtIHRvIEludGVsbGlnZW50IFN5c3RlbXMuIFByZW50aWNlIEhhbGwsIEFsZXhhbmRyaWEgKDE5OTYpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IxNCI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+R2luYXJ0LCBBLiwgU2FuY2hleiwgRy46IEZhc3QgRGVmdXp6aWZpY2F0aW9uIE1ldGhvZCBCYXNlZCBvbiBDZW50cm9pZCBFc3RpbWF0aW9uLiBBcHBsaWVkIE1vZGVsbGluZyBhbmQgU2ltdWxhdGlvbiAoMjAwMik8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxOV9DUjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExNDUvMzI2NjE5LjMyNjY4ODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlJ1bmtsZXIsIFQuLCBHbGVzbmVyLCBNLjogREVDQURF4oCUZmFzdCBjZW50cm9pZCBhcHByb3hpbWF0aW9uIGRlZnV6emlmaWNhdGlvbiBmb3IgcmVhbCB0aW1lIGZ1enp5IGNvbnRyb2wgYXBwbGljYXRpb25zLiBJbjogUHJvY2VlZGluZ3Mgb2YgdGhlIDE5OTQgQUNNIFN5bXBvc2l1bSBvbiBBcHBsaWVkIENvbXB1dGluZywgcHAuIDE2MeKAkzE2NSAoMTk5NCk8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxOV9DUjE2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExMDkvSUNNTk4uMTk5NC41OTM3MjY8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5FaXNlbGUsIE0uLCBIZW50c2NoZWwsIEsuLCBLdW5lbXVuZCwgVC46IEhhcmR3YXJlIHJlYWxpemF0aW9uIG9mIGZhc3QgZGVmdXp6aWZpY2F0aW9uIGJ5IGFkYXB0aXZlIGludGVncmF0aW9uLiBJbjogUHJvY2VlZGluZ3Mgb2YgdGhlIEZvdXJ0aCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb24gTWljcm9lbGVjdHJvbmljcyBmb3IgTmV1cmFsIE5ldHdvcmtzIGFuZCBGdXp6eSBTeXN0ZW1zLCBwcC4gMzE44oCTMzIzICgxOTk0KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMTciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5GdXp6eSBTZXRzIGFuZCBTeXN0ZW1zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkUuIEJyb2VraG92ZW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xNTc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjc8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT45MDQ8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouZnNzLjIwMDUuMTEuMDA1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+QnJvZWtob3ZlbiwgRS4sIEJhZXRzLCBCLjogRmFzdCBhbmQgYWNjdXJhdGUgY2VudGVyIG9mIGdyYXZpdHkgZGVmdXp6aWZpY2F0aW9uIG9mIGZ1enp5IHN5c3RlbSBvdXRwdXRzIGRlZmluZWQgb24gdHJhcGV6b2lkYWwgZnV6enkgcGFydGl0aW9ucy4gRnV6enkgU2V0cyBhbmQgU3lzdGVtc8KgMTU3KDcpLCA5MDTigJM5MTggKDIwMDYpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IxOCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkludGVybmF0aW9uYWwgSm91cm5hbCBvZiBDb21wdXRhdGlvbmFsIENvZ25pdGlvbjwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5BLiBQYXRlbDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjM8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMTU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA0PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5QYXRlbCwgQS46IFRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9ucyBmb3IgdHJhcGV6b2lkYWwgbWVtYmVyc2hpcCBmdW5jdGlvbnMuIEludGVybmF0aW9uYWwgSm91cm5hbCBvZiBDb21wdXRhdGlvbmFsIENvZ25pdGlvbsKgMigzKSwgMTE14oCTMTM1ICgyMDA0KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMTkiPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlMuLUcuIExlZTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT45MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8c2VyaWVzX3RpdGxlPkxlY3R1cmUgTm90ZXMgaW4gQXJ0aWZpY2lhbCBJbnRlbGxpZ2VuY2U8L3Nlcmllc190aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5Lbm93bGVkZ2UtQmFzZWQgSW50ZWxsaWdlbnQgSW5mb3JtYXRpb24gYW5kIEVuZ2luZWVyaW5nIFN5c3RlbXM8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3Lzk3OC0zLTU0MC03NDgxOS05XzEyPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TGVlLCBTLi1HLiwgTWl5YXpha2ksIE0uLCBLaW0sIEouLUkuOiBEZXNpZ24gb2YgVmVyeSBIaWdoLVNwZWVkIEludGVnZXIgRnV6enkgQ29udHJvbGxlciBXaXRob3V0IE11bHRpcGxpY2F0aW9ucyBieSBVc2luZyBWSERMLiBJbjogQXBvbGxvbmksIEIuLCBIb3dsZXR0LCBSLkouLCBKYWluLCBMLiAoZWRzLikgS0VTIDIwMDcsIFBhcnQgSS4gTE5DUyAoTE5BSSksIHZvbC7CoDQ2OTIsIHBwLiA5M+KAkzEwMC4gU3ByaW5nZXIsIEhlaWRlbGJlcmcgKDIwMDcpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IyMCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTA5L0lDQy4xOTk1LjUyNDI1MzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlJvYmVydHNvbiwgUC4sIFZpbGxlYnJ1biwgRS4sIEhvZWhlciwgUC46IEEgQ29tcGFyaXNvbiBvZiBPcHRpbWFsIGFuZCBTdWItT3B0aW1hbCBNQVAgRGVjb2RpbmcgQWxnb3JpdGhtcyBPcGVyYXRpbmcgaW4gdGhlIExvZyBEb21haW4uIEluOiBJRUVFIEludC4gQ29uZi4gQ29tbXVuaWNhdGlvbnMsIFNlYXR0bGUsIFdBLCBwcC4gMTAwOeKAkzEwMTMgKDE5OTUpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IyMSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTA5L0dMT0NPTS4xOTkwLjExNjU5ODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkVyZmFuaWFuLCBKLiwgUGFzdXBhdGh5LCBTLiwgR3VsYWssIEcuOiBSZWR1Y2VkIENvbXBsZXhpdHkgU3ltYm9sIERldGVjdG9ycyB3aXRoIFBhcmFsbGVsIFN0cnVjdHVyZXMuIEluOiBJRUVFIEdMT0JFQ09NLCBwcC4gNzA04oCTNzA4ICgxOTkwKTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMjIiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkthd2FqaSwgUy4sIE1hZWRhLCBULiwgTWF0c3VuYWdhLCBOLjogRnV6enkgQ29udHJvbCBVc2luZyBLbm93bGVkZ2UgQWNxdWlyZWQgZnJvbSBQRCBDb250cm9sLiBJbmR1c3RyaWFsIEVsZWN0cm9uaWNzLCBDb250cm9sIGFuZCBJbnN0cnVtZW50YXRpb27CoDIsIDE1NDnigJMxNTU0ICgxOTkxKTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMjMiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkd3YWx0bmV5LCBELiwgS2luZywgSy4sIFNtaXRoLCBLLiwgT3Jtc2J5LCBKLjogSW1wbGVtZW50YXRpb24gb2YgQWRhcHRpdmUgRGlnaXRhbCBDb250cm9sbGVycyBvbiBQcm9ncmFtbWFibGUgTG9naWMgRGV2aWNlcyAoMjAwMiksIGh0dHBzOi8vd3d3LnJlc2VhcmNoZ2F0ZS5uZXQvcHVibGljYXRpb24vMjM4OTIyOTdfSW1wbGVtZW50YXRpb25fb2ZfQWRhcHRpdmVfRGlnaXRhbF9Db250cm9sbGVyc19vbl9Qcm9ncmFtbWFibGVfTG9naWNfRGV2aWNlczwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMjQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5JRUVFIFRyYW5zLiBvbiBTeXN0ZW1zLCBNYW4gYW5kIEN5YmVybmV0aWNzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkouIFRhdXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yNzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MzwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjUyNjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMDkvMzQ3Ny41ODQ5NjA8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5UYXVyLCBKLiwgVGFvLCBDLjogRGVzaWduIGFuZCBBbmFseXNpcyBvZiBSZWdpb24tV2lzZSBMaW5lYXIgRnV6enkgQ29udHJvbGxlcnMuIElFRUUgVHJhbnMuIG9uIFN5c3RlbXMsIE1hbiBhbmQgQ3liZXJuZXRpY3PCoDI3KDMpLCA1MjbigJM1MzIgKDE5OTcpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IyNSI+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+Ti5GLiBNYWNpYTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+TW9kZWxpbmcgYW5kIENvbnRyb2wgb2YgRHluYW1pYyBTeXN0ZW1zPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TWFjaWEsIE4uRi4sIFRoYWxlciwgRy5KLjogTW9kZWxpbmcgYW5kIENvbnRyb2wgb2YgRHluYW1pYyBTeXN0ZW1zLiBEZWxtYXIgQ2VuZ2FnZSBMZWFybmluZywgQWxiYW55ICgyMDA0KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMjYiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTEwOS9BSU5BLjIwMDUuMTQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5CYXJvbGxpLCBMLiwgZXQgYWwuOiBBIENBQyBzY2hlbWUgZm9yIG11bHRpbWVkaWEgYXBwbGljYXRpb25zIGJhc2VkIG9uIGZ1enp5IGxvZ2ljLiBJbjogUHJvYy4gSW50LiBDLiBBZHZhbmNlZCBJbmYuIE5ldHdvcmtpbmcgJmFtcDsgQXBwcy4sIFRhaXBlaSwgVGFpd2FuICgyMDA1KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMjciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5JRUVFL0FDTSBUcmFucy4gTmV0d29ya2luZzwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5HLiBBc2NpYTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjEzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT4yPC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjYyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEwOS9UTkVULjIwMDUuODQ1NTQzPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+QXNjaWEsIEcuLCBDYXRhbmlhLCBWLiwgUGFubm8sIEQuOiBBbiBldm9sdXRpb25hcnkgbWFuYWdlbWVudCBzY2hlbWUgaW4gaGlnaC1wZXJmb3JtYW5jZSBwYWNrZXQgc3dpdGNoZXMuIElFRUUvQUNNIFRyYW5zLiBOZXR3b3JraW5nwqAxMygyKSwgMjYy4oCTMjc1ICgyMDA1KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMjgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5JRUVFIFRyYW5zLiBNb2JpbGUgQ29tcHV0Ljwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5ILi1QLiBMaW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT40PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT41PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTMwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEwOS9UTUMuMjAwNS43MDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkxpbiwgSC4tUC4sIEp1YW5nLCBSLi1ULiwgTGluLCBELi1CLjogVmFsaWRhdGlvbiBvZiBhbiBpbXByb3ZlZCBsb2NhdGlvbi1iYXNlZCBoYW5kb3ZlciBhbGdvcml0aG0gdXNpbmcgR1NNIG1lYXN1cmVtZW50IGRhdGEuIElFRUUgVHJhbnMuIE1vYmlsZSBDb21wdXQuwqA0KDUpLCA1MzDigJM1MzYgKDIwMDUpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IyOSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTA5L0lTTVZMLjIwMDkuNDA8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5SYXppYiwgQS4sIERpY2ssIFMuLCBHYXVkZXQsIFYuOiBEZXNpZ24gb2YgYSBIaWdoLVNwZWVkIEZ1enp5IExvZ2ljIENvbnRyb2xsZXIgQmFzZWQgb24gTG9nLURvbWFpbiBBcml0aG1ldGljLiBJbjogUHJvY2VlZGluZ3MsIElTTVZMIDIwMDksIE5haGEsIE9raW5hd2EsIEphcGFuLCBNYXkgMjEtMjMsIHBwLiAxMznigJMxNDQgKDIwMDkpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgPC9jb250ZW50X2l0ZW0+DQogICAgICAgICAgICA8L2Jvb2s+DQogICAgICAgICAgPC9jcm9zc3JlZj4NCiAgICAgICAgPC9kb2lfcmVjb3JkPg0KICAgICAgPC9xdWVyeT4NCiAgICA8L2JvZHk+DQogIDwvcXVlcnlfcmVzdWx0Pg0KPC9jcm9zc3JlZl9yZXN1bHQ+
|
96
|
+
http_version:
|
97
|
+
recorded_at: Mon, 12 Oct 2020 21:10:29 GMT
|
98
|
+
recorded_with: VCR 3.0.3
|
data/spec/metadata_spec.rb
CHANGED
@@ -153,7 +153,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
153
153
|
it "missing_comma" do
|
154
154
|
json = IO.read(fixture_path + "datacite_software_missing_comma.json")
|
155
155
|
response = subject.jsonlint(json)
|
156
|
-
expect(response).to eq(["expected comma, not a string (after doi) at line 4, column 11 [parse.c:
|
156
|
+
expect(response).to eq(["expected comma, not a string (after doi) at line 4, column 11 [parse.c:364]"])
|
157
157
|
end
|
158
158
|
|
159
159
|
it "overlapping_keys" do
|
@@ -29,7 +29,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
29
29
|
it "Crossref DOI" do
|
30
30
|
expect(subject.valid?).to be true
|
31
31
|
expect(subject.id).to eq("https://doi.org/10.7554/elife.01567")
|
32
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceTypeGeneral"=>"
|
32
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceTypeGeneral"=>"JournalArticle", "resourceType"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
33
33
|
expect(subject.url).to eq("http://elifesciences.org/lookup/doi/10.7554/eLife.01567")
|
34
34
|
expect(subject.creators.length).to eq(5)
|
35
35
|
expect(subject.creators.first).to eq("familyName"=>"Sankar", "givenName"=>"Martial", "name"=>"Sankar, Martial", "nameType"=>"Personal")
|
@@ -52,7 +52,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
52
52
|
expect(subject.valid?).to be false
|
53
53
|
expect(subject.state).to eq("not_found")
|
54
54
|
expect(subject.id).to eq("https://doi.org/10.7554/elife.01567")
|
55
|
-
expect(subject.types).to eq("bibtex"=>"phdthesis", "citeproc"=>"thesis", "resourceTypeGeneral"=>"
|
55
|
+
expect(subject.types).to eq("bibtex"=>"phdthesis", "citeproc"=>"thesis", "resourceTypeGeneral"=>"Dissertation", "resourceType"=>"Dissertation", "ris"=>"THES", "schemaOrg"=>"Thesis")
|
56
56
|
expect(subject.creators).to eq([{"familyName"=>"Toparlar", "givenName"=>"Y.", "name"=>"Toparlar, Y.", "nameType"=>"Personal"}])
|
57
57
|
expect(subject.titles).to eq([{"title"=>"A multiscale analysis of the urban heat island effect: from city averaged temperatures to the energy demand of individual buildings"}])
|
58
58
|
expect(subject.descriptions.first["description"]).to start_with("Designing the climates of cities")
|
@@ -20,7 +20,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
20
20
|
expect(subject.valid?).to be true
|
21
21
|
expect(subject.id).to eq("https://doi.org/10.7554/elife.01567")
|
22
22
|
expect(subject.identifiers).to eq([{"identifier"=>"e01567", "identifierType"=>"article_number"}])
|
23
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
23
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
24
24
|
expect(subject.url).to eq("https://elifesciences.org/articles/01567")
|
25
25
|
expect(subject.creators.length).to eq(5)
|
26
26
|
expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Sankar, Martial", "givenName"=>"Martial", "familyName"=>"Sankar", "affiliation" => [{"name"=>"Department of Plant Molecular Biology, University of Lausanne, Lausanne, Switzerland"}])
|
@@ -33,7 +33,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
33
33
|
expect(subject.dates).to eq([{"date"=>"2014-02-11", "dateType"=>"Issued"}, {"date"=>"2018-08-23T13:41:49Z", "dateType"=>"Updated"}])
|
34
34
|
expect(subject.publication_year).to eq("2014")
|
35
35
|
expect(subject.publisher).to eq("eLife Sciences Publications, Ltd")
|
36
|
-
expect(subject.container).to eq("identifier"=>"2050-084X", "identifierType"=>"ISSN", "title"=>"eLife", "type"=>"Journal", "volume"=>"3")
|
36
|
+
expect(subject.container).to eq("firstPage" => "e01567", "identifier"=>"2050-084X", "identifierType"=>"ISSN", "title"=>"eLife", "type"=>"Journal", "volume"=>"3")
|
37
37
|
expect(subject.related_identifiers.length).to eq(27)
|
38
38
|
expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"2050-084X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
|
39
39
|
expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1038/ncb2764", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
|
@@ -57,7 +57,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
57
57
|
expect(subject.id).to eq("https://doi.org/10.1371/journal.pone.0000030")
|
58
58
|
expect(subject.identifiers).to eq([{"identifier"=>"10.1371/journal.pone.0000030", "identifierType"=>"Publisher ID"}])
|
59
59
|
expect(subject.url).to eq("https://dx.plos.org/10.1371/journal.pone.0000030")
|
60
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
60
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
61
61
|
expect(subject.creators.length).to eq(5)
|
62
62
|
expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Ralser, Markus", "givenName"=>"Markus", "familyName"=>"Ralser")
|
63
63
|
expect(subject.contributors).to eq([{"contributorType"=>"Editor", "familyName"=>"Janbon", "givenName"=>"Guilhem", "name"=>"Janbon, Guilhem", "nameType"=>"Personal"}])
|
@@ -84,7 +84,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
84
84
|
expect(subject.id).to eq("https://doi.org/10.3389/fpls.2019.00816")
|
85
85
|
expect(subject.identifiers).to eq([{"identifier"=>"816", "identifierType"=>"article_number"}])
|
86
86
|
expect(subject.url).to eq("https://www.frontiersin.org/article/10.3389/fpls.2019.00816/full")
|
87
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
87
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
88
88
|
expect(subject.creators.length).to eq(4)
|
89
89
|
expect(subject.creators.first).to eq("familyName"=>"Fortes", "givenName"=>"Ana Margarida", "name"=>"Fortes, Ana Margarida", "nameType"=>"Personal")
|
90
90
|
expect(subject.titles).to eq([{"title"=>"Transcriptional Modulation of Polyamine Metabolism in Fruit Species Under Abiotic and Biotic Stress"}])
|
@@ -100,7 +100,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
100
100
|
expect(subject.related_identifiers.length).to eq(70)
|
101
101
|
expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1664-462X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
|
102
102
|
expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.17660/actahortic.2004.632.41", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
|
103
|
-
expect(subject.container).to eq("identifier"=>"1664-462X", "identifierType"=>"ISSN", "title"=>"Frontiers in Plant Science", "type"=>"Journal", "volume"=>"10")
|
103
|
+
expect(subject.container).to eq("firstPage" => "816", "identifier"=>"1664-462X", "identifierType"=>"ISSN", "title"=>"Frontiers in Plant Science", "type"=>"Journal", "volume"=>"10")
|
104
104
|
expect(subject.agency).to eq("crossref")
|
105
105
|
end
|
106
106
|
|
@@ -110,7 +110,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
110
110
|
expect(subject.valid?).to be true
|
111
111
|
expect(subject.id).to eq("https://doi.org/10.7600/jspfsm.56.60")
|
112
112
|
expect(subject.url).to eq("http://jlc.jst.go.jp/JST.JSTAGE/jspfsm/56.60?lang=en&from=CrossRef&type=abstract")
|
113
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
113
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
114
114
|
expect(subject.creators).to eq([{"name"=>":(unav)", "nameType"=>"Organizational"}])
|
115
115
|
expect(subject.titles).to eq([{"lang"=>"ja", "title"=>"自律神経・循環器応答"}])
|
116
116
|
expect(subject.dates).to include({"date"=>"2007", "dateType"=>"Issued"})
|
@@ -128,7 +128,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
128
128
|
expect(subject.valid?).to be true
|
129
129
|
expect(subject.id).to eq("https://doi.org/10.1163/1937240x-00002096")
|
130
130
|
expect(subject.url).to eq("https://academic.oup.com/jcb/article-lookup/doi/10.1163/1937240X-00002096")
|
131
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
131
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
132
132
|
expect(subject.creators.length).to eq(8)
|
133
133
|
expect(subject.creators.first).to eq("familyName"=>"Mesquita-Joanes", "givenName"=>"Francesc", "name"=>"Mesquita-Joanes, Francesc", "nameType"=>"Personal")
|
134
134
|
expect(subject.titles).to eq([{"title"=>"Global distribution of Fabaeformiscandona subacuta: an exotic invasive Ostracoda on the Iberian Peninsula?"}])
|
@@ -148,7 +148,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
148
148
|
expect(subject.valid?).to be true
|
149
149
|
expect(subject.id).to eq("https://doi.org/10.1007/978-3-642-33191-6_49")
|
150
150
|
expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-642-33191-6_49")
|
151
|
-
expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"
|
151
|
+
expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"BookChapter", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
|
152
152
|
expect(subject.creators.length).to eq(3)
|
153
153
|
expect(subject.creators.first).to eq("familyName"=>"Chen", "givenName"=>"Lili", "name"=>"Chen, Lili", "nameType"=>"Personal")
|
154
154
|
expect(subject.titles).to eq([{"title"=>"Human Body Orientation Estimation in Multiview Scenarios"}])
|
@@ -166,7 +166,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
166
166
|
subject = Bolognese::Metadata.new(input: input)
|
167
167
|
expect(subject.valid?).to be true
|
168
168
|
expect(subject.url).to eq("http://biorxiv.org/lookup/doi/10.1101/097196")
|
169
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"PostedContent", "resourceTypeGeneral"=>"
|
169
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"PostedContent", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
170
170
|
expect(subject.creators.count).to eq(11)
|
171
171
|
expect(subject.creators.last).to eq("nameType"=>"Personal", "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-4060-7360", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}], "name"=>"Clark, Timothy", "givenName"=>"Timothy", "familyName"=>"Clark")
|
172
172
|
expect(subject.titles).to eq([{"title"=>"A Data Citation Roadmap for Scholarly Data Repositories"}])
|
@@ -184,7 +184,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
184
184
|
subject = Bolognese::Metadata.new(input: input)
|
185
185
|
expect(subject.valid?).to be true
|
186
186
|
expect(subject.url).to eq("https://elifesciences.org/articles/55167#sa2")
|
187
|
-
expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceType"=>"PeerReview", "resourceTypeGeneral"=>"
|
187
|
+
expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceType"=>"PeerReview", "resourceTypeGeneral"=>"PeerReview", "ris"=>"JOUR", "schemaOrg"=>"Review")
|
188
188
|
expect(subject.creators.count).to eq(8)
|
189
189
|
expect(subject.creators.last).to eq("affiliation" => [{"name"=>"Center for Computational Mathematics, Flatiron Institute, New York, United States"}],
|
190
190
|
"familyName" => "Barnett",
|
@@ -206,7 +206,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
206
206
|
subject = Bolognese::Metadata.new(input: input)
|
207
207
|
expect(subject.valid?).to be true
|
208
208
|
expect(subject.url).to eq("http://espace.library.uq.edu.au/view/UQ:23a1e74")
|
209
|
-
expect(subject.types).to eq("bibtex"=>"phdthesis", "citeproc"=>"thesis", "resourceType"=>"Dissertation", "resourceTypeGeneral"=>"
|
209
|
+
expect(subject.types).to eq("bibtex"=>"phdthesis", "citeproc"=>"thesis", "resourceType"=>"Dissertation", "resourceTypeGeneral"=>"Dissertation", "ris"=>"THES", "schemaOrg"=>"Thesis")
|
210
210
|
expect(subject.creators).to eq([{"familyName"=>"Collingwood",
|
211
211
|
"givenName"=>"Patricia Maree",
|
212
212
|
"name"=>"Collingwood, Patricia Maree",
|
@@ -231,7 +231,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
231
231
|
expect(subject.valid?).to be true
|
232
232
|
expect(subject.id).to eq("https://doi.org/10.1890/0012-9658(2006)87%255b2832:tiopma%255d2.0.co;2")
|
233
233
|
expect(subject.url).to eq("http://doi.wiley.com/10.1890/0012-9658(2006)87[2832:TIOPMA]2.0.CO;2")
|
234
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
234
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
235
235
|
expect(subject.creators).to eq([{"nameType"=>"Personal", "name"=>"Fenton, A.", "givenName"=>"A.", "familyName"=>"Fenton"}, {"nameType"=>"Personal", "name"=>"Rands, S. A.", "givenName"=>"S. A.", "familyName"=>"Rands"}])
|
236
236
|
expect(subject.rights_list).to eq([{"rightsUri"=>"http://doi.wiley.com/10.1002/tdm_license_1.1"}])
|
237
237
|
expect(subject.titles).to eq([{"title"=>"THE IMPACT OF PARASITE MANIPULATION AND PREDATOR FORAGING BEHAVIOR ON PREDATOR–PREY COMMUNITIES"}])
|
@@ -251,7 +251,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
251
251
|
expect(subject.valid?).to be true
|
252
252
|
expect(subject.id).to eq("https://doi.org/10.1155/2012/291294")
|
253
253
|
expect(subject.url).to eq("http://www.hindawi.com/journals/pm/2012/291294/")
|
254
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
254
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
255
255
|
expect(subject.creators.length).to eq(7)
|
256
256
|
expect(subject.creators[2]).to eq("nameType"=>"Personal", "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-2043-4925", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}], "name"=>"Hernandez, Beatriz", "givenName"=>"Beatriz", "familyName"=>"Hernandez", "affiliation" => [{"name"=>"War Related Illness and Injury Study Center (WRIISC) and Mental Illness Research Education and Clinical Center (MIRECC), Department of Veterans Affairs, Palo Alto, CA 94304, USA"}, {"name"=>"Department of Psychiatry and Behavioral Sciences, Stanford University School of Medicine, Stanford, CA 94304, USA"}])
|
257
257
|
expect(subject.rights_list).to eq([{"rights"=>"Creative Commons Attribution 3.0 Unported",
|
@@ -277,7 +277,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
277
277
|
expect(subject.id).to eq("https://doi.org/10.1016/j.ejphar.2015.03.018")
|
278
278
|
expect(subject.identifiers).to eq([{"identifier"=>"S0014299915002332", "identifierType"=>"sequence-number"}])
|
279
279
|
expect(subject.url).to eq("https://linkinghub.elsevier.com/retrieve/pii/S0014299915002332")
|
280
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
280
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
281
281
|
expect(subject.creators.length).to eq(10)
|
282
282
|
expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Beck, Sarah E.", "givenName"=>"Sarah E.", "familyName"=>"Beck")
|
283
283
|
expect(subject.titles).to eq([{"title"=>"Paving the path to HIV neurotherapy: Predicting SIV CNS disease"}])
|
@@ -295,7 +295,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
295
295
|
expect(subject.valid?).to be true
|
296
296
|
expect(subject.id).to eq("https://doi.org/10.1038/hdy.2013.26")
|
297
297
|
expect(subject.url).to eq("http://www.nature.com/articles/hdy201326")
|
298
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
298
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
299
299
|
expect(subject.creators.length).to eq(2)
|
300
300
|
expect(subject.creators.first).to eq("familyName"=>"Gross", "givenName"=>"J B", "name"=>"Gross, J B", "nameType"=>"Personal")
|
301
301
|
expect(subject.titles).to eq([{"title"=>"Albinism in phylogenetically and geographically distinct populations of Astyanax cavefish arises through the same loss-of-function Oca2 allele"}])
|
@@ -364,7 +364,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
364
364
|
expect(subject.valid?).to be true
|
365
365
|
expect(subject.id).to eq("https://doi.org/10.1007/978-3-662-46370-3_13")
|
366
366
|
expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-662-46370-3_13")
|
367
|
-
expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"
|
367
|
+
expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"BookChapter", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
|
368
368
|
expect(subject.creators.length).to eq(2)
|
369
369
|
expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Diercks, Ronald L.", "givenName"=>"Ronald L.", "familyName"=>"Diercks")
|
370
370
|
expect(subject.titles).to eq([{"title"=>"Clinical Symptoms and Physical Examinations"}])
|
@@ -380,7 +380,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
380
380
|
expect(subject.valid?).to be true
|
381
381
|
expect(subject.id).to eq("https://doi.org/10.1007/978-3-319-75889-3_1")
|
382
382
|
expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-319-75889-3_1")
|
383
|
-
expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"
|
383
|
+
expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"BookChapter", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
|
384
384
|
expect(subject.creators).to eq([{"familyName"=>"Jones", "givenName"=>"Hunter M.", "name"=>"Jones, Hunter M.", "nameType"=>"Personal"}])
|
385
385
|
expect(subject.titles).to eq([{"title"=>"Climate Change and Increasing Risk of Extreme Heat"}])
|
386
386
|
expect(subject.dates).to include({"date"=>"2018", "dateType"=>"Issued"})
|
@@ -395,7 +395,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
395
395
|
expect(subject.valid?).to be true
|
396
396
|
expect(subject.id).to eq("https://doi.org/10.4018/978-1-4666-1891-6.ch004")
|
397
397
|
expect(subject.url).to eq("http://services.igi-global.com/resolvedoi/resolve.aspx?doi=10.4018/978-1-4666-1891-6.ch004")
|
398
|
-
expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"
|
398
|
+
expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"BookChapter", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
|
399
399
|
expect(subject.creators).to eq([{"affiliation"=>[{"name"=>"Université de Lyon, France"}], "familyName"=>"Bichot", "givenName"=>"Charles-Edmond", "name"=>"Bichot, Charles-Edmond", "nameType"=>"Personal"}])
|
400
400
|
expect(subject.titles).to eq([{"title"=>"Unsupervised and Supervised Image Segmentation Using Graph Partitioning"}])
|
401
401
|
expect(subject.dates).to eq([{"date"=>"2012-08-08", "dateType"=>"Issued"}, {"date"=>"2019-07-02T17:17:21Z", "dateType"=>"Updated"}])
|
@@ -410,7 +410,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
410
410
|
expect(subject.valid?).to be true
|
411
411
|
expect(subject.id).to eq("https://doi.org/10.3390/publications6020015")
|
412
412
|
expect(subject.url).to eq("http://www.mdpi.com/2304-6775/6/2/15")
|
413
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
413
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
414
414
|
expect(subject.creators).to eq([{"name"=>"Alexander Kohls", "nameType"=>"Organizational"}, {"name"=>"Salvatore Mele", "nameType"=>"Organizational"}])
|
415
415
|
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"}])
|
416
416
|
expect(subject.dates).to eq([{"date"=>"2018-04-09", "dateType"=>"Issued"}, {"date"=>"2018-04-10T17:58:05Z", "dateType"=>"Updated"}])
|
@@ -426,7 +426,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
426
426
|
expect(subject.id).to eq("https://doi.org/10.1017/9781108348843")
|
427
427
|
expect(subject.identifiers).to eq([{"identifier"=>"9781108348843", "identifierType"=>"ISBN"}])
|
428
428
|
expect(subject.url).to eq("https://www.cambridge.org/core/product/identifier/9781108348843/type/book")
|
429
|
-
expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"
|
429
|
+
expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
|
430
430
|
expect(subject.creators).to eq([{"familyName"=>"Leung", "givenName"=>"Vincent S.", "name"=>"Leung, Vincent S.", "nameType"=>"Personal"}])
|
431
431
|
expect(subject.titles).to eq([{"title"=>"The Politics of the Past in Early China"}])
|
432
432
|
expect(subject.dates).to eq([{"date"=>"2019-07-01", "dateType"=>"Issued"}, {"date"=>"2019-12-01T18:11:11Z", "dateType"=>"Updated"}])
|
@@ -442,7 +442,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
442
442
|
expect(subject.valid?).to be true
|
443
443
|
expect(subject.id).to eq("https://doi.org/10.2973/odp.proc.ir.180.2000")
|
444
444
|
expect(subject.url).to eq("http://www-odp.tamu.edu/publications/180_IR/180TOC.HTM")
|
445
|
-
expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"
|
445
|
+
expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
|
446
446
|
expect(subject.creators).to eq([{"name"=>":(unav)", "nameType"=>"Organizational"}])
|
447
447
|
expect(subject.contributors.size).to eq(4)
|
448
448
|
expect(subject.contributors.first).to eq("contributorType"=>"Editor", "familyName"=>"Taylor", "givenName"=>"B.", "name"=>"Taylor, B.", "nameType"=>"Personal")
|
@@ -461,7 +461,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
461
461
|
expect(subject.id).to eq("https://doi.org/10.1029/ar035")
|
462
462
|
expect(subject.identifiers).to eq([{"identifier"=>"0-87590-181-6", "identifierType"=>"ISBN"}])
|
463
463
|
expect(subject.url).to eq("http://doi.wiley.com/10.1029/AR035")
|
464
|
-
expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"
|
464
|
+
expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
|
465
465
|
expect(subject.creators).to eq([{"familyName"=>"McGinnis", "givenName"=>"Richard Frank", "name"=>"McGinnis, Richard Frank", "nameType"=>"Personal"}])
|
466
466
|
expect(subject.titles).to eq([{"title"=>"Biogeography of Lanternfishes (Myctophidae) South of 30°S"}])
|
467
467
|
expect(subject.dates).to eq([{"date"=>"1982", "dateType"=>"Issued"}, {"date"=>"2019-06-15T05:11:12Z", "dateType"=>"Updated"}])
|
@@ -481,7 +481,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
481
481
|
expect(subject.id).to eq("https://doi.org/10.3280/ecag2018-001005")
|
482
482
|
expect(subject.identifiers).to eq([{"identifier"=>"5", "identifierType"=>"article_number"}])
|
483
483
|
expect(subject.url).to eq("http://www.francoangeli.it/riviste/Scheda_Riviste.asp?IDArticolo=61645")
|
484
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
484
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
485
485
|
expect(subject.creators.length).to eq(2)
|
486
486
|
expect(subject.creators.first).to eq("familyName"=>"Oh", "givenName"=>"Sohae Eve", "name"=>"Oh, Sohae Eve", "nameType"=>"Personal")
|
487
487
|
expect(subject.titles).to eq([{"title"=>"Substitutability between organic and conventional poultry products and organic price premiums"}])
|
@@ -498,7 +498,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
498
498
|
expect(subject.id).to eq("https://doi.org/10.5012/bkcs.2013.34.10.2889")
|
499
499
|
expect(subject.identifiers).to eq([{"identifier"=>"JCGMCS_2013_v34n10_2889", "identifierType"=>"Publisher ID"}])
|
500
500
|
expect(subject.url).to eq("http://koreascience.or.kr/journal/view.jsp?kj=JCGMCS&py=2013&vnc=v34n10&sp=2889")
|
501
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
501
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
502
502
|
expect(subject.creators.length).to eq(7)
|
503
503
|
expect(subject.creators.first).to eq("familyName"=>"Huang", "givenName"=>"Guimei", "name"=>"Huang, Guimei", "nameType"=>"Personal")
|
504
504
|
expect(subject.titles).to eq([{"title"=>"Synthesis, Crystal Structure and Theoretical Calculation of a Novel Nickel(II) Complex with Dibromotyrosine and 1,10-Phenanthroline"}])
|
@@ -514,7 +514,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
514
514
|
expect(subject.valid?).to be true
|
515
515
|
expect(subject.id).to eq("https://doi.org/10.1241/johokanri.39.979")
|
516
516
|
expect(subject.url).to eq("http://joi.jlc.jst.go.jp/JST.JSTAGE/johokanri/39.979?from=CrossRef")
|
517
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
517
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
518
518
|
expect(subject.creators).to eq([{"familyName"=>"KUSUMOTO", "givenName"=>"Hiroyuki", "name"=>"KUSUMOTO, Hiroyuki", "nameType"=>"Personal"}])
|
519
519
|
expect(subject.titles).to eq([{"title"=>"Utilizing the Internet. 12 Series. Future of the Internet."}])
|
520
520
|
expect(subject.dates).to eq([{"date"=>"1997", "dateType"=>"Issued"}, {"date"=>"2020-03-06T06:44:36Z", "dateType"=>"Updated"}])
|
@@ -529,7 +529,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
529
529
|
#expect(subject.valid?).to be true
|
530
530
|
expect(subject.id).to eq("https://doi.org/10.2903/j.efsa.2018.5239")
|
531
531
|
expect(subject.url).to eq("http://doi.wiley.com/10.2903/j.efsa.2018.5239")
|
532
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
532
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
533
533
|
expect(subject.creators.length).to eq(28)
|
534
534
|
expect(subject.creators.first).to eq("familyName"=>"Younes", "givenName"=>"Maged", "name"=>"Younes, Maged", "nameType"=>"Personal")
|
535
535
|
expect(subject.titles).to eq([{"title"=>"Scientific opinion on the safety of green tea catechins"}])
|
@@ -545,7 +545,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
545
545
|
expect(subject.valid?).to be true
|
546
546
|
expect(subject.id).to eq("https://doi.org/10.4000/dms.865")
|
547
547
|
expect(subject.url).to eq("http://journals.openedition.org/dms/865")
|
548
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
548
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
549
549
|
expect(subject.creators).to eq([{"familyName"=>"Peraya", "givenName"=>"Daniel", "name"=>"Peraya, Daniel", "nameType"=>"Personal"}])
|
550
550
|
expect(subject.titles).to eq([{"title"=>"Distances, absence, proximités et présences : des concepts en déplacement"}, {"title"=>"Distance(s), proximity and presence(s): evolving concepts"}])
|
551
551
|
expect(subject.dates).to include({"date"=>"2014-12-23", "dateType"=>"Issued"})
|
@@ -561,7 +561,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
561
561
|
expect(subject.valid?).to be true
|
562
562
|
expect(subject.id).to eq("https://doi.org/10.1186/1471-2164-7-187")
|
563
563
|
expect(subject.url).to eq("https://bmcgenomics.biomedcentral.com/articles/10.1186/1471-2164-7-187")
|
564
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
564
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
565
565
|
expect(subject.creators).to eq([{"familyName"=>"Myers",
|
566
566
|
"givenName"=>"Chad L",
|
567
567
|
"name"=>"Myers, Chad L",
|
@@ -596,7 +596,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
596
596
|
expect(subject.valid?).to be true
|
597
597
|
expect(subject.id).to eq("https://doi.org/10.1098/rspb.2017.0132")
|
598
598
|
expect(subject.url).to eq("https://royalsocietypublishing.org/doi/10.1098/rspb.2017.0132")
|
599
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
599
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
600
600
|
expect(subject.creators.size).to eq(6)
|
601
601
|
expect(subject.creators.first).to eq("affiliation" => [{"name"=>"School of Biological Sciences, Centre for Evolutionary Biology, University of Western Australia, Crawley, WA 6009, Australia"}], "familyName" => "Dougherty","givenName" => "Liam R.","name" => "Dougherty, Liam R.","nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-1406-0680", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}],"nameType"=>"Personal")
|
602
602
|
expect(subject.titles).to eq([{"title"=>"Sexual conflict and correlated evolution between male persistence and female resistance traits in the seed beetle <i>Callosobruchus maculatus</i>"}])
|
@@ -613,7 +613,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
613
613
|
expect(subject.valid?).to be true
|
614
614
|
expect(subject.id).to eq("https://doi.org/10.1111/j.1865-1682.2010.01171.x")
|
615
615
|
expect(subject.url).to eq("http://doi.wiley.com/10.1111/j.1865-1682.2010.01171.x")
|
616
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
616
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
617
617
|
expect(subject.creators.length).to eq(5)
|
618
618
|
expect(subject.creators[3]).to eq("familyName"=>"Ehtisham-ul-Haq", "givenName"=>" ", "name"=>"Ehtisham-ul-Haq, ", "nameType"=>"Personal")
|
619
619
|
expect(subject.titles).to eq([{"title"=>"Serological Evidence of Brucella abortus Prevalence in Punjab Province, Pakistan - A Cross-Sectional Study"}])
|
@@ -630,7 +630,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
630
630
|
expect(subject.id).to eq("https://doi.org/10.1055/s-0039-1690894")
|
631
631
|
expect(subject.identifiers).to eq([{"identifier"=>"s-0039-1690894", "identifierType"=>"sequence-number"}])
|
632
632
|
expect(subject.url).to eq("http://www.thieme-connect.de/DOI/DOI?10.1055/s-0039-1690894")
|
633
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
633
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
634
634
|
expect(subject.creators.length).to eq(4)
|
635
635
|
expect(subject.creators[3]).to eq("affiliation" => [{"name"=>"Department of Chemistry, Tianjin Key Laboratory of Molecular Optoelectronic Sciences, and Tianjin Collaborative Innovation Centre of Chemical Science and Engineering, Tianjin University"}, {"name"=>"Joint School of National University of Singapore and Tianjin University, International Campus of Tianjin University"}],
|
636
636
|
"familyName" => "Ma",
|
@@ -650,7 +650,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
650
650
|
expect(subject.valid?).to be true
|
651
651
|
expect(subject.id).to eq("https://doi.org/10.1111/nph.14619")
|
652
652
|
expect(subject.url).to eq("http://doi.wiley.com/10.1111/nph.14619")
|
653
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
653
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
654
654
|
expect(subject.creators.length).to eq(3)
|
655
655
|
expect(subject.creators.first).to eq("nameType"=>"Personal", "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0002-4156-3761", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}], "name"=>"Dissmeyer, Nico", "givenName"=>"Nico", "familyName"=>"Dissmeyer", "affiliation" => [{"name"=>"Independent Junior Research Group on Protein Recognition and Degradation; Leibniz Institute of Plant Biochemistry (IPB); Weinberg 3 Halle (Saale) D-06120 Germany"}, {"name"=>"ScienceCampus Halle - Plant-based Bioeconomy; Betty-Heimann-Strasse 3 Halle (Saale) D-06120 Germany"}])
|
656
656
|
expect(subject.titles).to eq([{"title"=>"Life and death of proteins after protease cleavage: protein degradation by the N-end rule pathway"}])
|
@@ -672,7 +672,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
672
672
|
expect(subject.valid?).to be true
|
673
673
|
expect(subject.id).to eq("https://doi.org/10.1038/ng.3834")
|
674
674
|
expect(subject.url).to eq("http://www.nature.com/articles/ng.3834")
|
675
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"
|
675
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
676
676
|
expect(subject.creators.length).to eq(14)
|
677
677
|
expect(subject.creators.last).to eq("name"=>"GTEx Consortium", "nameType"=>"Organizational")
|
678
678
|
expect(subject.titles).to eq([{"title"=>"The impact of structural variation on human gene expression"}])
|
@@ -683,12 +683,65 @@ describe Bolognese::Metadata, vcr: true do
|
|
683
683
|
expect(subject.date_registered).to eq("2019-11-02T09:30:06Z")
|
684
684
|
end
|
685
685
|
|
686
|
+
it "affiliation is space" do
|
687
|
+
input = "https://doi.org/10.1177/0042098011428175"
|
688
|
+
subject = Bolognese::Metadata.new(input: input)
|
689
|
+
expect(subject.valid?).to be true
|
690
|
+
expect(subject.id).to eq("https://doi.org/10.1177/0042098011428175")
|
691
|
+
expect(subject.url).to eq("http://journals.sagepub.com/doi/10.1177/0042098011428175")
|
692
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
693
|
+
expect(subject.creators.length).to eq(1)
|
694
|
+
expect(subject.creators.first).to eq("familyName"=>"Petrovici", "givenName"=>"Norbert", "name"=>"Petrovici, Norbert", "nameType"=>"Personal")
|
695
|
+
expect(subject.titles).to eq([{"title"=>"Workers and the City: Rethinking the Geographies of Power in Post-socialist Urbanisation"}])
|
696
|
+
expect(subject.dates).to include({"date"=>"2011-12-22", "dateType"=>"Issued"})
|
697
|
+
expect(subject.publication_year).to eq("2011")
|
698
|
+
expect(subject.publisher).to eq("SAGE Publications")
|
699
|
+
expect(subject.agency).to eq("crossref")
|
700
|
+
expect(subject.date_registered).to eq("2017-12-17T00:37:32Z")
|
701
|
+
end
|
702
|
+
|
703
|
+
it "multiple issn" do
|
704
|
+
input = "https://doi.org/10.1007/978-3-642-34922-5_19"
|
705
|
+
subject = Bolognese::Metadata.new(input: input)
|
706
|
+
expect(subject.valid?).to be true
|
707
|
+
expect(subject.id).to eq("https://doi.org/10.1007/978-3-642-34922-5_19")
|
708
|
+
expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-642-34922-5_19")
|
709
|
+
expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"BookChapter", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
|
710
|
+
expect(subject.creators.length).to eq(3)
|
711
|
+
expect(subject.creators.first).to eq("familyName"=>"Razib", "givenName"=>"Ali", "name"=>"Razib, Ali", "nameType"=>"Personal")
|
712
|
+
expect(subject.titles).to eq([{"title"=>"Log-Domain Arithmetic for High-Speed Fuzzy Control on a Field-Programmable Gate Array"}])
|
713
|
+
expect(subject.dates).to include({"date"=>"2013", "dateType"=>"Issued"})
|
714
|
+
expect(subject.publication_year).to eq("2013")
|
715
|
+
expect(subject.publisher).to eq("Springer Science and Business Media LLC")
|
716
|
+
expect(subject.container).to eq("identifier"=>"1860-0808", "identifierType"=>"ISSN", "title"=>"Studies in Fuzziness and Soft Computing", "type"=>"Book Series")
|
717
|
+
expect(subject.agency).to eq("crossref")
|
718
|
+
expect(subject.date_registered).to eq("2012-10-31T16:15:44Z")
|
719
|
+
end
|
720
|
+
|
721
|
+
it "article id as page number" do
|
722
|
+
input = "https://doi.org/10.1103/physrevlett.120.117701"
|
723
|
+
subject = Bolognese::Metadata.new(input: input)
|
724
|
+
expect(subject.valid?).to be true
|
725
|
+
expect(subject.id).to eq("https://doi.org/10.1103/physrevlett.120.117701")
|
726
|
+
expect(subject.url).to eq("https://link.aps.org/doi/10.1103/PhysRevLett.120.117701")
|
727
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
728
|
+
expect(subject.creators.length).to eq(5)
|
729
|
+
expect(subject.creators.first).to eq("familyName"=>"Marrazzo", "givenName"=>"Antimo", "name"=>"Marrazzo, Antimo", "nameType"=>"Personal")
|
730
|
+
expect(subject.titles).to eq([{"title"=>"Prediction of a Large-Gap and Switchable Kane-Mele Quantum Spin Hall Insulator"}])
|
731
|
+
expect(subject.dates).to include({"date"=>"2018-03-13", "dateType"=>"Issued"})
|
732
|
+
expect(subject.publication_year).to eq("2018")
|
733
|
+
expect(subject.publisher).to eq("American Physical Society (APS)")
|
734
|
+
expect(subject.container).to eq("firstPage" => "117701", "identifier"=>"1079-7114", "identifierType"=>"ISSN", "issue"=>"11", "title"=>"Physical Review Letters", "type"=>"Journal", "volume"=>"120")
|
735
|
+
expect(subject.agency).to eq("crossref")
|
736
|
+
expect(subject.date_registered).to eq("2018-03-13T15:18:48Z")
|
737
|
+
end
|
738
|
+
|
686
739
|
it "posted content copernicus" do
|
687
740
|
input = "https://doi.org/10.5194/CP-2020-95"
|
688
741
|
subject = Bolognese::Metadata.new(input: input)
|
689
742
|
expect(subject.valid?).to be true
|
690
743
|
expect(subject.url).to eq("https://cp.copernicus.org/preprints/cp-2020-95/")
|
691
|
-
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"PostedContent", "resourceTypeGeneral"=>"
|
744
|
+
expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"PostedContent", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
|
692
745
|
expect(subject.creators.count).to eq(6)
|
693
746
|
expect(subject.creators.first).to eq("nameType" => "Personal", "familyName" => "Shao",
|
694
747
|
"givenName" => "Jun",
|
@@ -709,7 +762,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
709
762
|
subject = Bolognese::Metadata.new(input: input)
|
710
763
|
expect(subject.valid?).to be true
|
711
764
|
expect(subject.url).to eq("http://oxfordhandbooks.com/view/10.1093/oxfordhb/9780198746140.001.0001/oxfordhb-9780198746140-e-5")
|
712
|
-
expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"
|
765
|
+
expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
|
713
766
|
expect(subject.creators.count).to eq(1)
|
714
767
|
expect(subject.creators.first).to eq("familyName"=>"Clayton", "givenName"=>"Barbra R.", "name"=>"Clayton, Barbra R.", "nameType"=>"Personal")
|
715
768
|
expect(subject.contributors.count).to eq(2)
|
@@ -729,7 +782,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
729
782
|
subject = Bolognese::Metadata.new(input: input)
|
730
783
|
expect(subject.valid?).to be true
|
731
784
|
expect(subject.url).to eq("http://www.osti.gov/servlets/purl/972169-1QXROM/")
|
732
|
-
expect(subject.types).to eq("bibtex"=>"techreport", "citeproc"=>"report", "resourceType"=>"Report", "resourceTypeGeneral"=>"
|
785
|
+
expect(subject.types).to eq("bibtex"=>"techreport", "citeproc"=>"report", "resourceType"=>"Report", "resourceTypeGeneral"=>"Report", "ris"=>"RPRT", "schemaOrg"=>"Report")
|
733
786
|
expect(subject.creators.count).to eq(4)
|
734
787
|
expect(subject.creators.first).to eq("familyName"=>"Denholm", "givenName"=>"P.", "name"=>"Denholm, P.", "nameType"=>"Personal")
|
735
788
|
expect(subject.contributors.count).to eq(0)
|