bolognese 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/bolognese/datacite_utils.rb +8 -9
  4. data/lib/bolognese/metadata.rb +7 -44
  5. data/lib/bolognese/metadata_utils.rb +2 -2
  6. data/lib/bolognese/readers/bibtex_reader.rb +18 -7
  7. data/lib/bolognese/readers/citeproc_reader.rb +26 -11
  8. data/lib/bolognese/readers/codemeta_reader.rb +17 -16
  9. data/lib/bolognese/readers/crossref_reader.rb +23 -15
  10. data/lib/bolognese/readers/datacite_json_reader.rb +19 -11
  11. data/lib/bolognese/readers/datacite_reader.rb +15 -15
  12. data/lib/bolognese/readers/ris_reader.rb +14 -8
  13. data/lib/bolognese/readers/schema_org_reader.rb +17 -11
  14. data/lib/bolognese/utils.rb +22 -5
  15. data/lib/bolognese/version.rb +1 -1
  16. data/lib/bolognese/writers/bibtex_writer.rb +1 -1
  17. data/lib/bolognese/writers/codemeta_writer.rb +3 -3
  18. data/lib/bolognese/writers/crosscite_writer.rb +3 -10
  19. data/lib/bolognese/writers/datacite_json_writer.rb +5 -8
  20. data/lib/bolognese/writers/jats_writer.rb +3 -3
  21. data/lib/bolognese/writers/ris_writer.rb +1 -1
  22. data/lib/bolognese/writers/schema_org_writer.rb +7 -7
  23. data/spec/datacite_utils_spec.rb +8 -7
  24. data/spec/fixtures/crosscite.json +13 -8
  25. data/spec/fixtures/datacite.json +8 -4
  26. data/spec/fixtures/datacite_software.json +0 -1
  27. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date/publication_date.yml +37 -0
  28. data/spec/readers/bibtex_reader_spec.rb +6 -10
  29. data/spec/readers/citeproc_reader_spec.rb +3 -3
  30. data/spec/readers/codemeta_reader_spec.rb +12 -16
  31. data/spec/readers/crosscite_reader_spec.rb +9 -8
  32. data/spec/readers/crossref_reader_spec.rb +27 -63
  33. data/spec/readers/datacite_json_reader_spec.rb +3 -4
  34. data/spec/readers/datacite_reader_spec.rb +156 -142
  35. data/spec/readers/ris_reader_spec.rb +6 -7
  36. data/spec/readers/schema_org_reader_spec.rb +26 -25
  37. data/spec/utils_spec.rb +8 -0
  38. data/spec/writers/bibtex_writer_spec.rb +1 -1
  39. data/spec/writers/citeproc_writer_spec.rb +1 -1
  40. data/spec/writers/crosscite_writer_spec.rb +6 -5
  41. data/spec/writers/datacite_writer_spec.rb +14 -17
  42. metadata +3 -2
@@ -29,9 +29,8 @@ describe Bolognese::Metadata, vcr: true do
29
29
  it "Crossref DOI" do
30
30
  expect(subject.valid?).to be true
31
31
  expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
