bolognese 0.8 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d9c8e7a4955f749653d35917dae9f3a459c0f2da
4
- data.tar.gz: b646899d5e3c5502320e754d25fc9cbfdafffc51
3
+ metadata.gz: 44ef0d823038f4256509d1215ce8fae2ca6d62f4
4
+ data.tar.gz: a4a9ad1a9530c9e4e96566c6e1c349205d2dd7e0
5
5
  SHA512:
6
- metadata.gz: 892e8ccf9ad4354b93dca5b42d7fc099707007d2187dcaab5ad066ebf5357dc6ade3664e181408e05be3cfc07b8a77f86f1abe57f1348fd6a5d9fcfe5b293b06
7
- data.tar.gz: 064b883d4eefefb064f4dc24fb5397a2c530f2dd1a52cc15319a52487820053d67b6a68dd94ae8a1dbd35dcb21d623e3a42e9539552172c0be536945edd4daf5
6
+ metadata.gz: 347c241f0201e837225394d7bec559fa0675696edd725df6a635f5ddf4b6975fe5194fa2fc25c7ba97069272e4440e1660ea0d2a2eb0dbf312a4d3370a49d970
7
+ data.tar.gz: a7906e3128cc090e14017716a3534c444ff18a9f209083f9e1d64a833f27fb7d01720fe07a2895c87af65bb1656b94716fe6e55dbd596f5056d5c8027653aed4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bolognese (0.8)
4
+ bolognese (0.8.1)
5
5
  activesupport (~> 4.2, >= 4.2.5)
6
6
  bibtex-ruby (~> 4.1)
7
7
  builder (~> 3.2, >= 3.2.2)
@@ -123,4 +123,4 @@ DEPENDENCIES
123
123
  webmock (~> 1.22, >= 1.22.3)
124
124
 
125
125
  BUNDLED WITH
126
- 1.12.5
126
+ 1.14.5
@@ -39,7 +39,7 @@ module Bolognese
39
39
  end
40
40
 
41
41
  def valid?
42
- true
42
+ bibtex.present?
43
43
  end
44
44
 
45
45
  def type
@@ -21,7 +21,7 @@ module Bolognese
21
21
  end
22
22
 
23
23
  def valid?
24
- true
24
+ codemeta.present?
25
25
  end
26
26
 
27
27
  def doi
@@ -83,7 +83,7 @@ module Bolognese
83
83
  end
84
84
 
85
85
  def valid?
86
- true
86
+ crossref.present?
87
87
  end
88
88
 
89
89
  def doi
@@ -31,11 +31,13 @@ module Bolognese
31
31
  end
32
32
 
33
33
  def valid?
34
- errors.blank?
34
+ datacite.present? && errors.blank?
35
35
  end
36
36
 
37
37
  def errors
38
38
  schema.validate(Nokogiri::XML(raw)).map { |error| error.to_s }.unwrap
39
+ rescue Nokogiri::XML::SyntaxError => e
40
+ e.message
39
41
  end
40
42
 
41
43
  def schema_version
@@ -227,8 +229,36 @@ module Bolognese
227
229
  related_identifier(relation_type: "IsNewVersionOf")
228
230
  end
229
231
 
232
+ def is_variant_form_of
233
+ related_identifier(relation_type: "IsVariantFormOf")
234
+ end
235
+
236
+ def is_original_form_of
237
+ related_identifier(relation_type: "IsOriginalFormOf")
238
+ end
239
+
230
240
  def references
231
- related_identifier(relation_type: "Cites IsCitedBy Supplements IsSupplementTo References IsReferencedBy").presence
241
+ related_identifier(relation_type: "References Cites").presence
242
+ end
243
+
244
+ def is_referenced_by
245
+ related_identifier(relation_type: "IsCitedBy IsReferencedBy").presence
246
+ end
247
+
248
+ def is_supplement_to
249
+ related_identifier(relation_type: "IsSupplementTo")
250
+ end
251
+
252
+ def is_supplemented_by
253
+ get_related_identifier(relation_type: "isSupplementedBy")
254
+ end
255
+
256
+ def reviews
257
+ related_identifier(relation_type: "Reviews").presence
258
+ end
259
+
260
+ def is_reviewed_by
261
+ related_identifier(relation_type: "IsReviewedBy").presence
232
262
  end
233
263
 
234
264
  def publisher
@@ -12,7 +12,7 @@ module Bolognese
12
12
  end
13
13
 
14
14
  def valid?
15
- true
15
+ datacite_json.present?
16
16
  end
17
17
 
18
18
  def datacite
@@ -41,7 +41,7 @@ module Bolognese
41
41
  :is_referenced_by, :references, :is_documented_by, :documents,
42
42
  :is_compiled_by, :compiles, :is_variant_form_of, :is_original_form_of,
43
43
  :is_reviewed_by, :reviews, :is_derived_from, :is_source_of, :format,
44
- :related_identifier
44
+ :related_identifier, :reverse
45
45
 
46
46
  def publication_year
47
47
  date_published && date_published[0..3]
