bolognese 0.8.5 → 0.8.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +10 -9
  3. data/README.md +15 -1
  4. data/lib/bolognese.rb +2 -0
  5. data/lib/bolognese/bibtex.rb +57 -1
  6. data/lib/bolognese/citeproc.rb +116 -0
  7. data/lib/bolognese/codemeta.rb +9 -1
  8. data/lib/bolognese/crossref.rb +20 -0
  9. data/lib/bolognese/datacite.rb +9 -1
  10. data/lib/bolognese/datacite_json.rb +9 -1
  11. data/lib/bolognese/datacite_utils.rb +1 -1
  12. data/lib/bolognese/metadata.rb +185 -1
  13. data/lib/bolognese/ris.rb +117 -0
  14. data/lib/bolognese/schema_org.rb +8 -0
  15. data/lib/bolognese/utils.rb +84 -17
  16. data/lib/bolognese/version.rb +1 -1
  17. data/resources/kernel-3/metadata.xsd +3 -3
  18. data/spec/bibtex_spec.rb +34 -0
  19. data/spec/citeproc_spec.rb +48 -0
  20. data/spec/codemeta_spec.rb +33 -3
  21. data/spec/crossref_spec.rb +80 -2
  22. data/spec/datacite_json_spec.rb +28 -12
  23. data/spec/datacite_spec.rb +72 -0
  24. data/spec/datacite_utils_spec.rb +1 -1
  25. data/spec/fixtures/citeproc.json +21 -0
  26. data/spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata_as_citeproc/maremma.yml +100 -0
  27. data/spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata_as_ris/BlogPosting.yml +100 -0
  28. data/spec/fixtures/vcr_cassettes/Bolognese_Codemeta/get_metadata_as_ris/maremma.yml +100 -0
  29. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_citeproc/journal_article.yml +723 -0
  30. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_citeproc/with_pages.yml +370 -0
  31. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_ris/journal_article.yml +723 -0
  32. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_ris/with_pages.yml +370 -0
  33. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Citeproc_JSON.yml +173 -0
  34. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_citeproc/BlogPosting.yml +155 -0
  35. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_citeproc/Dataset.yml +173 -0
  36. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_ris/BlogPosting.yml +155 -0
  37. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_ris/Dataset.yml +173 -0
  38. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/read/datacite.yml +173 -0
  39. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write/datacite_to_bibtex.yml +173 -0
  40. data/spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata_as_citeproc/BlogPosting.yml +653 -0
  41. data/spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata_as_ris/BlogPosting.yml +653 -0
  42. data/spec/schema_org_spec.rb +30 -0
  43. data/spec/utils_spec.rb +50 -0
  44. metadata +22 -2
@@ -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.5
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-03-12 00:00:00.000000000 Z
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