bolognese 0.8.5 → 0.8.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +10 -9
- data/README.md +15 -1
- data/lib/bolognese.rb +2 -0
- data/lib/bolognese/bibtex.rb +57 -1
- data/lib/bolognese/citeproc.rb +116 -0
- data/lib/bolognese/codemeta.rb +9 -1
- data/lib/bolognese/crossref.rb +20 -0
- data/lib/bolognese/datacite.rb +9 -1
- data/lib/bolognese/datacite_json.rb +9 -1
- data/lib/bolognese/datacite_utils.rb +1 -1
- data/lib/bolognese/metadata.rb +185 -1
- data/lib/bolognese/ris.rb +117 -0
- data/lib/bolognese/schema_org.rb +8 -0
- data/lib/bolognese/utils.rb +84 -17
- data/lib/bolognese/version.rb +1 -1
- data/resources/kernel-3/metadata.xsd +3 -3
- data/spec/bibtex_spec.rb +34 -0
- data/spec/citeproc_spec.rb +48 -0
- data/spec/codemeta_spec.rb +33 -3
- data/spec/crossref_spec.rb +80 -2
- data/spec/datacite_json_spec.rb +28 -12
- data/spec/datacite_spec.rb +72 -0
- data/spec/datacite_utils_spec.rb +1 -1
- data/spec/fixtures/citeproc.json +21 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata_as_citeproc/maremma.yml +100 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata_as_ris/BlogPosting.yml +100 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata_as_ris/maremma.yml +100 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_citeproc/journal_article.yml +723 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_citeproc/with_pages.yml +370 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_ris/journal_article.yml +723 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_ris/with_pages.yml +370 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Citeproc_JSON.yml +173 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_citeproc/BlogPosting.yml +155 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_citeproc/Dataset.yml +173 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_ris/BlogPosting.yml +155 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_ris/Dataset.yml +173 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/read/datacite.yml +173 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write/datacite_to_bibtex.yml +173 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata_as_citeproc/BlogPosting.yml +653 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata_as_ris/BlogPosting.yml +653 -0
- data/spec/schema_org_spec.rb +30 -0
- data/spec/utils_spec.rb +50 -0
- metadata +22 -2
data/spec/schema_org_spec.rb
CHANGED
@@ -93,4 +93,34 @@ describe Bolognese::SchemaOrg, vcr: true do
|
|
93
93
|
expect(bibtex[:year]).to eq("2016")
|
94
94
|
end
|
95
95
|
end
|
96
|
+
|
97
|
+
context "get metadata as citeproc" do
|
98
|
+
it "BlogPosting" do
|
99
|
+
json = JSON.parse(subject.citeproc)
|
100
|
+
expect(json["type"]).to eq("post-weblog")
|
101
|
+
expect(json["id"]).to eq("https://doi.org/10.5438/4k3m-nyvg")
|
102
|
+
expect(json["DOI"]).to eq("10.5438/4k3m-nyvg")
|
103
|
+
expect(json["title"]).to eq("Eating your own Dog Food")
|
104
|
+
expect(json["author"]).to eq("family" => "Fenner","given" => "Martin")
|
105
|
+
expect(json["publisher"]).to eq("DataCite")
|
106
|
+
expect(json["issued"]).to eq("date-parts" => [[2016, 12, 20]])
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
context "get metadata as ris" do
|
111
|
+
it "BlogPosting" do
|
112
|
+
ris = subject.ris.split("\r\n")
|
113
|
+
expect(ris[0]).to eq("TY - GEN")
|
114
|
+
expect(ris[1]).to eq("T1 - Eating your own Dog Food")
|
115
|
+
expect(ris[2]).to eq("T2 - DataCite")
|
116
|
+
expect(ris[3]).to eq("AU - Fenner, Martin")
|
117
|
+
expect(ris[4]).to eq("DO - 10.5438/4k3m-nyvg")
|
118
|
+
expect(ris[5]).to eq("UR - https://blog.datacite.org/eating-your-own-dog-food")
|
119
|
+
expect(ris[6]).to eq("AB - Eating your own dog food is a slang term to describe that an organization should itself use the products and services it provides. For DataCite this means that we should use DOIs with appropriate metadata and strategies for long-term preservation for...")
|
120
|
+
expect(ris[7]).to eq("KW - datacite")
|
121
|
+
expect(ris[11]).to eq("PY - 2016")
|
122
|
+
expect(ris[12]).to eq("PB - DataCite")
|
123
|
+
expect(ris[13]).to eq("ER - ")
|
124
|
+
end
|
125
|
+
end
|
96
126
|
end
|
data/spec/utils_spec.rb
CHANGED
@@ -137,4 +137,54 @@ describe Bolognese::Metadata, vcr: true do
|
|
137
137
|
expect(content).to eq("In 1998 Tim Berners-Lee coined the term <a href=\"https://www.w3.org/Provider/Style/URI\">cool URIs</a>")
|
138
138
|
end
|
139
139
|
end
|
140
|
+
|
141
|
+
context "read" do
|
142
|
+
let(:id) { "https://doi.org/10.5061/DRYAD.8515" }
|
143
|
+
let(:from) { "datacite" }
|
144
|
+
|
145
|
+
it "datacite" do
|
146
|
+
response = subject.read(id: id, from: from)
|
147
|
+
expect(response.id).to eq("https://doi.org/10.5061/dryad.8515")
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
context "get_date_parts" do
|
152
|
+
it "date" do
|
153
|
+
date = "2016-12-20"
|
154
|
+
response = subject.get_date_parts(date)
|
155
|
+
expect(response).to eq("date-parts"=>[[2016, 12, 20]])
|
156
|
+
end
|
157
|
+
|
158
|
+
it "year-month" do
|
159
|
+
date = "2016-12"
|
160
|
+
response = subject.get_date_parts(date)
|
161
|
+
expect(response).to eq("date-parts"=>[[2016, 12]])
|
162
|
+
end
|
163
|
+
|
164
|
+
it "year" do
|
165
|
+
date = "2016"
|
166
|
+
response = subject.get_date_parts(date)
|
167
|
+
expect(response).to eq("date-parts"=>[[2016]])
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
context "get_date_from_date_parts" do
|
172
|
+
it "date" do
|
173
|
+
date_as_parts = { "date-parts"=>[[2016, 12, 20]] }
|
174
|
+
response = subject.get_date_from_date_parts(date_as_parts)
|
175
|
+
expect(response).to eq("2016-12-20")
|
176
|
+
end
|
177
|
+
|
178
|
+
it "year-month" do
|
179
|
+
date_as_parts = { "date-parts"=>[[2016, 12]] }
|
180
|
+
response = subject.get_date_from_date_parts(date_as_parts)
|
181
|
+
expect(response).to eq("2016-12")
|
182
|
+
end
|
183
|
+
|
184
|
+
it "year" do
|
185
|
+
date_as_parts = { "date-parts"=>[[2016]] }
|
186
|
+
response = subject.get_date_from_date_parts(date_as_parts)
|
187
|
+
expect(response).to eq("2016")
|
188
|
+
end
|
189
|
+
end
|
140
190
|
end
|
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.8.
|
4
|
+
version: 0.8.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Fenner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: maremma
|
@@ -347,6 +347,7 @@ files:
|
|
347
347
|
- lib/bolognese/array.rb
|
348
348
|
- lib/bolognese/author_utils.rb
|
349
349
|
- lib/bolognese/bibtex.rb
|
350
|
+
- lib/bolognese/citeproc.rb
|
350
351
|
- lib/bolognese/cli.rb
|
351
352
|
- lib/bolognese/codemeta.rb
|
352
353
|
- lib/bolognese/crossref.rb
|
@@ -358,6 +359,7 @@ files:
|
|
358
359
|
- lib/bolognese/metadata.rb
|
359
360
|
- lib/bolognese/orcid.rb
|
360
361
|
- lib/bolognese/pubmed.rb
|
362
|
+
- lib/bolognese/ris.rb
|
361
363
|
- lib/bolognese/schema_org.rb
|
362
364
|
- lib/bolognese/string.rb
|
363
365
|
- lib/bolognese/utils.rb
|
@@ -406,6 +408,7 @@ files:
|
|
406
408
|
- spec/array_spec.rb
|
407
409
|
- spec/author_utils_spec.rb
|
408
410
|
- spec/bibtex_spec.rb
|
411
|
+
- spec/citeproc_spec.rb
|
409
412
|
- spec/cli_spec.rb
|
410
413
|
- spec/codemeta_spec.rb
|
411
414
|
- spec/crossref_spec.rb
|
@@ -413,6 +416,7 @@ files:
|
|
413
416
|
- spec/datacite_spec.rb
|
414
417
|
- spec/datacite_utils_spec.rb
|
415
418
|
- spec/doi_utils_spec.rb
|
419
|
+
- spec/fixtures/citeproc.json
|
416
420
|
- spec/fixtures/codemeta.json
|
417
421
|
- spec/fixtures/crossref.bib
|
418
422
|
- spec/fixtures/crossref.xml
|
@@ -442,7 +446,10 @@ files:
|
|
442
446
|
- spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata/no_codemeta_json.yml
|
443
447
|
- spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata/not_found_error.yml
|
444
448
|
- spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata_as_bibtex/maremma.yml
|
449
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata_as_citeproc/maremma.yml
|
445
450
|
- spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata_as_datacite_xml/maremma.yml
|
451
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata_as_ris/BlogPosting.yml
|
452
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata_as_ris/maremma.yml
|
446
453
|
- spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata_as_schema_org_JSON/maremma.yml
|
447
454
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/author_from_schema_org/with_id.yml
|
448
455
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/author_to_schema_org/with_id.yml
|
@@ -461,11 +468,15 @@ files:
|
|
461
468
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/posted_content.yml
|
462
469
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_bibtex/with_data_citation.yml
|
463
470
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_bibtex/with_pages.yml
|
471
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_citeproc/journal_article.yml
|
472
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_citeproc/with_pages.yml
|
464
473
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_datacite_xml/DOI_with_ORCID_ID.yml
|
465
474
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_datacite_xml/DOI_with_data_citation.yml
|
466
475
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_datacite_xml/with_ORCID_ID.yml
|
467
476
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_datacite_xml/with_data_citation.yml
|
468
477
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_datacite_xml/with_editor.yml
|
478
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_ris/journal_article.yml
|
479
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_ris/with_pages.yml
|
469
480
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_string/DOI_with_data_citation.yml
|
470
481
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_name_identifier/has_ORCID.yml
|
471
482
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_name_identifier/has_no_ORCID.yml
|
@@ -515,6 +526,7 @@ files:
|
|
515
526
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/validate_url/URL.yml
|
516
527
|
- spec/fixtures/vcr_cassettes/Bolognese_Crossref/validate_url/string.yml
|
517
528
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/BlogPosting.yml
|
529
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Citeproc_JSON.yml
|
518
530
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Dataset.yml
|
519
531
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Date.yml
|
520
532
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Funding_schema_version_3.yml
|
@@ -526,9 +538,13 @@ files:
|
|
526
538
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/multiple_licenses.yml
|
527
539
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_bibtex/BlogPosting.yml
|
528
540
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_bibtex/Dataset.yml
|
541
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_citeproc/BlogPosting.yml
|
542
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_citeproc/Dataset.yml
|
529
543
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_codemeta/SoftwareSourceCode.yml
|
530
544
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_datacite_xml_4_0/Dataset.yml
|
531
545
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_datacite_xml_4_0/Funding.yml
|
546
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_ris/BlogPosting.yml
|
547
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_ris/Dataset.yml
|
532
548
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_string/Dataset.yml
|
533
549
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_alternate_identifiers/insert.yml
|
534
550
|
- spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_contributors/none.yml
|
@@ -566,11 +582,15 @@ files:
|
|
566
582
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml
|
567
583
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/datacite.yml
|
568
584
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/datacite_doi_http.yml
|
585
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/read/datacite.yml
|
586
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/write/datacite_to_bibtex.yml
|
569
587
|
- spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata/BlogPosting.yml
|
570
588
|
- spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata/BlogPosting_schema_org_JSON.yml
|
571
589
|
- spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata/not_found_error.yml
|
572
590
|
- spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata_as_bibtex/with_data_citation.yml
|
591
|
+
- spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata_as_citeproc/BlogPosting.yml
|
573
592
|
- spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata_as_datacite_xml/with_data_citation.yml
|
593
|
+
- spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata_as_ris/BlogPosting.yml
|
574
594
|
- spec/metadata_spec.rb
|
575
595
|
- spec/orcid_spec.rb
|
576
596
|
- spec/schema_org_spec.rb
|