@@ -55,6 +55,11 @@ module Bolognese
55
55
  [page_start, page_end].compact.join("-").presence
56
56
  end
57
57
 
58
+ def reverse
59
+ { "citation" => Array.wrap(is_referenced_by).map { |r| { "@id" => r["id"] }}.unwrap,
60
+ "isBasedOn" => Array.wrap(is_supplement_to).map { |r| { "@id" => r["id"] }}.unwrap }.compact
61
+ end
62
+
58
63
  def schema_org
59
64
  hsh = {
60
65
  "@context" => id.present? ? "http://schema.org" : nil,
@@ -66,7 +71,7 @@ module Bolognese
66
71
  "alternateName" => alternate_name,
67
72
  "author" => to_schema_org(author),
68
73
  "editor" => editor,
69
- "description" => description.present? ? description["text"] : nil,
74
+ "description" => Array.wrap(description).map { |d| d["text"] }.unwrap,
70
75
  "license" => license.present? ? license["id"] : nil,
71
76
  "version" => version,
72
77
  "keywords" => keywords,
@@ -84,6 +89,7 @@ module Bolognese
84
89
  "predecessor_of" => is_previous_version_of,
85
90
  "successor_of" => is_new_version_of,
86
91
  "citation" => references,
92
+ "@reverse" => reverse,
87
93
  "schemaVersion" => schema_version,
88
94
  "publisher" => { "@type" => "Organization", "name" => publisher },
89
95
  "funder" => funder,
@@ -151,7 +157,7 @@ module Bolognese
151
157
 
152
158
  def bibtex
153
159
  bib = {
154
- bibtex_type: bibtex_type.to_sym,
160
+ bibtex_type: bibtex_type.present? ? bibtex_type.to_sym : "misc",
155
161
  bibtex_key: id,
156
162
  doi: doi,
157
163
  url: url,
@@ -31,7 +31,7 @@ module Bolognese
31
31
  end
32
32
 
33
33
  def valid?
34
- true
34
+ schema_org.present?
35
35
  end
36
36
 
37
37
  def doi
@@ -114,13 +114,18 @@ module Bolognese
114
114
  Array.wrap(has_part) +
115
115
  Array.wrap(is_previous_version_of) +
116
116
  Array.wrap(is_new_version_of) +
117
- Array.wrap(references)
117
+ Array.wrap(references) +
118
+ Array.wrap(is_supplemented_by)
118
119
  end
119
120
 
120
121
  def get_related_identifier(relation_type: nil)
121
122
  normalize_ids(metadata.fetch(relation_type, nil), SO_TO_DC_RELATION_TYPES[relation_type])
122
123
  end
123
124
 
125
+ def get_reverse_related_identifier(relation_type: nil)
126
+ normalize_ids(metadata.dig("@reverse", relation_type), SO_TO_DC_RELATION_TYPES[relation_type])
127
+ end
128
+
124
129
  def is_identical_to
125
130
  get_related_identifier(relation_type: "sameAs")
126
131
  end
@@ -145,6 +150,18 @@ module Bolognese
145
150
  get_related_identifier(relation_type: "citation")
146
151
  end
147
152
 
153
+ def is_referenced_by
154
+ get_reverse_related_identifier(relation_type: "citation")
155
+ end
156
+
157
+ def is_supplement_to
158
+ get_reverse_related_identifier(relation_type: "isBasedOn")
159
+ end
160
+
161
+ def is_supplemented_by
162
+ get_related_identifier(relation_type: "isBasedOn")
163
+ end
164
+
148
165
  def publisher
149
166
  metadata.dig("publisher", "name")
150
167
  end
@@ -1,3 +1,3 @@
1
1
  module Bolognese
2
- VERSION = "0.8"
2
+ VERSION = "0.8.1"
3
3
  end
data/spec/bibtex_spec.rb CHANGED
@@ -7,6 +7,7 @@ describe Bolognese::Bibtex, vcr: true do
7
7
 
8
8
  context "get metadata" do
9
9
  it "Crossref DOI" do
10
+ expect(subject.valid?).to be true
10
11
  expect(subject.id).to eq("https://doi.org/10.7554/elife.01567")
11
12
  expect(subject.type).to eq("ScholarlyArticle")
12
13
  expect(subject.url).to eq("http://elifesciences.org/lookup/doi/10.7554/eLife.01567")
@@ -8,6 +8,7 @@ describe Bolognese::Codemeta, vcr: true do
8
8
 
9
9
  context "get metadata" do
10
10
  it "maremma" do
11
+ expect(subject.valid?).to be true
11
12
  expect(subject.id).to eq("https://doi.org/10.5438/qeg0-3gm3")
12
13
  expect(subject.url).to eq("https://github.com/datacite/maremma")
13
14
  expect(subject.type).to eq("SoftwareSourceCode")
@@ -76,6 +77,7 @@ describe Bolognese::Codemeta, vcr: true do
76
77
  it "maremma" do
77
78
  string = IO.read(fixture_path + 'maremma/codemeta.json')
78
79
  subject = Bolognese::Codemeta.new(string: string)
80
+ expect(subject.valid?).to be true
79
81
  expect(subject.id).to eq("https://doi.org/10.5438/qeg0-3gm3")
80
82
  expect(subject.url).to eq("https://github.com/datacite/maremma")
81
83
  expect(subject.type).to eq("SoftwareSourceCode")
@@ -7,6 +7,7 @@ describe Bolognese::DataciteJson, vcr: true do
7
7
 
8
8
  context "get metadata as string" do
9
9
  it "BlogPosting" do
10
+ expect(subject.valid?).to be true
10
11
  expect(subject.id).to eq("https://doi.org/10.5438/4k3m-nyvg")
11
12
  expect(subject.type).to eq("ScholarlyArticle")
12
13
  expect(subject.additional_type).to eq("BlogPosting")
@@ -25,6 +26,7 @@ describe Bolognese::DataciteJson, vcr: true do
25
26
  it "SoftwareSourceCode" do
26
27
  string = IO.read(fixture_path + "datacite_software.json")
27
28
  subject = Bolognese::DataciteJson.new(string: string)
29
+ expect(subject.valid?).to be true
28
30
  json = JSON.parse(subject.codemeta)
29
31
  expect(json["@context"]).to eq("https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld")
30
32
  expect(json["@id"]).to eq("https://doi.org/10.5063/f1m61h5x")
@@ -52,6 +54,7 @@ describe Bolognese::DataciteJson, vcr: true do
52
54
  it "BlogPosting" do
53
55
  id = "https://doi.org/10.5438/4K3M-NYVG"
54
56
  subject = Bolognese::Datacite.new(id: id)
57
+ expect(subject.valid?).to be true
55
58
  bibtex = BibTeX.parse(subject.bibtex).to_a(quotes: '').first
56
59
  expect(bibtex[:bibtex_type].to_s).to eq("article")
57
60
  expect(bibtex[:bibtex_key]).to eq("https://doi.org/10.5438/4k3m-nyvg")
@@ -19,7 +19,7 @@ describe Bolognese::Datacite, vcr: true do
19
19
  expect(subject.license).to eq("url"=>"http://creativecommons.org/publicdomain/zero/1.0/")
20
20
  expect(subject.date_published).to eq("2011")
21
21
  expect(subject.has_part).to eq([{"id"=>"https://doi.org/10.5061/dryad.8515/1", "relationType"=>"HasPart"}, {"id"=>"https://doi.org/10.5061/dryad.8515/2", "relationType"=>"HasPart"}])
22
- expect(subject.references).to eq("id"=>"https://doi.org/10.1371/journal.ppat.1000446", "relationType"=>"IsReferencedBy")
22
+ expect(subject.is_referenced_by).to eq("id"=>"https://doi.org/10.1371/journal.ppat.1000446", "relationType"=>"IsReferencedBy")
23
23
  expect(subject.publisher).to eq("Dryad Digital Repository")
24
24
  expect(subject.provider).to eq("DataCite")
25
25
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
@@ -76,7 +76,7 @@ describe Bolognese::Datacite, vcr: true do
76
76
  expect(subject.description["text"]).to start_with("This tools are used to analyse the data produced by the Crosssover Experiment")
77
77
  expect(subject.license).to eq([{"url"=>"info:eu-repo/semantics/openAccess", "name"=>"Open Access"}, {"url"=>"https://creativecommons.org/licenses/by-nc-sa/4.0/", "name"=>"Creative Commons Attribution-NonCommercial-ShareAlike"}])
78
78
  expect(subject.date_published).to eq("2016-03-27")
79
- expect(subject.references).to eq("id"=>"https://github.com/kjgarza/frame_experiment_analysis/tree/v1.0", "relationType"=>"IsSupplementTo")
79
+ expect(subject.is_supplement_to).to eq("id"=>"https://github.com/kjgarza/frame_experiment_analysis/tree/v1.0", "relationType"=>"IsSupplementTo")
80
80
  expect(subject.publisher).to eq("Zenodo")
81
81
  expect(subject.provider).to eq("DataCite")
82
82
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
@@ -146,9 +146,18 @@ describe Bolognese::Datacite, vcr: true do
146
146
  "funderName" => "European Commission")
147
147
  end
148
148
 
149
- it "Schema.org JSON" do
149
+ it "Schema.org JSON isReferencedBy" do
150
150
  json = JSON.parse(subject.schema_org)
151
151
  expect(json["@id"]).to eq("https://doi.org/10.5061/dryad.8515")
152
+ expect(json["@reverse"]).to eq("citation"=>{"@id"=>"https://doi.org/10.1371/journal.ppat.1000446"})
153
+ end
154
+
155
+ it "Schema.org JSON IsSupplementTo" do
156
+ id = "https://doi.org/10.5517/CC8H01S"
157
+ subject = Bolognese::Datacite.new(id: id)
158
+ json = JSON.parse(subject.schema_org)
159
+ expect(json["@id"]).to eq("https://doi.org/10.5517/cc8h01s")
160
+ expect(json["@reverse"]).to eq("isBasedOn"=>{"@id"=>"https://doi.org/10.1107/s1600536804021154"})
152
161
  end
153
162
  end
154
163
 
@@ -196,7 +205,7 @@ describe Bolognese::Datacite, vcr: true do
196
205
  expect(subject.date_published).to eq("2011")
197
206
  expect(subject.has_part).to eq([{"id"=>"https://doi.org/10.5061/dryad.8515/1", "relationType"=>"HasPart"},
198
207
  {"id"=>"https://doi.org/10.5061/dryad.8515/2", "relationType"=>"HasPart"}])
199
- expect(subject.references).to eq("id"=>"https://doi.org/10.1371/journal.ppat.1000446", "relationType"=>"IsReferencedBy")
208
+ expect(subject.is_referenced_by).to eq("id"=>"https://doi.org/10.1371/journal.ppat.1000446", "relationType"=>"IsReferencedBy")
200
209
  expect(subject.publisher).to eq("Dryad Digital Repository")
201
210
  expect(subject.provider).to eq("DataCite")
202
211
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
@@ -0,0 +1,171 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://doi.org/10.5517/cc8h01s
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Maremma - https://github.com/datacite/maremma
12
+ Accept:
13
+ - application/vnd.datacite.datacite+xml
14
+ response:
15
+ status:
16
+ code: 303
17
+ message: ''
18
+ headers:
19
+ Server:
20
+ - Apache-Coyote/1.1
21
+ Vary:
22
+ - Accept
23
+ Location:
24
+ - http://data.datacite.org/10.5517%2Fcc8h01s
25
+ Expires:
26
+ - Wed, 01 Mar 2017 22:34:28 GMT
27
+ Content-Type:
28
+ - text/html;charset=utf-8
29
+ Content-Length:
30
+ - '169'
31
+ Date:
32
+ - Wed, 01 Mar 2017 22:24:34 GMT
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ <html><head><title>Handle Redirect</title></head>
37
+ <body><a href="http://data.datacite.org/10.5517%2Fcc8h01s">http://data.datacite.org/10.5517%2Fcc8h01s</a></body></html>
38
+ http_version:
39
+ recorded_at: Wed, 01 Mar 2017 22:24:35 GMT
40
+ - request:
41
+ method: get
42
+ uri: http://data.datacite.org/10.5517%2Fcc8h01s
43
+ body:
44
+ encoding: US-ASCII
45
+ string: ''
46
+ headers:
47
+ User-Agent:
48
+ - Maremma - https://github.com/datacite/maremma
49
+ Accept:
50
+ - application/vnd.datacite.datacite+xml
51
+ response:
52
+ status:
53
+ code: 301
54
+ message: ''
55
+ headers:
56
+ Server:
57
+ - openresty/1.11.2.2
58
+ Date:
59
+ - Wed, 01 Mar 2017 22:24:35 GMT
60
+ Content-Type:
61
+ - text/html
62
+ Content-Length:
63
+ - '191'
64
+ Connection:
65
+ - keep-alive
66
+ Location:
67
+ - https://data.datacite.org/10.5517%2Fcc8h01s
68
+ body:
69
+ encoding: UTF-8
70
+ string: "<html>\r\n<head><title>301 Moved Permanently</title></head>\r\n<body
71
+ bgcolor=\"white\">\r\n<center><h1>301 Moved Permanently</h1></center>\r\n<hr><center>openresty/1.11.2.2</center>\r\n</body>\r\n</html>\r\n"
72
+ http_version:
73
+ recorded_at: Wed, 01 Mar 2017 22:24:35 GMT
74
+ - request:
75
+ method: get
76
+ uri: https://data.datacite.org/10.5517%2Fcc8h01s
77
+ body:
78
+ encoding: US-ASCII
79
+ string: ''
80
+ headers:
81
+ User-Agent:
82
+ - Maremma - https://github.com/datacite/maremma
83
+ Accept:
84
+ - application/vnd.datacite.datacite+xml
85
+ response:
86
+ status:
87
+ code: 200
88
+ message: ''
89
+ headers:
90
+ Server:
91
+ - openresty/1.11.2.2
92
+ Date:
93
+ - Wed, 01 Mar 2017 22:24:35 GMT
94
+ Content-Type:
95
+ - application/vnd.datacite.datacite+xml
96
+ Content-Length:
97
+ - '2496'
98
+ Connection:
99
+ - keep-alive
100
+ Cache-Control:
101
+ - no-transform, max-age=3600
102
+ Last-Modified:
103
+ - Sun, 01 May 2016 13:41:38 GMT
104
+ Vary:
105
+ - Accept
106
+ Access-Control-Allow-Origin:
107
+ - "*"
108
+ Access-Control-Allow-Methods:
109
+ - GET, POST, OPTIONS
110
+ body:
111
+ encoding: ASCII-8BIT
112
+ string: !binary |-
113
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxyZXNv
114
+ dXJjZSB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No
115
+ ZW1hIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2No
116
+ ZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9kYXRh
117
+ Y2l0ZS5vcmcvc2NoZW1hL2tlcm5lbC0zIGh0dHA6Ly9zY2hlbWEuZGF0YWNp
118
+ dGUub3JnL21ldGEva2VybmVsLTMvbWV0YWRhdGEueHNkIiB4bWxucz0iaHR0
119
+ cDovL2RhdGFjaXRlLm9yZy9zY2hlbWEva2VybmVsLTMiPg0KICA8aWRlbnRp
120
+ ZmllciBpZGVudGlmaWVyVHlwZT0iRE9JIj4xMC41NTE3L2NjOGgwMXM8L2lk
121
+ ZW50aWZpZXI+DQogIDxjcmVhdG9ycz4NCiAgICA8Y3JlYXRvcj4NCiAgICAg
122
+ IDxjcmVhdG9yTmFtZT5HYW8sIFNoYW48L2NyZWF0b3JOYW1lPg0KICAgIDwv
123
+ Y3JlYXRvcj4NCiAgICA8Y3JlYXRvcj4NCiAgICAgIDxjcmVhdG9yTmFtZT5M
124
+ dSwgWmhlbi1aaG9uZzwvY3JlYXRvck5hbWU+DQogICAgPC9jcmVhdG9yPg0K
125
+ ICAgIDxjcmVhdG9yPg0KICAgICAgPGNyZWF0b3JOYW1lPkh1bywgTGktSHVh
126
+ PC9jcmVhdG9yTmFtZT4NCiAgICA8L2NyZWF0b3I+DQogICAgPGNyZWF0b3I+
127
+ DQogICAgICA8Y3JlYXRvck5hbWU+WmhhbmcsIFhpYW4tRmE8L2NyZWF0b3JO
128
+ YW1lPg0KICAgIDwvY3JlYXRvcj4NCiAgICA8Y3JlYXRvcj4NCiAgICAgIDxj
129
+ cmVhdG9yTmFtZT5aaGFvLCBIdWk8L2NyZWF0b3JOYW1lPg0KICAgIDwvY3Jl
130
+ YXRvcj4NCiAgPC9jcmVhdG9ycz4NCiAgPHRpdGxlcz4NCiAgICA8dGl0bGU+
131
+ Q0NEQyAyNTI3NDQ6IEV4cGVyaW1lbnRhbCBDcnlzdGFsIFN0cnVjdHVyZSBE
132
+ ZXRlcm1pbmF0aW9uPC90aXRsZT4NCiAgPC90aXRsZXM+DQogIDxwdWJsaXNo
133
+ ZXI+Q2FtYnJpZGdlIENyeXN0YWxsb2dyYXBoaWMgRGF0YSBDZW50cmU8L3B1
134
+ Ymxpc2hlcj4NCiAgPHB1YmxpY2F0aW9uWWVhcj4yMDA0PC9wdWJsaWNhdGlv
135
+ blllYXI+DQogIDxzdWJqZWN0cz4NCiAgICA8c3ViamVjdD5DcnlzdGFsIFN0
136
+ cnVjdHVyZTwvc3ViamVjdD4NCiAgICA8c3ViamVjdD5FeHBlcmltZW50YWwg
137
+ M0QgQ29vcmRpbmF0ZXM8L3N1YmplY3Q+DQogICAgPHN1YmplY3Q+Q3J5c3Rh
138
+ bCBTeXN0ZW08L3N1YmplY3Q+DQogICAgPHN1YmplY3Q+U3BhY2UgR3JvdXA8
139
+ L3N1YmplY3Q+DQogICAgPHN1YmplY3Q+Q2VsbCBQYXJhbWV0ZXJzPC9zdWJq
140
+ ZWN0Pg0KICAgIDxzdWJqZWN0PkNyeXN0YWxsb2dyYXBoeTwvc3ViamVjdD4N
141
+ CiAgICA8c3ViamVjdD4oRGlhY2V0YXRvLU8sTycpLWJpcygzLWh5ZHJveHlw
142
+ eXJpZGluZSktY29wcGVyKGlpKTwvc3ViamVjdD4NCiAgPC9zdWJqZWN0cz4N
143
+ CiAgPGxhbmd1YWdlPmVuZzwvbGFuZ3VhZ2U+DQogIDxyZXNvdXJjZVR5cGUg
144
+ cmVzb3VyY2VUeXBlR2VuZXJhbD0iRGF0YXNldCIgLz4NCiAgPGFsdGVybmF0
145
+ ZUlkZW50aWZpZXJzPg0KICAgIDxhbHRlcm5hdGVJZGVudGlmaWVyIGFsdGVy
146
+ bmF0ZUlkZW50aWZpZXJUeXBlPSJDQ0RDIj4yNTI3NDQ8L2FsdGVybmF0ZUlk
147
+ ZW50aWZpZXI+DQogIDwvYWx0ZXJuYXRlSWRlbnRpZmllcnM+DQogIDxyZWxh
148
+ dGVkSWRlbnRpZmllcnM+DQogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0
149
+ ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IklzU3VwcGxl
150
+ bWVudFRvIj4xMC4xMTA3L1MxNjAwNTM2ODA0MDIxMTU0PC9yZWxhdGVkSWRl
151
+ bnRpZmllcj4NCiAgPC9yZWxhdGVkSWRlbnRpZmllcnM+DQogIDxmb3JtYXRz
152
+ Pg0KICAgIDxmb3JtYXQ+Q0lGPC9mb3JtYXQ+DQogIDwvZm9ybWF0cz4NCiAg
153
+ PGRlc2NyaXB0aW9ucz4NCiAgICA8ZGVzY3JpcHRpb24gZGVzY3JpcHRpb25U
154
+ eXBlPSJPdGhlciI+UmVsYXRlZCBBcnRpY2xlOiBTaGFuIEdhbywgWmhlbi1a
155
+ aG9uZyBMdSwgTGktSHVhIEh1bywgWGlhbi1GYSBaaGFuZywgSHVpIFpoYW98
156
+ MjAwNHxBY3RhIENyeXN0YWxsb2dyLixTZWN0LkU6U3RydWN0LlJlcC5Pbmxp
157
+ bmV8NjB8bTEzNTN8ZG9pOjEwLjExMDcvUzE2MDA1MzY4MDQwMjExNTQ8L2Rl
158
+ c2NyaXB0aW9uPg0KICAgIDxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9
159
+ IkFic3RyYWN0Ij5BbiBlbnRyeSBmcm9tIHRoZSBDYW1icmlkZ2UgU3RydWN0
160
+ dXJhbCBEYXRhYmFzZSwgdGhlIHdvcmxk4oCZcyByZXBvc2l0b3J5IGZvciBz
161
+ bWFsbCBtb2xlY3VsZSBjcnlzdGFsIHN0cnVjdHVyZXMuIFRoZSBlbnRyeSBj
162
+ b250YWlucyBleHBlcmltZW50YWwgZGF0YSBmcm9tIGEgY3J5c3RhbCBkaWZm
163
+ cmFjdGlvbiBzdHVkeS4gVGhlIGRlcG9zaXRlZCBkYXRhc2V0IGZvciB0aGlz
164
+ IGVudHJ5IGlzIGZyZWVseSBhdmFpbGFibGUgZnJvbSB0aGUgQ0NEQyBhbmQg
165
+ dHlwaWNhbGx5IGluY2x1ZGVzIDNEIGNvb3JkaW5hdGVzLCBjZWxsIHBhcmFt
166
+ ZXRlcnMsIHNwYWNlIGdyb3VwLCBleHBlcmltZW50YWwgY29uZGl0aW9ucyBh
167
+ bmQgcXVhbGl0eSBtZWFzdXJlcy48L2Rlc2NyaXB0aW9uPg0KICA8L2Rlc2Ny
168
+ aXB0aW9ucz4NCjwvcmVzb3VyY2U+
169
+ http_version:
170
+ recorded_at: Wed, 01 Mar 2017 22:24:35 GMT
171
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,173 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://doi.org/10.5061/dryad.8515
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Maremma - https://github.com/datacite/maremma
12
+ Accept:
13
+ - application/vnd.datacite.datacite+xml
14
+ response:
15
+ status:
16
+ code: 303
17
+ message: ''
18
+ headers:
19
+ Server:
20
+ - Apache-Coyote/1.1
21
+ Vary:
22
+ - Accept
23
+ Location:
24
+ - http://data.datacite.org/10.5061%2Fdryad.8515
25
+ Expires:
26
+ - Wed, 01 Mar 2017 22:34:28 GMT
27
+ Content-Type:
28
+ - text/html;charset=utf-8
29
+ Content-Length:
30
+ - '175'
31
+ Date:
32
+ - Wed, 01 Mar 2017 22:24:43 GMT
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ <html><head><title>Handle Redirect</title></head>
37
+ <body><a href="http://data.datacite.org/10.5061%2Fdryad.8515">http://data.datacite.org/10.5061%2Fdryad.8515</a></body></html>
38
+ http_version:
39
+ recorded_at: Wed, 01 Mar 2017 22:24:44 GMT
40
+ - request:
41
+ method: get
42
+ uri: http://data.datacite.org/10.5061%2Fdryad.8515
43
+ body:
44
+ encoding: US-ASCII
45
+ string: ''
46
+ headers:
47
+ User-Agent:
48
+ - Maremma - https://github.com/datacite/maremma
49
+ Accept:
50
+ - application/vnd.datacite.datacite+xml
51
+ response:
52
+ status:
53
+ code: 301
54
+ message: ''
55
+ headers:
56
+ Server:
57
+ - openresty/1.11.2.2
58
+ Date:
59
+ - Wed, 01 Mar 2017 22:24:44 GMT
60
+ Content-Type:
61
+ - text/html
62
+ Content-Length:
63
+ - '191'
64
+ Connection:
65
+ - keep-alive
66
+ Location:
67
+ - https://data.datacite.org/10.5061%2Fdryad.8515
68
+ body:
69
+ encoding: UTF-8
70
+ string: "<html>\r\n<head><title>301 Moved Permanently</title></head>\r\n<body
71
+ bgcolor=\"white\">\r\n<center><h1>301 Moved Permanently</h1></center>\r\n<hr><center>openresty/1.11.2.2</center>\r\n</body>\r\n</html>\r\n"
72
+ http_version:
73
+ recorded_at: Wed, 01 Mar 2017 22:24:44 GMT
74
+ - request:
75
+ method: get
76
+ uri: https://data.datacite.org/10.5061%2Fdryad.8515
77
+ body:
78
+ encoding: US-ASCII
79
+ string: ''
80
+ headers:
81
+ User-Agent:
82
+ - Maremma - https://github.com/datacite/maremma
83
+ Accept:
84
+ - application/vnd.datacite.datacite+xml
85
+ response:
86
+ status:
87
+ code: 200
88
+ message: ''
89
+ headers:
90
+ Server:
91
+ - openresty/1.11.2.2
92
+ Date:
93
+ - Wed, 01 Mar 2017 22:24:44 GMT
94
+ Content-Type:
95
+ - application/vnd.datacite.datacite+xml
96
+ Content-Length:
97
+ - '2601'
98
+ Connection:
99
+ - keep-alive
100
+ Cache-Control:
101
+ - no-transform, max-age=3600
102
+ Last-Modified:
103
+ - Sat, 04 Feb 2017 17:54:37 GMT
104
+ Vary:
105
+ - Accept
106
+ Access-Control-Allow-Origin:
107
+ - "*"
108
+ Access-Control-Allow-Methods:
109
+ - GET, POST, OPTIONS
110
+ body:
111
+ encoding: ASCII-8BIT
112
+ string: !binary |-
113
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291
114
+ cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwt
115
+ MyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt
116
+ YS1pbnN0YW5jZSIgeG1sbnM6bWV0cz0iaHR0cDovL3d3dy5sb2MuZ292L01F
117
+ VFMvIiB4bWxuczpkc3BhY2U9Imh0dHA6Ly93d3cuZHNwYWNlLm9yZy94bWxu
118
+ cy9kc3BhY2UvZGltIiB4bWxuczpkaW09Imh0dHA6Ly93d3cuZHNwYWNlLm9y
119
+ Zy94bWxucy9kc3BhY2UvZGltIiB4bWxuczpkcnlhZD0iaHR0cDovL3B1cmwu
120
+ b3JnL2RyeWFkL3Rlcm1zLyIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8v
121
+ ZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMyBodHRwOi8vc2NoZW1hLmRh
122
+ dGFjaXRlLm9yZy9tZXRhL2tlcm5lbC0zL21ldGFkYXRhLnhzZCI+ICA8aWRl
123
+ bnRpZmllciBpZGVudGlmaWVyVHlwZT0iRE9JIj4xMC41MDYxL0RSWUFELjg1
124
+ MTU8L2lkZW50aWZpZXI+ICA8dmVyc2lvbj4xPC92ZXJzaW9uPiAgPGNyZWF0
125
+ b3JzPiAgICA8Y3JlYXRvcj4gICAgICA8Y3JlYXRvck5hbWU+T2xsb21vLCBC
126
+ ZW5qYW1pbjwvY3JlYXRvck5hbWU+ICAgIDwvY3JlYXRvcj4gICAgPGNyZWF0
127
+ b3I+ICAgICAgPGNyZWF0b3JOYW1lPkR1cmFuZCwgUGF0cmljazwvY3JlYXRv
128
+ ck5hbWU+ICAgIDwvY3JlYXRvcj4gICAgPGNyZWF0b3I+ICAgICAgPGNyZWF0
129
+ b3JOYW1lPlBydWdub2xsZSwgRnJhbmNrPC9jcmVhdG9yTmFtZT4gICAgPC9j
130
+ cmVhdG9yPiAgICA8Y3JlYXRvcj4gICAgICA8Y3JlYXRvck5hbWU+RG91emVy
131
+ eSwgRW1tYW51ZWwgSi4gUC48L2NyZWF0b3JOYW1lPiAgICA8L2NyZWF0b3I+
132
+ ICAgIDxjcmVhdG9yPiAgICAgIDxjcmVhdG9yTmFtZT5Bcm5hdGhhdSwgQ8Op
133
+ bGluZTwvY3JlYXRvck5hbWU+ICAgIDwvY3JlYXRvcj4gICAgPGNyZWF0b3I+
134
+ ICAgICAgPGNyZWF0b3JOYW1lPk5rb2doZSwgRGlldWRvbm7DqTwvY3JlYXRv
135
+ ck5hbWU+ICAgIDwvY3JlYXRvcj4gICAgPGNyZWF0b3I+ICAgICAgPGNyZWF0
136
+ b3JOYW1lPkxlcm95LCBFcmljPC9jcmVhdG9yTmFtZT4gICAgPC9jcmVhdG9y
137
+ PiAgICA8Y3JlYXRvcj4gICAgICA8Y3JlYXRvck5hbWU+UmVuYXVkLCBGcmFu
138
+ w6dvaXM8L2NyZWF0b3JOYW1lPiAgICA8L2NyZWF0b3I+ICA8L2NyZWF0b3Jz
139
+ PiAgPHRpdGxlcz4gICAgPHRpdGxlPkRhdGEgZnJvbTogQSBuZXcgbWFsYXJp
140
+ YSBhZ2VudCBpbiBBZnJpY2FuIGhvbWluaWRzLjwvdGl0bGU+ICA8L3RpdGxl
141
+ cz4gIDxwdWJsaXNoZXI+RHJ5YWQgRGlnaXRhbCBSZXBvc2l0b3J5PC9wdWJs
142
+ aXNoZXI+ICA8cHVibGljYXRpb25ZZWFyPjIwMTE8L3B1YmxpY2F0aW9uWWVh
143
+ cj4gIDxzdWJqZWN0cz4gICAgPHN1YmplY3Q+UGh5bG9nZW55PC9zdWJqZWN0
144
+ PiAgICA8c3ViamVjdD5NYWxhcmlhPC9zdWJqZWN0PiAgICA8c3ViamVjdD5Q
145
+ YXJhc2l0ZXM8L3N1YmplY3Q+ICAgIDxzdWJqZWN0PlRheG9ub215PC9zdWJq
146
+ ZWN0PiAgICA8c3ViamVjdD5NaXRvY2hvbmRyaWFsIGdlbm9tZTwvc3ViamVj
147
+ dD4gICAgPHN1YmplY3Q+QWZyaWNhPC9zdWJqZWN0PiAgICA8c3ViamVjdD5Q
148
+ bGFzbW9kaXVtPC9zdWJqZWN0PiAgPC9zdWJqZWN0cz4gIDxyZXNvdXJjZVR5
149
+ cGUgcmVzb3VyY2VUeXBlR2VuZXJhbD0iRGF0YXNldCI+RGF0YVBhY2thZ2U8
150
+ L3Jlc291cmNlVHlwZT4gIDxhbHRlcm5hdGVJZGVudGlmaWVycz4gICAgPGFs
151
+ dGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9ImNp
152
+ dGF0aW9uIj5PbGxvbW8gQiwgRHVyYW5kIFAsIFBydWdub2xsZSBGLCBEb3V6
153
+ ZXJ5IEVKUCwgQXJuYXRoYXUgQywgTmtvZ2hlIEQsIExlcm95IEUsIFJlbmF1
154
+ ZCBGICgyMDA5KSBBIG5ldyBtYWxhcmlhIGFnZW50IGluIEFmcmljYW4gaG9t
155
+ aW5pZHMuIFBMb1MgUGF0aG9nZW5zIDUoNSk6IGUxMDAwNDQ2LjwvYWx0ZXJu
156
+ YXRlSWRlbnRpZmllcj4gIDwvYWx0ZXJuYXRlSWRlbnRpZmllcnM+ICA8cmVs
157
+ YXRlZElkZW50aWZpZXJzPiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRl
158
+ ZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSGFzUGFydCI+
159
+ MTAuNTA2MS9EUllBRC44NTE1LzE8L3JlbGF0ZWRJZGVudGlmaWVyPiAgICA8
160
+ cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0ki
161
+ IHJlbGF0aW9uVHlwZT0iSGFzUGFydCI+MTAuNTA2MS9EUllBRC44NTE1LzI8
162
+ L3JlbGF0ZWRJZGVudGlmaWVyPiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVs
163
+ YXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSXNSZWZl
164
+ cmVuY2VkQnkiPjEwLjEzNzEvSk9VUk5BTC5QUEFULjEwMDA0NDY8L3JlbGF0
165
+ ZWRJZGVudGlmaWVyPiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElk
166
+ ZW50aWZpZXJUeXBlPSJQTUlEIiByZWxhdGlvblR5cGU9IklzUmVmZXJlbmNl
167
+ ZEJ5Ij4xOTQ3ODg3NzwvcmVsYXRlZElkZW50aWZpZXI+ICA8L3JlbGF0ZWRJ
168
+ ZGVudGlmaWVycz4gIDxyaWdodHNMaXN0PiAgICA8cmlnaHRzIHJpZ2h0c1VS
169
+ ST0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3pl
170
+ cm8vMS4wLyIvPiAgPC9yaWdodHNMaXN0PjwvcmVzb3VyY2U+
171
+ http_version:
172
+ recorded_at: Wed, 01 Mar 2017 22:24:44 GMT
173
+ recorded_with: VCR 3.0.3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bolognese
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.8'
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
@@ -529,6 +529,8 @@ files:
529
529
  - spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Funding_schema_version_3.yml
530
530
  - spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Funding_schema_version_4.yml
531
531
  - spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Schema_org_JSON.yml
532
+ - spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Schema_org_JSON_IsSupplementTo.yml
533
+ - spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Schema_org_JSON_isReferencedBy.yml
532
534
  - spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/is_identical_to.yml
533
535
  - spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/multiple_licenses.yml
534
536
  - spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_bibtex/BlogPosting.yml