bolognese 0.9.96 → 0.9.97
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/bolognese/datacite_utils.rb +2 -2
- data/lib/bolognese/metadata.rb +87 -0
- data/lib/bolognese/metadata_utils.rb +17 -102
- data/lib/bolognese/version.rb +1 -1
- data/spec/readers/bibtex_reader_spec.rb +2 -2
- data/spec/readers/citeproc_reader_spec.rb +1 -1
- data/spec/readers/codemeta_reader_spec.rb +3 -3
- data/spec/readers/crosscite_reader_spec.rb +2 -2
- data/spec/readers/crossref_reader_spec.rb +10 -10
- data/spec/readers/datacite_json_reader_spec.rb +1 -1
- data/spec/readers/datacite_reader_spec.rb +25 -25
- data/spec/readers/ris_reader_spec.rb +2 -2
- data/spec/readers/schema_org_reader_spec.rb +7 -7
- data/spec/writers/datacite_writer_spec.rb +4 -4
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4e0934c41291533eceeaf3993f6fa4ea1187f00a803dda629499bcaaac66c927
|
|
4
|
+
data.tar.gz: 3f6c5a43da5797dc333eff72e5e5e6b195ad4d6c7724e3c17d30ea6e5dbc09f1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3b488400d7ac418d56df127c9566f06103cf0ebf5aa4f6ad9465e70ec9d7adb126b486541e9cb840588323d493f1620f4dbcbcab44614da84955430d119a902a
|
|
7
|
+
data.tar.gz: 1276d995665ffde0d217677306404802fae09b219687bf43845be78948a1ad5606bc94a548737dc9b67d9c536f96d063e8cae9f3f02b8f965a195bb41c8e8b0c
|
data/Gemfile.lock
CHANGED
data/lib/bolognese/metadata.rb
CHANGED
|
@@ -1,9 +1,59 @@
|
|
|
1
1
|
require_relative 'metadata_utils'
|
|
2
2
|
|
|
3
|
+
require_relative 'readers/bibtex_reader'
|
|
4
|
+
require_relative 'readers/citeproc_reader'
|
|
5
|
+
require_relative 'readers/codemeta_reader'
|
|
6
|
+
require_relative 'readers/crosscite_reader'
|
|
7
|
+
require_relative 'readers/crossref_reader'
|
|
8
|
+
require_relative 'readers/datacite_json_reader'
|
|
9
|
+
require_relative 'readers/datacite_reader'
|
|
10
|
+
require_relative 'readers/ris_reader'
|
|
11
|
+
require_relative 'readers/schema_org_reader'
|
|
12
|
+
|
|
13
|
+
require_relative 'writers/bibtex_writer'
|
|
14
|
+
require_relative 'writers/citation_writer'
|
|
15
|
+
require_relative 'writers/citeproc_writer'
|
|
16
|
+
require_relative 'writers/codemeta_writer'
|
|
17
|
+
require_relative 'writers/crosscite_writer'
|
|
18
|
+
require_relative 'writers/crossref_writer'
|
|
19
|
+
require_relative 'writers/datacite_writer'
|
|
20
|
+
require_relative 'writers/datacite_json_writer'
|
|
21
|
+
require_relative 'writers/jats_writer'
|
|
22
|
+
require_relative 'writers/rdf_xml_writer'
|
|
23
|
+
require_relative 'writers/ris_writer'
|
|
24
|
+
require_relative 'writers/schema_org_writer'
|
|
25
|
+
require_relative 'writers/turtle_writer'
|
|
26
|
+
|
|
3
27
|
module Bolognese
|
|
4
28
|
class Metadata
|
|
29
|
+
include Bolognese::Readers::BibtexReader
|
|
30
|
+
include Bolognese::Readers::CiteprocReader
|
|
31
|
+
include Bolognese::Readers::CodemetaReader
|
|
32
|
+
include Bolognese::Readers::CrossciteReader
|
|
33
|
+
include Bolognese::Readers::CrossrefReader
|
|
34
|
+
include Bolognese::Readers::DataciteReader
|
|
35
|
+
include Bolognese::Readers::DataciteJsonReader
|
|
36
|
+
include Bolognese::Readers::RisReader
|
|
37
|
+
include Bolognese::Readers::SchemaOrgReader
|
|
38
|
+
|
|
39
|
+
include Bolognese::Writers::BibtexWriter
|
|
40
|
+
include Bolognese::Writers::CitationWriter
|
|
41
|
+
include Bolognese::Writers::CiteprocWriter
|
|
42
|
+
include Bolognese::Writers::CodemetaWriter
|
|
43
|
+
include Bolognese::Writers::CrossciteWriter
|
|
44
|
+
include Bolognese::Writers::CrossrefWriter
|
|
45
|
+
include Bolognese::Writers::DataciteWriter
|
|
46
|
+
include Bolognese::Writers::DataciteJsonWriter
|
|
47
|
+
include Bolognese::Writers::JatsWriter
|
|
48
|
+
include Bolognese::Writers::RdfXmlWriter
|
|
49
|
+
include Bolognese::Writers::RisWriter
|
|
50
|
+
include Bolognese::Writers::SchemaOrgWriter
|
|
51
|
+
include Bolognese::Writers::TurtleWriter
|
|
52
|
+
|
|
5
53
|
include Bolognese::MetadataUtils
|
|
6
54
|
|
|
55
|
+
attr_writer :id, :provider_id, :client_id, :doi, :b_url, :b_version,
|
|
56
|
+
|
|
7
57
|
def initialize(input: nil, from: nil, **options)
|
|
8
58
|
id = normalize_id(input, options)
|
|
9
59
|
|
|
@@ -53,5 +103,42 @@ module Bolognese
|
|
|
53
103
|
@provider_id = hsh.to_h["provider_id"].presence
|
|
54
104
|
@client_id = hsh.to_h["client_id"].presence
|
|
55
105
|
end
|
|
106
|
+
|
|
107
|
+
def id
|
|
108
|
+
@id ||= meta.fetch("id", nil)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def doi
|
|
112
|
+
@doi ||= @identifier.present? ? doi_from_url(@identifier) : meta.fetch("doi", nil)
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def b_url
|
|
116
|
+
@b_url ||= meta.fetch("b_url", nil)
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def b_version
|
|
120
|
+
@b_version ||= meta.fetch("b_version", nil)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def provider_id
|
|
124
|
+
@provider_id ||= meta.fetch("provider_id", nil)
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def client_id
|
|
128
|
+
@client_id ||= meta.fetch("client_id", nil)
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def exists?
|
|
132
|
+
meta.fetch("state", "not_found") != "not_found"
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def valid?
|
|
136
|
+
exists? && errors.nil?
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# validate against DataCite schema, unless there are already errors in the reader
|
|
140
|
+
def errors
|
|
141
|
+
meta.fetch("errors", nil) || datacite_errors(xml: datacite, schema_version: schema_version)
|
|
142
|
+
end
|
|
56
143
|
end
|
|
57
144
|
end
|
|
@@ -3,30 +3,6 @@ require_relative 'author_utils'
|
|
|
3
3
|
require_relative 'datacite_utils'
|
|
4
4
|
require_relative 'utils'
|
|
5
5
|
|
|
6
|
-
require_relative 'readers/bibtex_reader'
|
|
7
|
-
require_relative 'readers/citeproc_reader'
|
|
8
|
-
require_relative 'readers/codemeta_reader'
|
|
9
|
-
require_relative 'readers/crosscite_reader'
|
|
10
|
-
require_relative 'readers/crossref_reader'
|
|
11
|
-
require_relative 'readers/datacite_json_reader'
|
|
12
|
-
require_relative 'readers/datacite_reader'
|
|
13
|
-
require_relative 'readers/ris_reader'
|
|
14
|
-
require_relative 'readers/schema_org_reader'
|
|
15
|
-
|
|
16
|
-
require_relative 'writers/bibtex_writer'
|
|
17
|
-
require_relative 'writers/citation_writer'
|
|
18
|
-
require_relative 'writers/citeproc_writer'
|
|
19
|
-
require_relative 'writers/codemeta_writer'
|
|
20
|
-
require_relative 'writers/crosscite_writer'
|
|
21
|
-
require_relative 'writers/crossref_writer'
|
|
22
|
-
require_relative 'writers/datacite_writer'
|
|
23
|
-
require_relative 'writers/datacite_json_writer'
|
|
24
|
-
require_relative 'writers/jats_writer'
|
|
25
|
-
require_relative 'writers/rdf_xml_writer'
|
|
26
|
-
require_relative 'writers/ris_writer'
|
|
27
|
-
require_relative 'writers/schema_org_writer'
|
|
28
|
-
require_relative 'writers/turtle_writer'
|
|
29
|
-
|
|
30
6
|
module Bolognese
|
|
31
7
|
module MetadataUtils
|
|
32
8
|
# include BenchmarkMethods
|
|
@@ -35,62 +11,25 @@ module Bolognese
|
|
|
35
11
|
include Bolognese::DataciteUtils
|
|
36
12
|
include Bolognese::Utils
|
|
37
13
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
include Bolognese::Writers::DataciteWriter
|
|
55
|
-
include Bolognese::Writers::DataciteJsonWriter
|
|
56
|
-
include Bolognese::Writers::JatsWriter
|
|
57
|
-
include Bolognese::Writers::RdfXmlWriter
|
|
58
|
-
include Bolognese::Writers::RisWriter
|
|
59
|
-
include Bolognese::Writers::SchemaOrgWriter
|
|
60
|
-
include Bolognese::Writers::TurtleWriter
|
|
61
|
-
|
|
62
|
-
attr_accessor :string, :identifier, :from, :author,
|
|
63
|
-
:creator, :title, :publisher, :contributor, :license,
|
|
64
|
-
:date_accepted, :date_available, :date_copyrighted, :date_collected,
|
|
65
|
-
:date_submitted, :date_valid, :date_created, :date_modified, :date_updated, :provider_id, :client_id, :journal,
|
|
66
|
-
:volume, :issue, :first_page, :last_page, :b_doi, :b_url, :b_version, :keywords, :editor,
|
|
67
|
-
:description, :alternate_name, :language, :content_size, :spatial_coverage,
|
|
68
|
-
:schema_version, :has_part, :same_as,
|
|
69
|
-
:is_previous_version_of, :is_new_version_of, :is_cited_by, :cites,
|
|
70
|
-
:is_supplement_to, :is_supplemented_by, :is_continued_by, :continues,
|
|
71
|
-
:has_metadata, :is_metadata_for, :is_referenced_by, :references,
|
|
72
|
-
:is_documented_by, :documents, :is_compiled_by, :compiles,
|
|
73
|
-
:is_variant_form_of, :is_original_form_of, :is_reviewed_by, :reviews,
|
|
74
|
-
:is_derived_from, :is_source_of, :format, :funding, :style, :locale, :state, :regenerate, :sandbox
|
|
14
|
+
attr_accessor :string, :from, :sandbox, :b_doi, :regenerate, :issue, :contributor,
|
|
15
|
+
:spatial_coverage
|
|
16
|
+
|
|
17
|
+
attr_writer :identifier, :author, :title, :publisher, :license,
|
|
18
|
+
:date_accepted, :date_available, :date_copyrighted, :date_collected,
|
|
19
|
+
:date_submitted, :date_valid, :date_created, :date_modified, :date_updated,
|
|
20
|
+
:journal, :volume, :first_page, :last_page,
|
|
21
|
+
:keywords, :editor, :description, :alternate_name, :language, :content_size,
|
|
22
|
+
:schema_version, :has_part, :same_as,
|
|
23
|
+
:is_previous_version_of, :is_new_version_of, :is_cited_by, :cites,
|
|
24
|
+
:is_supplement_to, :is_supplemented_by, :is_continued_by, :continues,
|
|
25
|
+
:has_metadata, :is_metadata_for, :is_referenced_by, :references,
|
|
26
|
+
:is_documented_by, :documents, :is_compiled_by, :compiles,
|
|
27
|
+
:is_variant_form_of, :is_original_form_of, :is_reviewed_by, :reviews,
|
|
28
|
+
:is_derived_from, :is_source_of, :format, :funding, :style, :locale, :state,
|
|
29
|
+
:type, :additional_type, :citeproc_type, :bibtex_type, :ris_type, :meta
|
|
75
30
|
|
|
76
31
|
attr_reader :doc, :service_provider, :page_start, :page_end, :related_identifier, :reverse, :name_detector
|
|
77
32
|
|
|
78
|
-
attr_writer :id, :type, :additional_type, :citeproc_type, :bibtex_type, :doi,
|
|
79
|
-
:ris_type, :meta
|
|
80
|
-
|
|
81
|
-
def exists?
|
|
82
|
-
meta.fetch("state", "not_found") != "not_found"
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def valid?
|
|
86
|
-
exists? && errors.nil?
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
# validate against DataCite schema, unless there are already errors in the reader
|
|
90
|
-
def errors
|
|
91
|
-
meta.fetch("errors", nil) || datacite_errors(xml: datacite, schema_version: schema_version)
|
|
92
|
-
end
|
|
93
|
-
|
|
94
33
|
# replace DOI in XML if provided in options
|
|
95
34
|
def raw
|
|
96
35
|
r = string.present? ? string.strip : nil
|
|
@@ -110,15 +49,11 @@ module Bolognese
|
|
|
110
49
|
# the id might change
|
|
111
50
|
def meta
|
|
112
51
|
m = from.present? ? send("read_" + from, string: string, sandbox: sandbox) : {}
|
|
113
|
-
@
|
|
52
|
+
@identifier = b_doi || m.fetch("id", nil) || m.fetch("identifier", nil)
|
|
114
53
|
|
|
115
54
|
m
|
|
116
55
|
end
|
|
117
56
|
|
|
118
|
-
def id
|
|
119
|
-
@id ||= meta.fetch("id", nil)
|
|
120
|
-
end
|
|
121
|
-
|
|
122
57
|
def type
|
|
123
58
|
@type ||= meta.fetch("type", nil)
|
|
124
59
|
end
|
|
@@ -143,14 +78,6 @@ module Bolognese
|
|
|
143
78
|
@resource_type_general ||= meta.fetch("resource_type_general", nil)
|
|
144
79
|
end
|
|
145
80
|
|
|
146
|
-
def doi
|
|
147
|
-
@doi ||= @id.present? ? doi_from_url(@id) : meta.fetch("doi", nil)
|
|
148
|
-
end
|
|
149
|
-
|
|
150
|
-
def b_url
|
|
151
|
-
@b_url ||= meta.fetch("b_url", nil)
|
|
152
|
-
end
|
|
153
|
-
|
|
154
81
|
def identifier
|
|
155
82
|
@identifier ||= meta.fetch("id", nil)
|
|
156
83
|
end
|
|
@@ -247,10 +174,6 @@ module Bolognese
|
|
|
247
174
|
@license ||= meta.fetch("license", nil)
|
|
248
175
|
end
|
|
249
176
|
|
|
250
|
-
def b_version
|
|
251
|
-
@b_version ||= meta.fetch("b_version", nil)
|
|
252
|
-
end
|
|
253
|
-
|
|
254
177
|
def keywords
|
|
255
178
|
@keywords ||= meta.fetch("keywords", nil)
|
|
256
179
|
end
|
|
@@ -271,14 +194,6 @@ module Bolognese
|
|
|
271
194
|
@funding ||= meta.fetch("funding", nil)
|
|
272
195
|
end
|
|
273
196
|
|
|
274
|
-
def provider_id
|
|
275
|
-
@provider_id ||= meta.fetch("provider_id", nil)
|
|
276
|
-
end
|
|
277
|
-
|
|
278
|
-
def client_id
|
|
279
|
-
@client_id ||= meta.fetch("client_id", nil)
|
|
280
|
-
end
|
|
281
|
-
|
|
282
197
|
def is_identical_to
|
|
283
198
|
meta.fetch("is_identical_to", nil)
|
|
284
199
|
end
|
data/lib/bolognese/version.rb
CHANGED
|
@@ -13,7 +13,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
13
13
|
it "string" do
|
|
14
14
|
Bolognese::Metadata.new(input: IO.read(input).strip)
|
|
15
15
|
expect(subject.valid?).to be true
|
|
16
|
-
expect(subject.
|
|
16
|
+
expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
|
|
@@ -26,7 +26,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
26
26
|
context "get bibtex metadata" do
|
|
27
27
|
it "Crossref DOI" do
|
|
28
28
|
expect(subject.valid?).to be true
|
|
29
|
-
expect(subject.
|
|
29
|
+
expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
|
|
30
30
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
31
31
|
expect(subject.b_url).to eq("http://elifesciences.org/lookup/doi/10.7554/eLife.01567")
|
|
32
32
|
expect(subject.resource_type_general).to eq("Text")
|
|
@@ -14,7 +14,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
14
14
|
context "get citeproc metadata" do
|
|
15
15
|
it "BlogPosting" do
|
|
16
16
|
expect(subject.valid?).to be true
|
|
17
|
-
expect(subject.
|
|
17
|
+
expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
|
|
18
18
|
expect(subject.b_url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
|
|
19
19
|
expect(subject.type).to eq("BlogPosting")
|
|
20
20
|
expect(subject.resource_type_general).to eq("Text")
|
|
@@ -16,7 +16,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
16
16
|
context "get codemeta metadata" do
|
|
17
17
|
it "maremma" do
|
|
18
18
|
expect(subject.valid?).to be true
|
|
19
|
-
expect(subject.
|
|
19
|
+
expect(subject.identifier).to eq("https://doi.org/10.5438/qeg0-3gm3")
|
|
20
20
|
expect(subject.b_url).to eq("https://github.com/datacite/maremma")
|
|
21
21
|
expect(subject.type).to eq("SoftwareSourceCode")
|
|
22
22
|
expect(subject.author).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
|
|
@@ -32,7 +32,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
32
32
|
it "rdataone" do
|
|
33
33
|
input = fixture_path + 'codemeta.json'
|
|
34
34
|
subject = Bolognese::Metadata.new(input: input)
|
|
35
|
-
expect(subject.
|
|
35
|
+
expect(subject.identifier).to eq("https://doi.org/10.5063/f1m61h5x")
|
|
36
36
|
expect(subject.b_url).to eq("https://github.com/DataONEorg/rdataone")
|
|
37
37
|
expect(subject.type).to eq("SoftwareSourceCode")
|
|
38
38
|
expect(subject.author).to eq( [{"type"=>"Person",
|
|
@@ -60,7 +60,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
60
60
|
input = fixture_path + 'maremma/codemeta.json'
|
|
61
61
|
subject = Bolognese::Metadata.new(input: input)
|
|
62
62
|
expect(subject.valid?).to be true
|
|
63
|
-
expect(subject.
|
|
63
|
+
expect(subject.identifier).to eq("https://doi.org/10.5438/qeg0-3gm3")
|
|
64
64
|
expect(subject.b_url).to eq("https://github.com/datacite/maremma")
|
|
65
65
|
expect(subject.type).to eq("SoftwareSourceCode")
|
|
66
66
|
expect(subject.author).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
|
|
@@ -14,7 +14,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
14
14
|
context "get crosscite metadata" do
|
|
15
15
|
it "SoftwareSourceCode" do
|
|
16
16
|
expect(subject.valid?).to be true
|
|
17
|
-
expect(subject.
|
|
17
|
+
expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.48440")
|
|
18
18
|
expect(subject.type).to eq("SoftwareSourceCode")
|
|
19
19
|
expect(subject.resource_type_general).to eq("Software")
|
|
20
20
|
expect(subject.author).to eq("type"=>"Person", "familyName" => "Garza", "givenName" => "Kristian", "name" => "Kristian Garza")
|
|
@@ -27,7 +27,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
27
27
|
input = IO.read(fixture_path + "crosscite.json")
|
|
28
28
|
subject = Bolognese::Metadata.new(input: input)
|
|
29
29
|
expect(subject.valid?).to be true
|
|
30
|
-
expect(subject.
|
|
30
|
+
expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.48440")
|
|
31
31
|
expect(subject.type).to eq("SoftwareSourceCode")
|
|
32
32
|
expect(subject.resource_type_general).to eq("Software")
|
|
33
33
|
expect(subject.author).to eq("type"=>"Person", "familyName" => "Garza", "givenName" => "Kristian", "name" => "Kristian Garza")
|
|
@@ -16,7 +16,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
16
16
|
context "get crossref metadata" do
|
|
17
17
|
it "DOI with data citation" do
|
|
18
18
|
expect(subject.valid?).to be true
|
|
19
|
-
expect(subject.
|
|
19
|
+
expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
|
|
20
20
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
21
21
|
expect(subject.b_url).to eq("https://elifesciences.org/articles/01567")
|
|
22
22
|
expect(subject.additional_type).to eq("JournalArticle")
|
|
@@ -49,7 +49,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
49
49
|
input = "https://doi.org/10.1371/journal.pone.0000030"
|
|
50
50
|
subject = Bolognese::Metadata.new(input: input)
|
|
51
51
|
expect(subject.valid?).to be true
|
|
52
|
-
expect(subject.
|
|
52
|
+
expect(subject.identifier).to eq(input)
|
|
53
53
|
expect(subject.b_url).to eq("http://dx.plos.org/10.1371/journal.pone.0000030")
|
|
54
54
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
55
55
|
expect(subject.additional_type).to eq("JournalArticle")
|
|
@@ -72,7 +72,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
72
72
|
input = "https://doi.org/10.1101/097196"
|
|
73
73
|
subject = Bolognese::Metadata.new(input: input)
|
|
74
74
|
expect(subject.valid?).to be true
|
|
75
|
-
expect(subject.
|
|
75
|
+
expect(subject.identifier).to eq(input)
|
|
76
76
|
expect(subject.b_url).to eq("http://biorxiv.org/lookup/doi/10.1101/097196")
|
|
77
77
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
78
78
|
expect(subject.additional_type).to eq("PostedContent")
|
|
@@ -93,7 +93,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
93
93
|
input = "https://doi.org/10.1890/0012-9658(2006)87[2832:tiopma]2.0.co;2"
|
|
94
94
|
subject = Bolognese::Metadata.new(input: input)
|
|
95
95
|
expect(subject.valid?).to be true
|
|
96
|
-
expect(subject.
|
|
96
|
+
expect(subject.identifier).to eq("https://doi.org/10.1890/0012-9658(2006)87%5B2832:tiopma%5D2.0.co;2")
|
|
97
97
|
expect(subject.b_url).to eq("http://doi.wiley.com/10.1890/0012-9658(2006)87[2832:TIOPMA]2.0.CO;2")
|
|
98
98
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
99
99
|
expect(subject.additional_type).to eq("JournalArticle")
|
|
@@ -114,7 +114,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
114
114
|
input = "https://doi.org/10.1155/2012/291294"
|
|
115
115
|
subject = Bolognese::Metadata.new(input: input)
|
|
116
116
|
expect(subject.valid?).to be true
|
|
117
|
-
expect(subject.
|
|
117
|
+
expect(subject.identifier).to eq("https://doi.org/10.1155/2012/291294")
|
|
118
118
|
expect(subject.b_url).to eq("http://www.hindawi.com/journals/pm/2012/291294/")
|
|
119
119
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
120
120
|
expect(subject.additional_type).to eq("JournalArticle")
|
|
@@ -136,7 +136,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
136
136
|
input = "https://doi.org/10.1016/j.ejphar.2015.03.018"
|
|
137
137
|
subject = Bolognese::Metadata.new(input: input)
|
|
138
138
|
expect(subject.valid?).to be true
|
|
139
|
-
expect(subject.
|
|
139
|
+
expect(subject.identifier).to eq(input)
|
|
140
140
|
expect(subject.b_url).to eq("http://linkinghub.elsevier.com/retrieve/pii/S0014299915002332")
|
|
141
141
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
142
142
|
expect(subject.additional_type).to eq("JournalArticle")
|
|
@@ -155,7 +155,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
155
155
|
input = "10.2210/pdb4hhb/pdb"
|
|
156
156
|
subject = Bolognese::Metadata.new(input: input)
|
|
157
157
|
expect(subject.valid?).to be true
|
|
158
|
-
expect(subject.
|
|
158
|
+
expect(subject.identifier).to eq("https://doi.org/10.2210/pdb4hhb/pdb")
|
|
159
159
|
expect(subject.b_url).to eq("ftp://ftp.wwpdb.org/pub/pdb/data/structures/divided/pdb/hh/pdb4hhb.ent.gz")
|
|
160
160
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
161
161
|
expect(subject.additional_type).to eq("SaComponent")
|
|
@@ -175,7 +175,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
175
175
|
input = "https://doi.org/10.1007/978-3-662-46370-3_13"
|
|
176
176
|
subject = Bolognese::Metadata.new(input: input)
|
|
177
177
|
expect(subject.valid?).to be true
|
|
178
|
-
expect(subject.
|
|
178
|
+
expect(subject.identifier).to eq("https://doi.org/10.1007/978-3-662-46370-3_13")
|
|
179
179
|
expect(subject.b_url).to eq("http://link.springer.com/10.1007/978-3-662-46370-3_13")
|
|
180
180
|
expect(subject.type).to eq("Chapter")
|
|
181
181
|
expect(subject.additional_type).to eq("BookChapter")
|
|
@@ -193,7 +193,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
193
193
|
input = "https://doi.org/10.1111/nph.14619"
|
|
194
194
|
subject = Bolognese::Metadata.new(input: input)
|
|
195
195
|
expect(subject.valid?).to be true
|
|
196
|
-
expect(subject.
|
|
196
|
+
expect(subject.identifier).to eq(input)
|
|
197
197
|
expect(subject.b_url).to eq("http://doi.wiley.com/10.1111/nph.14619")
|
|
198
198
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
199
199
|
expect(subject.additional_type).to eq("JournalArticle")
|
|
@@ -213,7 +213,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
213
213
|
input = "https://doi.org/10.7554/elife.01567x"
|
|
214
214
|
subject = Bolognese::Metadata.new(input: input)
|
|
215
215
|
expect(subject.valid?).to be false
|
|
216
|
-
expect(subject.
|
|
216
|
+
expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567x")
|
|
217
217
|
expect(subject.doi).to eq("10.7554/elife.01567x")
|
|
218
218
|
expect(subject.service_provider).to eq("Crossref")
|
|
219
219
|
expect(subject.state).to eq("not_found")
|
|
@@ -14,7 +14,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
14
14
|
context "get datacite_json metadata" do
|
|
15
15
|
it "BlogPosting" do
|
|
16
16
|
expect(subject.valid?).to be true
|
|
17
|
-
expect(subject.
|
|
17
|
+
expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
|
|
18
18
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
19
19
|
expect(subject.additional_type).to eq("BlogPosting")
|
|
20
20
|
expect(subject.resource_type_general).to eq("Text")
|
|
@@ -16,7 +16,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
16
16
|
context "get datacite metadata" do
|
|
17
17
|
it "Dataset" do
|
|
18
18
|
expect(subject.valid?).to be true
|
|
19
|
-
expect(subject.
|
|
19
|
+
expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
|
|
20
20
|
expect(subject.b_url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
|
|
21
21
|
expect(subject.type).to eq("Dataset")
|
|
22
22
|
expect(subject.additional_type).to eq("DataPackage")
|
|
@@ -38,7 +38,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
38
38
|
input = "https://doi.org/10.5438/4K3M-NYVG"
|
|
39
39
|
subject = Bolognese::Metadata.new(input: input)
|
|
40
40
|
expect(subject.valid?).to be true
|
|
41
|
-
expect(subject.
|
|
41
|
+
expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
|
|
42
42
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
43
43
|
expect(subject.additional_type).to eq("BlogPosting")
|
|
44
44
|
expect(subject.resource_type_general).to eq("Text")
|
|
@@ -59,7 +59,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
59
59
|
input = "https://doi.org/10.4230/lipics.tqc.2013.93"
|
|
60
60
|
subject = Bolognese::Metadata.new(input: input)
|
|
61
61
|
expect(subject.valid?).to be true
|
|
62
|
-
expect(subject.
|
|
62
|
+
expect(subject.identifier).to eq("https://doi.org/10.4230/lipics.tqc.2013.93")
|
|
63
63
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
64
64
|
expect(subject.additional_type).to eq("ConferencePaper")
|
|
65
65
|
expect(subject.resource_type_general).to eq("Text")
|
|
@@ -76,7 +76,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
76
76
|
input = "https://doi.org/10.5281/ZENODO.48440"
|
|
77
77
|
subject = Bolognese::Metadata.new(input: input)
|
|
78
78
|
expect(subject.valid?).to be true
|
|
79
|
-
expect(subject.
|
|
79
|
+
expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.48440")
|
|
80
80
|
expect(subject.type).to eq("SoftwareSourceCode")
|
|
81
81
|
expect(subject.resource_type_general).to eq("Software")
|
|
82
82
|
expect(subject.author).to eq("type"=>"Person", "name"=>"Kristian Garza", "givenName"=>"Kristian", "familyName"=>"Garza")
|
|
@@ -94,7 +94,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
94
94
|
input = "10.6084/M9.FIGSHARE.4234751.V1"
|
|
95
95
|
subject = Bolognese::Metadata.new(input: input)
|
|
96
96
|
expect(subject.valid?).to be true
|
|
97
|
-
expect(subject.
|
|
97
|
+
expect(subject.identifier).to eq("https://doi.org/10.6084/m9.figshare.4234751.v1")
|
|
98
98
|
expect(subject.type).to eq("Dataset")
|
|
99
99
|
expect(subject.additional_type).to eq("Dataset")
|
|
100
100
|
expect(subject.resource_type_general).to eq("Dataset")
|
|
@@ -114,7 +114,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
114
114
|
input = "https://doi.org/10.5281/ZENODO.1239"
|
|
115
115
|
subject = Bolognese::Metadata.new(input: input)
|
|
116
116
|
expect(subject.valid?).to be true
|
|
117
|
-
expect(subject.
|
|
117
|
+
expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.1239")
|
|
118
118
|
expect(subject.type).to eq("Dataset")
|
|
119
119
|
expect(subject.resource_type_general).to eq("Dataset")
|
|
120
120
|
expect(subject.author.length).to eq(4)
|
|
@@ -132,7 +132,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
132
132
|
input = "https://doi.org/10.14457/KMITL.RES.2006.17"
|
|
133
133
|
subject = Bolognese::Metadata.new(input: input)
|
|
134
134
|
expect(subject.valid?).to be true
|
|
135
|
-
expect(subject.
|
|
135
|
+
expect(subject.identifier).to eq("https://doi.org/10.14457/kmitl.res.2006.17")
|
|
136
136
|
expect(subject.type).to eq("Dataset")
|
|
137
137
|
expect(subject.author.length).to eq(1)
|
|
138
138
|
expect(subject.author.first).to eq(["name", "กัญจนา แซ่เตียว"])
|
|
@@ -142,7 +142,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
142
142
|
input = "https://doi.org/10.7910/DVN/EQTQYO"
|
|
143
143
|
subject = Bolognese::Metadata.new(input: input)
|
|
144
144
|
expect(subject.valid?).to be true
|
|
145
|
-
expect(subject.
|
|
145
|
+
expect(subject.identifier).to eq("https://doi.org/10.7910/dvn/eqtqyo")
|
|
146
146
|
expect(subject.type).to eq("Dataset")
|
|
147
147
|
expect(subject.author).to eq("name" => "Enos, Ryan (Harvard University); Fowler, Anthony (University Of Chicago); Vavreck, Lynn (UCLA)")
|
|
148
148
|
end
|
|
@@ -151,7 +151,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
151
151
|
input = "https://doi.org/10.18429/JACOW-IPAC2016-TUPMY003"
|
|
152
152
|
subject = Bolognese::Metadata.new(input: input)
|
|
153
153
|
expect(subject.valid?).to be true
|
|
154
|
-
expect(subject.
|
|
154
|
+
expect(subject.identifier).to eq("https://doi.org/10.18429/jacow-ipac2016-tupmy003")
|
|
155
155
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
156
156
|
expect(subject.author.length).to eq(12)
|
|
157
157
|
expect(subject.author.first).to eq("type"=>"Person", "id"=>"http://jacow.org/JACoW-00077389", "name"=>"Masashi Otani", "givenName"=>"Masashi", "familyName"=>"Otani")
|
|
@@ -161,7 +161,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
161
161
|
input = "https://doi.org/10.2314/COSCV1"
|
|
162
162
|
subject = Bolognese::Metadata.new(input: input)
|
|
163
163
|
expect(subject.valid?).to be true
|
|
164
|
-
expect(subject.
|
|
164
|
+
expect(subject.identifier).to eq("https://doi.org/10.2314/coscv1")
|
|
165
165
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
166
166
|
expect(subject.author.length).to eq(14)
|
|
167
167
|
expect(subject.author.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-0232-7085", "name"=>"Lambert Heller", "givenName"=>"Lambert", "familyName"=>"Heller")
|
|
@@ -171,7 +171,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
171
171
|
input = "https://doi.org/10.21233/n34n5q"
|
|
172
172
|
subject = Bolognese::Metadata.new(input: input)
|
|
173
173
|
expect(subject.valid?).to be true
|
|
174
|
-
expect(subject.
|
|
174
|
+
expect(subject.identifier).to eq("https://doi.org/10.21233/n34n5q")
|
|
175
175
|
expect(subject.keywords).to eq([{"subject_scheme"=>"Library of Congress", "scheme_uri"=>"http://id.loc.gov/authorities/subjects", "text"=>"Paleoecology"}])
|
|
176
176
|
end
|
|
177
177
|
|
|
@@ -179,7 +179,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
179
179
|
input = "https://doi.org/10.15125/BATH-00114"
|
|
180
180
|
subject = Bolognese::Metadata.new(input: input)
|
|
181
181
|
expect(subject.valid?).to be true
|
|
182
|
-
expect(subject.
|
|
182
|
+
expect(subject.identifier).to eq("https://doi.org/10.15125/bath-00114")
|
|
183
183
|
expect(subject.type).to eq("Dataset")
|
|
184
184
|
expect(subject.additional_type).to eq("Dataset")
|
|
185
185
|
expect(subject.resource_type_general).to eq("Dataset")
|
|
@@ -199,7 +199,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
199
199
|
input = "https://doi.org/10.5438/6423"
|
|
200
200
|
subject = Bolognese::Metadata.new(input: input)
|
|
201
201
|
expect(subject.valid?).to be true
|
|
202
|
-
expect(subject.
|
|
202
|
+
expect(subject.identifier).to eq("https://doi.org/10.5438/6423")
|
|
203
203
|
expect(subject.type).to eq("Collection")
|
|
204
204
|
expect(subject.additional_type).to eq("Project")
|
|
205
205
|
expect(subject.resource_type_general).to eq("Collection")
|
|
@@ -222,7 +222,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
222
222
|
input = fixture_path + "datacite.xml"
|
|
223
223
|
subject = Bolognese::Metadata.new(input: input)
|
|
224
224
|
expect(subject.valid?).to be true
|
|
225
|
-
expect(subject.
|
|
225
|
+
expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
|
|
226
226
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
227
227
|
expect(subject.additional_type).to eq("BlogPosting")
|
|
228
228
|
expect(subject.resource_type_general).to eq("Text")
|
|
@@ -240,7 +240,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
240
240
|
input = fixture_path + "datacite-example-complicated-v4.1.xml"
|
|
241
241
|
subject = Bolognese::Metadata.new(input: input)
|
|
242
242
|
expect(subject.valid?).to be true
|
|
243
|
-
expect(subject.
|
|
243
|
+
expect(subject.identifier).to eq("https://doi.org/10.5072/testpub")
|
|
244
244
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
245
245
|
expect(subject.additional_type).to eq("Monograph")
|
|
246
246
|
expect(subject.resource_type_general).to eq("Text")
|
|
@@ -259,7 +259,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
259
259
|
input = fixture_path + "datacite-example-complicated-v4.1.xml"
|
|
260
260
|
subject = Bolognese::Metadata.new(input: input, doi: "10.5072/testpub2")
|
|
261
261
|
expect(subject.valid?).to be true
|
|
262
|
-
expect(subject.
|
|
262
|
+
expect(subject.identifier).to eq("https://doi.org/10.5072/testpub2")
|
|
263
263
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
264
264
|
expect(subject.additional_type).to eq("Monograph")
|
|
265
265
|
expect(subject.resource_type_general).to eq("Text")
|
|
@@ -278,7 +278,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
278
278
|
input = "https://doi.org/10.4232/1.2745"
|
|
279
279
|
subject = Bolognese::Metadata.new(input: input)
|
|
280
280
|
expect(subject.valid?).to be true
|
|
281
|
-
expect(subject.
|
|
281
|
+
expect(subject.identifier).to eq("https://doi.org/10.4232/1.2745")
|
|
282
282
|
expect(subject.type).to eq("Dataset")
|
|
283
283
|
expect(subject.resource_type_general).to eq("Dataset")
|
|
284
284
|
expect(subject.author).to eq("name"=>"Europäische Kommission")
|
|
@@ -294,7 +294,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
294
294
|
input = "https://doi.org/10.18169/PAPDEOTTX00502"
|
|
295
295
|
subject = Bolognese::Metadata.new(input: input)
|
|
296
296
|
expect(subject.valid?).to be true
|
|
297
|
-
expect(subject.
|
|
297
|
+
expect(subject.identifier).to eq("https://doi.org/10.18169/papdeottx00502")
|
|
298
298
|
expect(subject.type).to eq("Dataset")
|
|
299
299
|
expect(subject.additional_type).to eq("Disclosure")
|
|
300
300
|
expect(subject.resource_type_general).to eq("Dataset")
|
|
@@ -310,7 +310,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
310
310
|
input = "https://doi.org/10.21944/temis-OZONE-MSR2"
|
|
311
311
|
subject = Bolognese::Metadata.new(input: input)
|
|
312
312
|
expect(subject.valid?).to be true
|
|
313
|
-
expect(subject.
|
|
313
|
+
expect(subject.identifier).to eq("https://doi.org/10.21944/temis-ozone-msr2")
|
|
314
314
|
expect(subject.type).to eq("Dataset")
|
|
315
315
|
expect(subject.additional_type).to eq("Satellite data")
|
|
316
316
|
expect(subject.resource_type_general).to eq("Dataset")
|
|
@@ -340,7 +340,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
340
340
|
input = "https://doi.org/10.4124/05F6C379-DD68-4CDB-880D-33D3E9576D52/1"
|
|
341
341
|
subject = Bolognese::Metadata.new(input: input)
|
|
342
342
|
expect(subject.valid?).to be false
|
|
343
|
-
expect(subject.
|
|
343
|
+
expect(subject.identifier).to eq("https://doi.org/10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
|
|
344
344
|
expect(subject.doi).to eq("10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
|
|
345
345
|
expect(subject.service_provider).to eq("DataCite")
|
|
346
346
|
expect(subject.state).to eq("not_found")
|
|
@@ -350,7 +350,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
350
350
|
input = "https://handle.test.datacite.org/10.22002/d1.694"
|
|
351
351
|
subject = Bolognese::Metadata.new(input: input, sandbox: true)
|
|
352
352
|
expect(subject.valid?).to be true
|
|
353
|
-
expect(subject.
|
|
353
|
+
expect(subject.identifier).to eq("https://handle.test.datacite.org/10.22002/d1.694")
|
|
354
354
|
expect(subject.type).to eq("Dataset")
|
|
355
355
|
expect(subject.resource_type_general).to eq("Dataset")
|
|
356
356
|
expect(subject.author).to eq("name"=>"Tester")
|
|
@@ -367,7 +367,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
367
367
|
input = "10.21956/gatesopenres.530.r190"
|
|
368
368
|
subject = Bolognese::Metadata.new(input: input, sandbox: true)
|
|
369
369
|
expect(subject.valid?).to be true
|
|
370
|
-
expect(subject.
|
|
370
|
+
expect(subject.identifier).to eq("https://handle.test.datacite.org/10.21956/gatesopenres.530.r190")
|
|
371
371
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
372
372
|
expect(subject.resource_type_general).to eq("Text")
|
|
373
373
|
expect(subject.author.length).to eq(5)
|
|
@@ -392,7 +392,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
392
392
|
it "change title" do
|
|
393
393
|
subject.title = "A new malaria agent in African hominids."
|
|
394
394
|
expect(subject.valid?).to be true
|
|
395
|
-
expect(subject.
|
|
395
|
+
expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
|
|
396
396
|
expect(subject.doi).to eq("10.5061/dryad.8515")
|
|
397
397
|
expect(subject.b_url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
|
|
398
398
|
expect(subject.type).to eq("Dataset")
|
|
@@ -402,7 +402,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
402
402
|
it "change state" do
|
|
403
403
|
subject.state = "registered"
|
|
404
404
|
expect(subject.valid?).to be true
|
|
405
|
-
expect(subject.
|
|
405
|
+
expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
|
|
406
406
|
expect(subject.doi).to eq("10.5061/dryad.8515")
|
|
407
407
|
expect(subject.b_url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
|
|
408
408
|
expect(subject.type).to eq("Dataset")
|
|
@@ -417,7 +417,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
417
417
|
doi = "10.5061/dryad.8515"
|
|
418
418
|
subject = Bolognese::Metadata.new(input: input, doi: doi)
|
|
419
419
|
expect(subject.valid?).to be true
|
|
420
|
-
expect(subject.
|
|
420
|
+
expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
|
|
421
421
|
expect(subject.doi).to eq("10.5061/dryad.8515")
|
|
422
422
|
expect(subject.author).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
|
|
423
423
|
expect(subject.title).to eq("Eating your own Dog Food")
|
|
@@ -13,7 +13,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
13
13
|
it "string" do
|
|
14
14
|
Bolognese::Metadata.new(input: IO.read(input).strip)
|
|
15
15
|
expect(subject.valid?).to be true
|
|
16
|
-
expect(subject.
|
|
16
|
+
expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
|
|
@@ -26,7 +26,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
26
26
|
context "get ris metadata" do
|
|
27
27
|
it "Crossref DOI" do
|
|
28
28
|
expect(subject.valid?).to be true
|
|
29
|
-
expect(subject.
|
|
29
|
+
expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
|
|
30
30
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
31
31
|
expect(subject.b_url).to eq("http://elifesciences.org/lookup/doi/10.7554/eLife.01567")
|
|
32
32
|
expect(subject.resource_type_general).to eq("Text")
|
|
@@ -17,7 +17,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
17
17
|
context "get schema_org metadata" do
|
|
18
18
|
it "BlogPosting" do
|
|
19
19
|
expect(subject.valid?).to be true
|
|
20
|
-
expect(subject.
|
|
20
|
+
expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
|
|
21
21
|
expect(subject.b_url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
|
|
22
22
|
expect(subject.type).to eq("BlogPosting")
|
|
23
23
|
expect(subject.author).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
|
|
@@ -35,7 +35,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
35
35
|
it "BlogPosting with new DOI" do
|
|
36
36
|
subject = Bolognese::Metadata.new(input: input, doi: "10.5438/0000-00ss")
|
|
37
37
|
expect(subject.valid?).to be true
|
|
38
|
-
expect(subject.
|
|
38
|
+
expect(subject.identifier).to eq("https://doi.org/10.5438/0000-00ss")
|
|
39
39
|
expect(subject.doi).to eq("10.5438/0000-00ss")
|
|
40
40
|
expect(subject.b_url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
|
|
41
41
|
expect(subject.type).to eq("BlogPosting")
|
|
@@ -46,7 +46,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
46
46
|
subject = Bolognese::Metadata.new(input: input, from: "schema_org")
|
|
47
47
|
expect(subject.errors.size).to eq(2)
|
|
48
48
|
expect(subject.errors.first).to eq("43:0: ERROR: Element '{http://datacite.org/schema/kernel-4}publisher': [facet 'minLength'] The value has a length of '0'; this underruns the allowed minimum length of '1'.")
|
|
49
|
-
expect(subject.
|
|
49
|
+
expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.1196821")
|
|
50
50
|
expect(subject.doi).to eq("10.5281/zenodo.1196821")
|
|
51
51
|
expect(subject.b_url).to eq("https://zenodo.org/record/1196821")
|
|
52
52
|
expect(subject.type).to eq("Dataset")
|
|
@@ -59,7 +59,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
59
59
|
input = "https://doi.pangaea.de/10.1594/PANGAEA.836178"
|
|
60
60
|
subject = Bolognese::Metadata.new(input: input, from: "schema_org")
|
|
61
61
|
expect(subject.valid?).to be true
|
|
62
|
-
expect(subject.
|
|
62
|
+
expect(subject.identifier).to eq("https://doi.org/10.1594/pangaea.836178")
|
|
63
63
|
expect(subject.doi).to eq("10.1594/pangaea.836178")
|
|
64
64
|
expect(subject.b_url).to eq("https://doi.pangaea.de/10.1594/PANGAEA.836178")
|
|
65
65
|
expect(subject.type).to eq("Dataset")
|
|
@@ -73,7 +73,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
73
73
|
subject = Bolognese::Metadata.new(input: input, from: "schema_org")
|
|
74
74
|
subject.id = "https://doi.org/10.3334/ornldaac/1418"
|
|
75
75
|
expect(subject.valid?).to be true
|
|
76
|
-
expect(subject.
|
|
76
|
+
expect(subject.identifier).to eq("https://doi.org/10.3334/ornldaac/1418")
|
|
77
77
|
expect(subject.doi).to eq("10.3334/ornldaac/1418")
|
|
78
78
|
expect(subject.b_url).to eq("https://doi.org/10.3334/ornldaac/1418")
|
|
79
79
|
expect(subject.type).to eq("DataSet")
|
|
@@ -86,7 +86,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
86
86
|
input = "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/GAOC03"
|
|
87
87
|
subject = Bolognese::Metadata.new(input: input, from: "schema_org")
|
|
88
88
|
expect(subject.valid?).to be true
|
|
89
|
-
expect(subject.
|
|
89
|
+
expect(subject.identifier).to eq("https://doi.org/10.7910/dvn/gaoc03")
|
|
90
90
|
expect(subject.doi).to eq("10.7910/dvn/gaoc03")
|
|
91
91
|
expect(subject.type).to eq("Dataset")
|
|
92
92
|
expect(subject.title).to eq("The National Labor Force : SAKERNAS, 2008")
|
|
@@ -100,7 +100,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
100
100
|
input = fixture_path + 'schema_org.json'
|
|
101
101
|
subject = Bolognese::Metadata.new(input: input)
|
|
102
102
|
|
|
103
|
-
expect(subject.
|
|
103
|
+
expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
|
|
104
104
|
expect(subject.b_url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
|
|
105
105
|
expect(subject.type).to eq("BlogPosting")
|
|
106
106
|
expect(subject.author).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
|
|
@@ -98,7 +98,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
98
98
|
input = "https://doi.org/10.23640/07243.5153971"
|
|
99
99
|
subject = Bolognese::Metadata.new(input: input, from: "datacite")
|
|
100
100
|
expect(subject.valid?).to be true
|
|
101
|
-
expect(subject.
|
|
101
|
+
expect(subject.identifier).to eq("https://doi.org/10.23640/07243.5153971")
|
|
102
102
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
103
103
|
expect(subject.additional_type).to eq("Paper")
|
|
104
104
|
expect(subject.resource_type_general).to eq("Text")
|
|
@@ -117,7 +117,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
117
117
|
input = "https://doi.org/10.23640/07243.5153971"
|
|
118
118
|
subject = Bolognese::Metadata.new(input: input, from: "datacite", doi: "10.5072/07243.5153971")
|
|
119
119
|
expect(subject.valid?).to be true
|
|
120
|
-
expect(subject.
|
|
120
|
+
expect(subject.identifier).to eq("https://doi.org/10.5072/07243.5153971")
|
|
121
121
|
expect(subject.type).to eq("ScholarlyArticle")
|
|
122
122
|
expect(subject.additional_type).to eq("Paper")
|
|
123
123
|
expect(subject.resource_type_general).to eq("Text")
|
|
@@ -136,7 +136,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
136
136
|
input = "https://doi.org/10.5061/DRYAD.8515"
|
|
137
137
|
subject = Bolognese::Metadata.new(input: input, from: "datacite", regenerate: true)
|
|
138
138
|
expect(subject.valid?).to be true
|
|
139
|
-
expect(subject.
|
|
139
|
+
expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
|
|
140
140
|
expect(subject.type).to eq("Dataset")
|
|
141
141
|
expect(subject.additional_type).to eq("DataPackage")
|
|
142
142
|
expect(subject.resource_type_general).to eq("Dataset")
|
|
@@ -171,7 +171,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
171
171
|
input = "https://doi.org/10.4124/05F6C379-DD68-4CDB-880D-33D3E9576D52/1"
|
|
172
172
|
subject = Bolognese::Metadata.new(input: input, from: "datacite")
|
|
173
173
|
expect(subject.valid?).to be false
|
|
174
|
-
expect(subject.
|
|
174
|
+
expect(subject.identifier).to eq("https://doi.org/10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
|
|
175
175
|
expect(subject.doi).to eq("10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
|
|
176
176
|
expect(subject.service_provider).to eq("DataCite")
|
|
177
177
|
expect(subject.state).to eq("not_found")
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bolognese
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.9.
|
|
4
|
+
version: 0.9.97
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Martin Fenner
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-05-
|
|
11
|
+
date: 2018-05-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: maremma
|