32
- expect(subject.type).to eq("ScholarlyArticle")
32
+ expect(subject.types).to eq("citeproc"=>"misc", "resource_type_general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
33
33
  expect(subject.url).to eq("http://elifesciences.org/lookup/doi/10.7554/eLife.01567")
34
- expect(subject.resource_type_general).to eq("Text")
35
34
  expect(subject.creator.length).to eq(5)
36
35
  expect(subject.creator.first).to eq("type"=>"Person",
37
36
  "name"=>"Martial Sankar",
@@ -39,7 +38,8 @@ describe Bolognese::Metadata, vcr: true do
39
38
  "familyName"=>"Sankar")
40
39
  expect(subject.title).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
41
40
  expect(subject.description["text"]).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
42
- expect(subject.date_published).to eq("2014")
41
+ expect(subject.dates).to eq([{"date"=>"2014", "date_type"=>"Issued"}])
42
+ expect(subject.publication_year).to eq("2014")
43
43
  expect(subject.related_identifiers).to eq([{"id"=>"2050084X", "related_identifier_type"=>"ISSN", "relation_type"=>"IsPartOf", "title"=>"eLife", "type"=>"Periodical"}])
44
44
  expect(subject.periodical).to eq("id"=>"2050084X", "title"=>"eLife", "type"=>"Periodical")
45
45
  end
@@ -51,13 +51,12 @@ describe Bolognese::Metadata, vcr: true do
51
51
  expect(subject.valid?).to be false
52
52
  expect(subject.state).to eq("not_found")
53
53
  expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
54
- expect(subject.ris_type).to eq("THES")
55
- expect(subject.type).to eq("Thesis")
56
- expect(subject.resource_type_general).to eq("Text")
54
+ expect(subject.types).to eq("citeproc"=>"misc", "resource_type_general"=>"Text", "ris"=>"THES", "type"=>"Thesis")
57
55
  expect(subject.creator).to eq("type"=>"Person", "name"=>"Y. Toparlar", "givenName"=>"Y.", "familyName"=>"Toparlar")
58
56
  expect(subject.title).to eq("A multiscale analysis of the urban heat island effect")
59
57
  expect(subject.description["text"]).to start_with("Designing the climates of cities")
60
- expect(subject.date_published).to eq("2018-04-25")
58
+ expect(subject.dates).to eq([{"date"=>"2018-04-25", "date_type"=>"Issued"}, {"date"=>"2018-04-25", "date_type"=>"Created"}])
59
+ expect(subject.publication_year).to eq("2018")
61
60
  end
62
61
  end
63
62
  end
@@ -21,13 +21,13 @@ describe Bolognese::Metadata, vcr: true do
21
21
  expect(subject.valid?).to be true
22
22
  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
23
23
  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
24
- expect(subject.type).to eq("BlogPosting")
24
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource_type_general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
25
25
  expect(subject.creator).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
26
26
  expect(subject.title).to eq("Eating your own Dog Food")
27
27
  expect(subject.description["text"]).to start_with("Eating your own dog food")
28
28
  expect(subject.keywords).to eq(["datacite", "doi", "metadata", "featured"])
29
- expect(subject.date_published).to eq("2016-12-20")
30
- expect(subject.date_modified).to eq("2016-12-20")
29
+ expect(subject.dates).to eq([{"date"=>"2016-12-20", "date_type"=>"Issued"}, {"date"=>"2016-12-20", "date_type"=>"Created"}, {"date"=>"2016-12-20", "date_type"=>"Updated"}])
30
+ expect(subject.publication_year).to eq("2016")
31
31
  expect(subject.related_identifiers.length).to eq(3)
32
32
  expect(subject.related_identifiers.last).to eq("id"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
33
33
  expect(subject.publisher).to eq("DataCite")
@@ -39,7 +39,7 @@ describe Bolognese::Metadata, vcr: true do
39
39
  expect(subject.identifier).to eq("https://doi.org/10.5438/0000-00ss")
40
40
  expect(subject.doi).to eq("10.5438/0000-00ss")
41
41
  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
42
- expect(subject.type).to eq("BlogPosting")
42
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource_type_general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
43
43
  end
44
44
 
45
45
  it "zenodo" do
@@ -50,7 +50,7 @@ describe Bolognese::Metadata, vcr: true do
50
50
  expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.1196821")
51
51
  expect(subject.doi).to eq("10.5281/zenodo.1196821")
52
52
  expect(subject.url).to eq("https://zenodo.org/record/1196821")
53
- expect(subject.type).to eq("Dataset")
53
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
54
54
  expect(subject.title).to eq("PsPM-SC4B: SCR, ECG, EMG, PSR and respiration measurements in a delay fear conditioning task with auditory CS and electrical US")
55
55
  expect(subject.creator.size).to eq(6)
56
56
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0001-9688-838X", "name"=>"Matthias Staib", "givenName"=>"Matthias", "familyName"=>"Staib")
@@ -63,7 +63,7 @@ describe Bolognese::Metadata, vcr: true do
63
63
  expect(subject.identifier).to eq("https://doi.org/10.1594/pangaea.836178")
64
64
  expect(subject.doi).to eq("10.1594/pangaea.836178")
65
65
  expect(subject.url).to eq("https://doi.pangaea.de/10.1594/PANGAEA.836178")
66
- expect(subject.type).to eq("Dataset")
66
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
67
67
  expect(subject.title).to eq("Hydrological and meteorological investigations in a lake near Kangerlussuaq, west Greenland")
68
68
  expect(subject.creator.size).to eq(8)
69
69
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Johansson, Emma", "givenName"=>"Emma", "familyName"=>"Johansson")
@@ -90,7 +90,7 @@ describe Bolognese::Metadata, vcr: true do
90
90
  expect(subject.valid?).to be true
91
91
  expect(subject.identifier).to eq("https://doi.org/10.7910/dvn/nj7xso")
92
92
  expect(subject.doi).to eq("10.7910/dvn/nj7xso")
93
- expect(subject.type).to eq("Dataset")
93
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
94
94
  expect(subject.title).to eq("Summary data ankylosing spondylitis GWAS")
95
95
  expect(subject.periodical).to eq("title"=>"Harvard Dataverse", "type"=>"DataCatalog", "url"=>"https://dataverse.harvard.edu")
96
96
  expect(subject.creator).to eq("name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)")
@@ -103,7 +103,7 @@ describe Bolognese::Metadata, vcr: true do
103
103
  expect(subject.valid?).to be true
104
104
  expect(subject.identifier).to eq("https://doi.org/10.7910/dvn/nj7xso")
105
105
  expect(subject.doi).to eq("10.7910/dvn/nj7xso")
106
- expect(subject.type).to eq("Dataset")
106
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
107
107
  expect(subject.title).to eq("Summary data ankylosing spondylitis GWAS")
108
108
  expect(subject.periodical).to eq("title"=>"Harvard Dataverse", "type"=>"DataCatalog", "url"=>"https://dataverse.harvard.edu")
109
109
  expect(subject.creator).to eq("name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)")
@@ -117,13 +117,13 @@ describe Bolognese::Metadata, vcr: true do
117
117
  expect(subject.valid?).to be true
118
118
  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
119
119
  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
120
- expect(subject.type).to eq("BlogPosting")
120
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource_type_general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
121
121
  expect(subject.creator).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
122
122
  expect(subject.title).to eq("Eating your own Dog Food")
123
123
  expect(subject.description["text"]).to start_with("Eating your own dog food")
124
124
  expect(subject.keywords).to eq(["datacite", "doi", "metadata", "featured"])
125
- expect(subject.date_published).to eq("2016-12-20")
126
- expect(subject.date_modified).to eq("2016-12-20")
125
+ expect(subject.dates).to eq([{"date"=>"2016-12-20", "date_type"=>"Issued"}, {"date"=>"2016-12-20", "date_type"=>"Created"}, {"date"=>"2016-12-20", "date_type"=>"Updated"}])
126
+ expect(subject.publication_year).to eq("2016")
127
127
  expect(subject.related_identifiers.length).to eq(3)
128
128
  expect(subject.related_identifiers.last).to eq("id"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
129
129
  expect(subject.publisher).to eq("DataCite")
@@ -138,13 +138,13 @@ describe Bolognese::Metadata, vcr: true do
138
138
  expect(subject.alternate_identifiers).to eq("name"=>"687610993", "type"=>"md5")
139
139
  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.25491/d50j-3083")
140
140
  expect(subject.content_url).to eq("https://storage.googleapis.com/gtex_analysis_v7/single_tissue_eqtl_data/GTEx_Analysis_v7_eQTL_expression_matrices.tar.gz")
141
- expect(subject.type).to eq("Dataset")
142
- expect(subject.additional_type).to eq("Gene expression matrices")
141
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"Gene expression matrices", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
143
142
  expect(subject.creator).to eq("name"=>"The GTEx Consortium", "type"=>"Organization")
144
143
  expect(subject.title).to eq("Fully processed, filtered and normalized gene expression matrices (in BED format) for each tissue, which were used as input into FastQTL for eQTL discovery")
145
144
  expect(subject.version).to eq("v7")
146
145
  expect(subject.keywords).to eq(["gtex", "annotation", "phenotype", "gene regulation", "transcriptomics"])
147
- expect(subject.date_published).to eq("2017")
146
+ expect(subject.dates).to eq([{"date"=>"2017", "date_type"=>"Issued"}])
147
+ expect(subject.publication_year).to eq("2017")
148
148
  expect(subject.periodical).to eq("title"=>"GTEx", "type"=>"DataCatalog")
149
149
  expect(subject.publisher).to eq("GTEx")
150
150
  expect(subject.funding_references.length).to eq(7)
@@ -160,12 +160,12 @@ describe Bolognese::Metadata, vcr: true do
160
160
  expect(subject.alternate_identifiers).to eq([{"name"=>"3b33f6b9338fccab0901b7d317577ea3", "type"=>"md5"}, {"name"=>"ark:/99999/fk41CrU4eszeLUDe", "type"=>"minid"}, {"name"=>"dg.4503/c3d66dc9-58da-411c-83c4-dd656aa3c4b7", "type"=>"dataguid"}])
161
161
  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.23725/8na3-9s47")
162
162
  expect(subject.content_url).to eq(["s3://cgp-commons-public/topmed_open_access/197bc047-e917-55ed-852d-d563cdbc50e4/NWD165827.recab.cram", "gs://topmed-irc-share/public/NWD165827.recab.cram"])
163
- expect(subject.type).to eq("Dataset")
164
- expect(subject.additional_type).to eq("CRAM file")
163
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"CRAM file", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
165
164
  expect(subject.creator).to eq("name"=>"TOPMed IRC", "type"=>"Organization")
166
165
  expect(subject.title).to eq("NWD165827.recab.cram")
167
166
  expect(subject.keywords).to eq(["topmed", "whole genome sequencing"])
168
- expect(subject.date_published).to eq("2017-11-30")
167
+ expect(subject.dates).to eq([{"date"=>"2017-11-30", "date_type"=>"Issued"}])
168
+ expect(subject.publication_year).to eq("2017")
169
169
  expect(subject.publisher).to eq("TOPMed")
170
170
  expect(subject.related_identifiers).to eq([{"id"=>"10.23725/2g4s-qv04", "related_identifier_type"=>"DOI", "relation_type"=>"References", "resource_type_general"=>"Dataset"}])
171
171
  expect(subject.funding_references).to eq([{"funder_identifier"=>"https://doi.org/10.13039/100000050", "funder_identifier_type"=>"Crossref Funder ID", "funder_name"=>"National Heart, Lung, and Blood Institute (NHLBI)"}])
@@ -177,13 +177,13 @@ describe Bolognese::Metadata, vcr: true do
177
177
 
178
178
  expect(subject.valid?).to be true
179
179
  expect(subject.identifier).to eq("https://doi.org/10.6071/z7wc73")
180
- expect(subject.type).to eq("Dataset")
181
- expect(subject.additional_type).to eq("dataset")
180
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
182
181
  expect(subject.creator.length).to eq(6)
183
182
  expect(subject.creator.first).to eq("familyName"=>"Bales", "givenName"=>"Roger", "name"=>"Roger Bales", "type"=>"Person")
184
183
  expect(subject.title).to eq("Southern Sierra Critical Zone Observatory (SSCZO), Providence Creek meteorological data, soil moisture and temperature, snow depth and air temperature")
185
184
  expect(subject.keywords).to eq(["Earth sciences", "soil moisture", "soil temperature", "snow depth", "air temperature", "water balance", "Nevada", "Sierra (mountain range)"])
186
- expect(subject.date_published).to eq("2013")
185
+ expect(subject.dates).to eq([{"date"=>"2013", "date_type"=>"Issued"}, {"date"=>"2014-10-17", "date_type"=>"Updated"}])
186
+ expect(subject.publication_year).to eq("2013")
187
187
  expect(subject.publisher).to eq("UC Merced")
188
188
  expect(subject.funding_references).to eq([{"funder_name"=>"National Science Foundation, Division of Earth Sciences, Critical Zone Observatories"}])
189
189
  expect(subject.geo_location).to eq([{"geo_location_place"=>"Providence Creek (Lower, Upper and P301)", "geo_location_point"=>{"point_latitude"=>"37.047756", "point_longitude"=>"-119.221094"}}])
@@ -195,11 +195,12 @@ describe Bolognese::Metadata, vcr: true do
195
195
 
196
196
  expect(subject.valid?).to be true
197
197
  expect(subject.identifier).to eq("https://doi.org/10.1594/pangaea.842237")
198
- expect(subject.type).to eq("Dataset")
198
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
199
199
  expect(subject.creator.length).to eq(2)
200
200
  expect(subject.creator.first).to eq("name"=>"Tara Oceans Consortium, Coordinators", "type"=>"Organization")
201
201
  expect(subject.title).to eq("Registry of all stations from the Tara Oceans Expedition (2009-2013)")
202
- expect(subject.date_published).to eq("2015-02-03")
202
+ expect(subject.dates).to eq([{"date"=>"2015-02-03", "date_type"=>"Issued"}])
203
+ expect(subject.publication_year).to eq("2015")
203
204
  expect(subject.publisher).to eq("PANGAEA")
204
205
  expect(subject.geo_location).to eq([{"geo_location_box"=>{"east_bound_longitude"=>"174.9006", "north_bound_latitude"=>"79.6753", "south_bound_latitude"=>"-64.3088", "west_bound_longitude"=>"-168.5182"}}])
205
206
  end
@@ -213,12 +214,12 @@ describe Bolognese::Metadata, vcr: true do
213
214
  expect(subject.alternate_identifiers).to eq([{"name"=>"ark:/99999/fk4E1n6n1YHKxPk", "type"=>"minid"}, {"name"=>"dg.4503/01b048d0-e128-4cb0-94e9-b2d2cab7563d", "type"=>"dataguid"}, {"name"=>"f9e72bdf25bf4b4f0e581d9218fec2eb", "type"=>"md5"}])
214
215
  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.23725/7jg3-v803")
215
216
  expect(subject.content_url).to eq(["s3://cgp-commons-public/topmed_open_access/44a8837b-4456-5709-b56b-54e23000f13a/NWD100953.recab.cram","gs://topmed-irc-share/public/NWD100953.recab.cram","dos://dos.commons.ucsc-cgp.org/01b048d0-e128-4cb0-94e9-b2d2cab7563d?version=2018-05-26T133719.491772Z"])
216
- expect(subject.type).to eq("Dataset")
217
- expect(subject.additional_type).to eq("CRAM file")
217
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"CRAM file", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
218
218
  expect(subject.creator).to eq("name"=>"TOPMed", "type"=>"Organization")
219
219
  expect(subject.title).to eq("NWD100953.recab.cram")
220
220
  expect(subject.keywords).to eq(["topmed", "whole genome sequencing"])
221
- expect(subject.date_published).to eq("2017-11-30")
221
+ expect(subject.dates).to eq([{"date"=>"2017-11-30", "date_type"=>"Issued"}])
222
+ expect(subject.publication_year).to eq("2017")
222
223
  expect(subject.publisher).to eq("TOPMed")
223
224
  expect(subject.funding_references).to eq([{"funder_identifier"=>"https://doi.org/10.13039/100000050", "funder_identifier_type"=>"Crossref Funder ID", "funder_name"=>"National Heart, Lung, and Blood Institute (NHLBI)"}])
224
225
  end
data/spec/utils_spec.rb CHANGED
@@ -324,6 +324,14 @@ describe Bolognese::Metadata, vcr: true do
324
324
  end
325
325
  end
326
326
 
327
+ context "get_date" do
328
+ it "publication date" do
329
+ dates = [{ "date"=>"2016-12-20", "date_type" => "Issued" }]
330
+ response = subject.get_date(dates, "Issued")
331
+ expect(response).to eq("2016-12-20")
332
+ end
333
+ end
334
+
327
335
  context "github" do
328
336
  it "github_from_url" do
329
337
  url = "https://github.com/datacite/bolognese"
@@ -76,7 +76,7 @@ describe Bolognese::Metadata, vcr: true do
76
76
  input = fixture_path + "datacite.json"
77
77
  subject = Bolognese::Metadata.new(input: input, from: "datacite_json")
78
78
  bibtex = BibTeX.parse(subject.bibtex).to_a(quotes: '').first
79
- expect(bibtex[:bibtex_type].to_s).to eq("article")
79
+ expect(bibtex[:bibtex_type].to_s).to eq("misc")
80
80
  expect(bibtex[:bibtex_key]).to eq("https://doi.org/10.5438/4k3m-nyvg")
81
81
  expect(bibtex[:doi]).to eq("10.5438/4k3m-nyvg")
82
82
  expect(bibtex[:title]).to eq("Eating your own Dog Food")
@@ -44,7 +44,7 @@ describe Bolognese::Metadata, vcr: true do
44
44
  input = fixture_path + "datacite.json"
45
45
  subject = Bolognese::Metadata.new(input: input, from: "datacite_json")
46
46
  json = JSON.parse(subject.citeproc)
47
- expect(json["type"]).to eq("report")
47
+ expect(json["type"]).to eq("article")
48
48
  expect(json["id"]).to eq("https://doi.org/10.5438/4k3m-nyvg")
49
49
  expect(json["DOI"]).to eq("10.5438/4k3m-nyvg")
50
50
  expect(json["title"]).to eq("Eating your own Dog Food")
@@ -9,7 +9,7 @@ describe Bolognese::Metadata, vcr: true do
9
9
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
10
10
  crosscite = JSON.parse(subject.crosscite)
11
11
  expect(crosscite.fetch("url")).to eq("https://elifesciences.org/articles/01567")
12
- expect(crosscite.fetch("resource_type_general")).to eq("Text")
12
+ expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"JournalArticle", "resource_type_general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
13
13
  expect(crosscite.fetch("title")).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
14
14
  expect(crosscite.fetch("related_identifiers").length).to eq(27)
15
15
  expect(crosscite.fetch("related_identifiers").first).to eq("id"=>"2050-084X", "related_identifier_type"=>"ISSN", "relation_type"=>"IsPartOf", "title"=>"eLife", "type"=>"Periodical")
@@ -24,7 +24,7 @@ describe Bolognese::Metadata, vcr: true do
24
24
  input = "https://doi.org/10.1155/2012/291294"
25
25
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
26
26
  crosscite = JSON.parse(subject.crosscite)
27
- expect(crosscite.fetch("resource_type_general")).to eq("Text")
27
+ expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"JournalArticle", "resource_type_general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
28
28
  expect(crosscite.fetch("creator").count).to eq(7)
29
29
  expect(crosscite.fetch("creator")[2]).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-2043-4925", "name"=>"Beatriz Hernandez", "givenName"=>"Beatriz", "familyName"=>"Hernandez")
30
30
  end
@@ -40,7 +40,7 @@ describe Bolognese::Metadata, vcr: true do
40
40
  input = fixture_path + "crossref.bib"
41
41
  subject = Bolognese::Metadata.new(input: input, from: "bibtex")
42
42
  crosscite = JSON.parse(subject.crosscite)
43
- expect(crosscite.fetch("resource_type_general")).to eq("Text")
43
+ expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"JournalArticle", "resource_type_general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
44
44
  expect(crosscite.fetch("title")).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
45
45
  expect(crosscite.dig("description", "text")).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
46
46
  expect(crosscite.fetch("creator").count).to eq(5)
@@ -52,7 +52,7 @@ describe Bolognese::Metadata, vcr: true do
52
52
  subject = Bolognese::Metadata.new(input: input, from: "citeproc")
53
53
  expect(subject.valid?).to be true
54
54
  crosscite = JSON.parse(subject.crosscite)
55
- expect(crosscite["resource_type_general"]).to eq("Text")
55
+ expect(crosscite["types"]).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource_type_general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
56
56
  expect(crosscite.fetch("title")).to eq("Eating your own Dog Food")
57
57
  expect(crosscite.dig("description", "text")).to start_with("Eating your own dog food")
58
58
  expect(crosscite.fetch("creator")).to eq("type"=>"Person", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
@@ -76,7 +76,8 @@ describe Bolognese::Metadata, vcr: true do
76
76
  expect(crosscite.fetch("title")).to eq("Data from: A new malaria agent in African hominids.")
77
77
  expect(crosscite.fetch("creator").length).to eq(8)
78
78
  expect(crosscite.fetch("creator").first).to eq("type"=>"Person", "familyName" => "Ollomo", "givenName" => "Benjamin", "name" => "Benjamin Ollomo")
79
- expect(crosscite.fetch("date_published")).to eq("2011")
79
+ expect(crosscite.fetch("dates")).to eq([{"date"=>"2011", "date_type"=>"Issued"}])
80
+ expect(crosscite.fetch("publication_year")).to eq("2011")
80
81
  expect(crosscite.fetch("provider_id")).to eq("DRYAD")
81
82
  expect(crosscite.fetch("client_id")).to eq("DRYAD.DRYAD")
82
83
  end
@@ -103,14 +103,13 @@ describe Bolognese::Metadata, vcr: true do
103
103
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
104
104
  expect(subject.valid?).to be true
105
105
  expect(subject.identifier).to eq("https://doi.org/10.23640/07243.5153971")
106
- expect(subject.type).to eq("ScholarlyArticle")
107
- expect(subject.additional_type).to eq("Paper")
108
- expect(subject.resource_type_general).to eq("Text")
106
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"Paper", "resource_type_general"=>"Text", "ris"=>"RPRT", "type"=>"ScholarlyArticle")
109
107
  expect(subject.creator.length).to eq(20)
110
108
  expect(subject.creator.first).to eq("type"=>"Person", "familyName" => "Paglione", "givenName" => "Laura", "id" => "https://orcid.org/0000-0003-3188-6273", "name" => "Laura Paglione")
111
109
  expect(subject.title).to eq("Recommendation of: ORCID Works Metadata Working Group")
112
110
  expect(subject.rights).to eq("id"=>"https://creativecommons.org/publicdomain/zero/1.0", "name"=>"CC-0")
113
- expect(subject.date_published).to eq("2017")
111
+ expect(subject.dates).to eq([{"date"=>"2017-06-28", "date_type"=>"Created"}, {"date"=>"2017-06-28", "date_type"=>"Updated"}, {"date"=>"2017", "date_type"=>"Issued"}])
112
+ expect(subject.publication_year).to eq("2017")
114
113
  expect(subject.publisher).to eq("Figshare")
115
114
  expect(subject.service_provider).to eq("DataCite")
116
115
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
@@ -122,14 +121,13 @@ describe Bolognese::Metadata, vcr: true do
122
121
  subject = Bolognese::Metadata.new(input: input, from: "datacite", doi: "10.5072/07243.5153971")
123
122
  expect(subject.valid?).to be true
124
123
  expect(subject.identifier).to eq("https://doi.org/10.5072/07243.5153971")
125
- expect(subject.type).to eq("ScholarlyArticle")
126
- expect(subject.additional_type).to eq("Paper")
127
- expect(subject.resource_type_general).to eq("Text")
124
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"Paper", "resource_type_general"=>"Text", "ris"=>"RPRT", "type"=>"ScholarlyArticle")
128
125
  expect(subject.creator.length).to eq(20)
129
126
  expect(subject.creator.first).to eq("type"=>"Person", "familyName" => "Paglione", "givenName" => "Laura", "id" => "https://orcid.org/0000-0003-3188-6273", "name" => "Laura Paglione")
130
127
  expect(subject.title).to eq("Recommendation of: ORCID Works Metadata Working Group")
131
128
  expect(subject.rights).to eq("id"=>"https://creativecommons.org/publicdomain/zero/1.0", "name"=>"CC-0")
132
- expect(subject.date_published).to eq("2017")
129
+ expect(subject.dates).to eq([{"date"=>"2017-06-28", "date_type"=>"Created"}, {"date"=>"2017-06-28", "date_type"=>"Updated"}, {"date"=>"2017", "date_type"=>"Issued"}])
130
+ expect(subject.publication_year).to eq("2017")
133
131
  expect(subject.publisher).to eq("Figshare")
134
132
  expect(subject.service_provider).to eq("DataCite")
135
133
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
@@ -141,15 +139,14 @@ describe Bolognese::Metadata, vcr: true do
141
139
  subject = Bolognese::Metadata.new(input: input, from: "datacite", regenerate: true)
142
140
  expect(subject.valid?).to be true
143
141
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
144
- expect(subject.type).to eq("Dataset")
145
- expect(subject.additional_type).to eq("DataPackage")
146
- expect(subject.resource_type_general).to eq("Dataset")
142
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"DataPackage", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
147
143
  expect(subject.creator.length).to eq(8)
148
144
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Benjamin Ollomo", "givenName"=>"Benjamin", "familyName"=>"Ollomo")
149
145
  expect(subject.title).to eq("Data from: A new malaria agent in African hominids.")
150
146
  expect(subject.alternate_identifiers).to eq("type"=>"citation", "name"=>"Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.")
151
147
  expect(subject.rights).to eq("id"=>"http://creativecommons.org/publicdomain/zero/1.0")
152
- expect(subject.date_published).to eq("2011")
148
+ expect(subject.dates).to eq([{"date"=>"2011", "date_type"=>"Issued"}])
149
+ expect(subject.publication_year).to eq("2011")
153
150
  expect(subject.related_identifiers.length).to eq(6)
154
151
  expect(subject.related_identifiers.last).to eq("id"=>"19478877", "related_identifier_type"=>"PMID", "relation_type"=>"IsSupplementTo")
155
152
  expect(subject.publisher).to eq("Dryad Digital Repository")
@@ -199,7 +196,7 @@ describe Bolognese::Metadata, vcr: true do
199
196
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
200
197
  subject.doi = "10.5061/DRYAD.8515"
201
198
  subject.title = "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"
202
- subject.resource_type_general = "Dataset"
199
+ subject.types = { "type" => "Dataset", "resource_type_general" => "Dataset" }
203
200
  expect(subject.valid?).to be true
204
201
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
205
202
  expect(datacite.dig("identifier", "__content__")).to eq("10.5061/DRYAD.8515")
@@ -237,10 +234,10 @@ describe Bolognese::Metadata, vcr: true do
237
234
  subject.creator = [{"creatorName"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}]
238
235
  subject.title = "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"
239
236
  subject.publisher = "Dryad"
240
- subject.resource_type_general = "Dataset"
241
- subject.additional_type = "DataPackage"
242
- subject.date_published = "2011"
237
+ subject.types = "Dataset"
238
+ subject.publication_year = "2011"
243
239
  subject.state = "findable"
240
+ subject.types = { "type" => "Dataset", "resource_type_general" => "Dataset" }
244
241
  expect(subject.exists?).to be true
245
242
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
246
243
  expect(datacite.dig("identifier", "__content__")).to eq("10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
@@ -292,7 +289,7 @@ describe Bolognese::Metadata, vcr: true do
292
289
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
293
290
  subject.doi = "123"
294
291
  subject.title = "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"
295
- subject.type = "Dataset"
292
+ subject.types = "Dataset"
296
293
  expect(subject.doi).to eq("123")
297
294
  expect(subject.valid?).to be false
298
295
  expect(subject.errors.first).to start_with("3:0: ERROR: Element '{http://datacite.org/schema/kernel-4}identifier'")
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: 1.0.2
4
+ version: 1.0.3
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-11-03 00:00:00.000000000 Z
11
+ date: 2018-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma
@@ -806,6 +806,7 @@ files:
806
806
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/series-information.yml
807
807
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme.yml
808
808
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/xs_string_attributes.yml
809
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date/publication_date.yml
809
810
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/date.yml
810
811
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year-month.yml
811
812
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year.yml