bolognese 1.0.26 → 1.0.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/bolognese/datacite_utils.rb +3 -3
  4. data/lib/bolognese/metadata.rb +9 -9
  5. data/lib/bolognese/metadata_utils.rb +2 -2
  6. data/lib/bolognese/readers/bibtex_reader.rb +1 -1
  7. data/lib/bolognese/readers/citeproc_reader.rb +4 -4
  8. data/lib/bolognese/readers/codemeta_reader.rb +2 -2
  9. data/lib/bolognese/readers/crossref_reader.rb +2 -2
  10. data/lib/bolognese/readers/datacite_json_reader.rb +2 -2
  11. data/lib/bolognese/readers/datacite_reader.rb +2 -2
  12. data/lib/bolognese/readers/ris_reader.rb +1 -1
  13. data/lib/bolognese/readers/schema_org_reader.rb +4 -4
  14. data/lib/bolognese/version.rb +1 -1
  15. data/lib/bolognese/writers/bibtex_writer.rb +1 -1
  16. data/lib/bolognese/writers/codemeta_writer.rb +1 -1
  17. data/lib/bolognese/writers/crosscite_writer.rb +2 -2
  18. data/lib/bolognese/writers/datacite_json_writer.rb +2 -2
  19. data/lib/bolognese/writers/jats_writer.rb +5 -5
  20. data/lib/bolognese/writers/ris_writer.rb +1 -1
  21. data/lib/bolognese/writers/schema_org_writer.rb +2 -2
  22. data/spec/author_utils_spec.rb +3 -3
  23. data/spec/fixtures/crosscite.json +2 -2
  24. data/spec/fixtures/datacite.json +1 -1
  25. data/spec/fixtures/datacite_software.json +2 -2
  26. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorsName.yml +96 -0
  27. data/spec/readers/bibtex_reader_spec.rb +3 -3
  28. data/spec/readers/citeproc_reader_spec.rb +2 -2
  29. data/spec/readers/codemeta_reader_spec.rb +5 -5
  30. data/spec/readers/crosscite_reader_spec.rb +2 -2
  31. data/spec/readers/crossref_reader_spec.rb +18 -18
  32. data/spec/readers/datacite_json_reader_spec.rb +2 -2
  33. data/spec/readers/datacite_reader_spec.rb +58 -58
  34. data/spec/readers/ris_reader_spec.rb +3 -3
  35. data/spec/readers/schema_org_reader_spec.rb +19 -19
  36. data/spec/writers/crosscite_writer_spec.rb +10 -10
  37. data/spec/writers/datacite_json_writer_spec.rb +8 -8
  38. data/spec/writers/datacite_writer_spec.rb +7 -7
  39. metadata +3 -2
@@ -31,8 +31,8 @@ describe Bolognese::Metadata, vcr: true do
31
31
  expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
32
32
  expect(subject.types).to eq("citeproc"=>"misc", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
33
33
  expect(subject.url).to eq("http://elifesciences.org/lookup/doi/10.7554/eLife.01567")
34
- expect(subject.creator.length).to eq(5)
35
- expect(subject.creator.first).to eq("type"=>"Person",
34
+ expect(subject.creators.length).to eq(5)
35
+ expect(subject.creators.first).to eq("type"=>"Person",
36
36
  "name"=>"Martial Sankar",
37
37
  "givenName"=>"Martial",
38
38
  "familyName"=>"Sankar")
@@ -52,7 +52,7 @@ describe Bolognese::Metadata, vcr: true do
52
52
  expect(subject.state).to eq("not_found")
53
53
  expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
54
54
  expect(subject.types).to eq("citeproc"=>"misc", "resourceTypeGeneral"=>"Text", "ris"=>"THES", "schemaOrg"=>"Thesis")
55
- expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Y. Toparlar", "givenName"=>"Y.", "familyName"=>"Toparlar"}])
55
+ expect(subject.creators).to eq([{"type"=>"Person", "name"=>"Y. Toparlar", "givenName"=>"Y.", "familyName"=>"Toparlar"}])
56
56
  expect(subject.titles).to eq([{"title"=>"A multiscale analysis of the urban heat island effect"}])
57
57
  expect(subject.descriptions.first["description"]).to start_with("Designing the climates of cities")
58
58
  expect(subject.dates).to eq([{"date"=>"2018-04-25", "dateType"=>"Issued"}, {"date"=>"2018-04-25", "dateType"=>"Created"}])
@@ -22,7 +22,7 @@ describe Bolognese::Metadata, vcr: true do
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
24
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
25
- expect(subject.creator).to eq([{"type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
25
+ expect(subject.creators).to eq([{"type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
26
26
  expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
27
27
  expect(subject.descriptions.first["description"]).to start_with("Eating your own dog food")
28
28
  expect(subject.subjects).to eq([{"subject"=>"datacite"}, {"subject"=>"doi"}, {"subject"=>"metadata"}, {"subject"=>"featured"}])
@@ -52,8 +52,8 @@ describe Bolognese::Metadata, vcr: true do
52
52
  expect(subject.url).to eq("https://zenodo.org/record/1196821")
53
53
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
54
54
  expect(subject.titles).to eq([{"title"=>"PsPM-SC4B: SCR, ECG, EMG, PSR and respiration measurements in a delay fear conditioning task with auditory CS and electrical US"}])
55
- expect(subject.creator.size).to eq(6)
56
- expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0001-9688-838X", "name"=>"Matthias Staib", "givenName"=>"Matthias", "familyName"=>"Staib")
55
+ expect(subject.creators.size).to eq(6)
56
+ expect(subject.creators.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0001-9688-838X", "name"=>"Matthias Staib", "givenName"=>"Matthias", "familyName"=>"Staib")
57
57
  end
58
58
 
59
59
  it "pangaea" do
@@ -65,8 +65,8 @@ describe Bolognese::Metadata, vcr: true do
65
65
  expect(subject.url).to eq("https://doi.pangaea.de/10.1594/PANGAEA.836178")
66
66
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
67
67
  expect(subject.titles).to eq([{"title"=>"Hydrological and meteorological investigations in a lake near Kangerlussuaq, west Greenland"}])
68
- expect(subject.creator.size).to eq(8)
69
- expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Johansson, Emma", "givenName"=>"Emma", "familyName"=>"Johansson")
68
+ expect(subject.creators.size).to eq(8)
69
+ expect(subject.creators.first).to eq("type"=>"Person", "name"=>"Johansson, Emma", "givenName"=>"Emma", "familyName"=>"Johansson")
70
70
  end
71
71
 
72
72
  # service doesn't return html to script
@@ -80,8 +80,8 @@ describe Bolognese::Metadata, vcr: true do
80
80
  # expect(subject.url).to eq("https://doi.org/10.3334/ornldaac/1418")
81
81
  # expect(subject.type).to eq("DataSet")
82
82
  # expect(subject.title).to eq("AirMOSS: L2/3 Volumetric Soil Moisture Profiles Derived From Radar, 2012-2015")
83
- # expect(subject.creator.size).to eq(8)
84
- # expect(subject.creator.first).to eq("type"=>"Person", "name"=>"M. MOGHADDAM", "givenName"=>"M.", "familyName"=>"MOGHADDAM")
83
+ # expect(subject.creators.size).to eq(8)
84
+ # expect(subject.creators.first).to eq("type"=>"Person", "name"=>"M. MOGHADDAM", "givenName"=>"M.", "familyName"=>"MOGHADDAM")
85
85
  # end
86
86
 
87
87
  it "harvard dataverse" do
@@ -93,7 +93,7 @@ describe Bolognese::Metadata, vcr: true do
93
93
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
94
94
  expect(subject.titles).to eq([{"title"=>"Summary data ankylosing spondylitis GWAS"}])
95
95
  expect(subject.periodical).to eq("title"=>"Harvard Dataverse", "type"=>"DataCatalog", "url"=>"https://dataverse.harvard.edu")
96
- expect(subject.creator).to eq([{"name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)"}])
96
+ expect(subject.creators).to eq([{"name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)"}])
97
97
  expect(subject.schema_version).to eq("https://schema.org/version/3.3")
98
98
  end
99
99
 
@@ -106,7 +106,7 @@ describe Bolognese::Metadata, vcr: true do
106
106
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
107
107
  expect(subject.titles).to eq([{"title"=>"Summary data ankylosing spondylitis GWAS"}])
108
108
  expect(subject.periodical).to eq("title"=>"Harvard Dataverse", "type"=>"DataCatalog", "url"=>"https://dataverse.harvard.edu")
109
- expect(subject.creator).to eq([{"name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)"}])
109
+ expect(subject.creators).to eq([{"name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)"}])
110
110
  end
111
111
  end
112
112
 
@@ -118,7 +118,7 @@ describe Bolognese::Metadata, vcr: true do
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
120
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
121
- expect(subject.creator).to eq([{"type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
121
+ expect(subject.creators).to eq([{"type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
122
122
  expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
123
123
  expect(subject.descriptions.first["description"]).to start_with("Eating your own dog food")
124
124
  expect(subject.subjects).to eq([{"subject"=>"datacite"}, {"subject"=>"doi"}, {"subject"=>"metadata"}, {"subject"=>"featured"}])
@@ -139,7 +139,7 @@ describe Bolognese::Metadata, vcr: true do
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
141
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceType"=>"Gene expression matrices", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
142
- expect(subject.creator).to eq([{"name"=>"The GTEx Consortium", "type"=>"Organization"}])
142
+ expect(subject.creators).to eq([{"name"=>"The GTEx Consortium", "type"=>"Organization"}])
143
143
  expect(subject.titles).to eq([{"title"=>"Fully processed, filtered and normalized gene expression matrices (in BED format) for each tissue, which were used as input into FastQTL for eQTL discovery"}])
144
144
  expect(subject.version_info).to eq("v7")
145
145
  expect(subject.subjects).to eq([{"subject"=>"gtex"}, {"subject"=>"annotation"}, {"subject"=>"phenotype"}, {"subject"=>"gene regulation"}, {"subject"=>"transcriptomics"}])
@@ -160,7 +160,7 @@ describe Bolognese::Metadata, vcr: true do
160
160
  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.23725/8na3-9s47")
161
161
  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"])
162
162
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceType"=>"CRAM file", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
163
- expect(subject.creator).to eq([{"name"=>"TOPMed IRC", "type"=>"Organization"}])
163
+ expect(subject.creators).to eq([{"name"=>"TOPMed IRC", "type"=>"Organization"}])
164
164
  expect(subject.titles).to eq([{"title"=>"NWD165827.recab.cram"}])
165
165
  expect(subject.subjects).to eq([{"subject"=>"topmed"}, {"subject"=>"whole genome sequencing"}])
166
166
  expect(subject.dates).to eq([{"date"=>"2017-11-30", "dateType"=>"Issued"}])
@@ -177,8 +177,8 @@ describe Bolognese::Metadata, vcr: true do
177
177
  expect(subject.valid?).to be true
178
178
  expect(subject.identifier).to eq("https://doi.org/10.6071/z7wc73")
179
179
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceType"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
180
- expect(subject.creator.length).to eq(6)
181
- expect(subject.creator.first).to eq("familyName"=>"Bales", "givenName"=>"Roger", "name"=>"Roger Bales", "type"=>"Person")
180
+ expect(subject.creators.length).to eq(6)
181
+ expect(subject.creators.first).to eq("familyName"=>"Bales", "givenName"=>"Roger", "name"=>"Roger Bales", "type"=>"Person")
182
182
  expect(subject.titles).to eq([{"title"=>"Southern Sierra Critical Zone Observatory (SSCZO), Providence Creek meteorological data, soil moisture and temperature, snow depth and air temperature"}])
183
183
  expect(subject.subjects).to eq([{"subject"=>"Earth sciences"},
184
184
  {"subject"=>"soil moisture"},
@@ -202,8 +202,8 @@ describe Bolognese::Metadata, vcr: true do
202
202
  expect(subject.valid?).to be true
203
203
  expect(subject.identifier).to eq("https://doi.org/10.1594/pangaea.842237")
204
204
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
205
- expect(subject.creator.length).to eq(2)
206
- expect(subject.creator.first).to eq("name"=>"Tara Oceans Consortium, Coordinators", "type"=>"Organization")
205
+ expect(subject.creators.length).to eq(2)
206
+ expect(subject.creators.first).to eq("name"=>"Tara Oceans Consortium, Coordinators", "type"=>"Organization")
207
207
  expect(subject.titles).to eq([{"title"=>"Registry of all stations from the Tara Oceans Expedition (2009-2013)"}])
208
208
  expect(subject.dates).to eq([{"date"=>"2015-02-03", "dateType"=>"Issued"}])
209
209
  expect(subject.publication_year).to eq("2015")
@@ -221,7 +221,7 @@ describe Bolognese::Metadata, vcr: true do
221
221
  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.23725/7jg3-v803")
222
222
  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"])
223
223
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceType"=>"CRAM file", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
224
- expect(subject.creator).to eq([{"name"=>"TOPMed", "type"=>"Organization"}])
224
+ expect(subject.creators).to eq([{"name"=>"TOPMed", "type"=>"Organization"}])
225
225
  expect(subject.titles).to eq([{"title"=>"NWD100953.recab.cram"}])
226
226
  expect(subject.subjects).to eq([{"subject"=>"topmed"}, {"subject"=>"whole genome sequencing"}])
227
227
  expect(subject.dates).to eq([{"date"=>"2017-11-30", "dateType"=>"Issued"}])
@@ -234,7 +234,7 @@ describe Bolognese::Metadata, vcr: true do
234
234
  subject = Bolognese::Metadata.new(input: nil,
235
235
  from: "schema_org",
236
236
  doi: "10.5281/zenodo.1239",
237
- creator: [{"type"=>"Person", "name"=>"Jahn, Najko", "givenName"=>"Najko", "familyName"=>"Jahn"}],
237
+ creators: [{"type"=>"Person", "name"=>"Jahn, Najko", "givenName"=>"Najko", "familyName"=>"Jahn"}],
238
238
  titles: [{ "title" => "Publication Fp7 Funding Acknowledgment - Plos Openaire" }],
239
239
  descriptions: [{ "description" => "The dataset contains a sample of metadata describing papers" }],
240
240
  publisher: "Zenodo",
@@ -253,7 +253,7 @@ describe Bolognese::Metadata, vcr: true do
253
253
  expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.1239")
254
254
  expect(subject.types["schemaOrg"]).to eq("Dataset")
255
255
  expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
256
- expect(subject.creator).to eq([{"familyName"=>"Jahn", "givenName"=>"Najko", "name"=>"Jahn, Najko", "type"=>"Person"}])
256
+ expect(subject.creators).to eq([{"familyName"=>"Jahn", "givenName"=>"Najko", "name"=>"Jahn, Najko", "type"=>"Person"}])
257
257
  expect(subject.titles).to eq([{"title"=>"Publication Fp7 Funding Acknowledgment - Plos Openaire"}])
258
258
  expect(subject.descriptions.first["description"]).to start_with("The dataset contains a sample of metadata describing papers")
259
259
  expect(subject.dates).to eq([{"date"=>"2013-04-03", "dateType"=>"Issued"}])
@@ -22,8 +22,8 @@ describe Bolognese::Metadata, vcr: true do
22
22
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
23
23
  crosscite = JSON.parse(subject.crosscite)
24
24
  expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
25
- expect(crosscite.fetch("creator").count).to eq(7)
26
- expect(crosscite.fetch("creator")[2]).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-2043-4925", "name"=>"Beatriz Hernandez", "givenName"=>"Beatriz", "familyName"=>"Hernandez")
25
+ expect(crosscite.fetch("creators").count).to eq(7)
26
+ expect(crosscite.fetch("creators")[2]).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-2043-4925", "name"=>"Beatriz Hernandez", "givenName"=>"Beatriz", "familyName"=>"Hernandez")
27
27
  end
28
28
 
29
29
  # it "with editor" do
@@ -40,8 +40,8 @@ describe Bolognese::Metadata, vcr: true do
40
40
  expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceTypeGeneral"=>"Text", "resourceType"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
41
41
  expect(crosscite.fetch("titles")).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
42
42
  expect(crosscite.dig("descriptions", 0, "description")).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
43
- expect(crosscite.fetch("creator").count).to eq(5)
44
- expect(crosscite.fetch("creator").first).to eq("type"=>"Person", "name"=>"Martial Sankar", "givenName"=>"Martial", "familyName"=>"Sankar")
43
+ expect(crosscite.fetch("creators").count).to eq(5)
44
+ expect(crosscite.fetch("creators").first).to eq("type"=>"Person", "name"=>"Martial Sankar", "givenName"=>"Martial", "familyName"=>"Sankar")
45
45
  end
46
46
 
47
47
  it "BlogPosting Citeproc JSON" do
@@ -52,7 +52,7 @@ describe Bolognese::Metadata, vcr: true do
52
52
  expect(crosscite["types"]).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
53
53
  expect(crosscite.fetch("titles")).to eq([{"title"=>"Eating your own Dog Food"}])
54
54
  expect(crosscite.dig("descriptions", 0, "description")).to start_with("Eating your own dog food")
55
- expect(crosscite.fetch("creator")).to eq([{"type"=>"Person", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
55
+ expect(crosscite.fetch("creators")).to eq([{"type"=>"Person", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
56
56
  end
57
57
 
58
58
  it "rdataone" do
@@ -60,8 +60,8 @@ describe Bolognese::Metadata, vcr: true do
60
60
  subject = Bolognese::Metadata.new(input: input, from: "codemeta")
61
61
  crosscite = JSON.parse(subject.crosscite)
62
62
  expect(crosscite["titles"]).to eq([{"title"=>"R Interface to the DataONE REST API"}])
63
- expect(crosscite["creator"].length).to eq(3)
64
- expect(crosscite["creator"].last).to eq("type"=>"Organization", "name"=>"University Of California, Santa Barbara")
63
+ expect(crosscite["creators"].length).to eq(3)
64
+ expect(crosscite["creators"].last).to eq("type"=>"Organization", "name"=>"University Of California, Santa Barbara")
65
65
  expect(crosscite["version"]).to eq("2.0.0")
66
66
  end
67
67
 
@@ -71,8 +71,8 @@ describe Bolognese::Metadata, vcr: true do
71
71
  crosscite = JSON.parse(subject.crosscite)
72
72
  expect(crosscite.fetch("url")).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
73
73
  expect(crosscite.fetch("titles")).to eq([{"title"=>"Data from: A new malaria agent in African hominids."}])
74
- expect(crosscite.fetch("creator").length).to eq(8)
75
- expect(crosscite.fetch("creator").first).to eq("type"=>"Person", "familyName" => "Ollomo", "givenName" => "Benjamin", "name" => "Benjamin Ollomo")
74
+ expect(crosscite.fetch("creators").length).to eq(8)
75
+ expect(crosscite.fetch("creators").first).to eq("type"=>"Person", "familyName" => "Ollomo", "givenName" => "Benjamin", "name" => "Benjamin Ollomo")
76
76
  expect(crosscite.fetch("dates")).to eq([{"date"=>"2011", "dateType"=>"Issued"}])
77
77
  expect(crosscite.fetch("publication_year")).to eq("2011")
78
78
  expect(crosscite.fetch("provider_id")).to eq("DRYAD")
@@ -84,7 +84,7 @@ describe Bolognese::Metadata, vcr: true do
84
84
  subject = Bolognese::Metadata.new(input: input, from: "codemeta")
85
85
  crosscite = JSON.parse(subject.crosscite)
86
86
  expect(crosscite.fetch("titles")).to eq( [{"title"=>"Maremma: a Ruby library for simplified network calls"}])
87
- expect(crosscite.fetch("creator")).to eq([{"familyName"=>"Fenner", "givenName"=>"Martin", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Martin Fenner", "type"=>"Person"}])
87
+ expect(crosscite.fetch("creators")).to eq([{"familyName"=>"Fenner", "givenName"=>"Martin", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Martin Fenner", "type"=>"Person"}])
88
88
  end
89
89
 
90
90
  it "with data citation schema.org" do
@@ -22,8 +22,8 @@ describe Bolognese::Metadata, vcr: true do
22
22
  datacite = JSON.parse(subject.datacite_json)
23
23
  expect(datacite.fetch("url")).to eq("http://www.hindawi.com/journals/pm/2012/291294/")
24
24
  expect(datacite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
25
- expect(datacite.fetch("creator").length).to eq(7)
26
- expect(datacite.fetch("creator").first).to eq("type"=>"Person", "name"=>"Wendy Thanassi", "givenName"=>"Wendy", "familyName"=>"Thanassi")
25
+ expect(datacite.fetch("creators").length).to eq(7)
26
+ expect(datacite.fetch("creators").first).to eq("type"=>"Person", "name"=>"Wendy Thanassi", "givenName"=>"Wendy", "familyName"=>"Thanassi")
27
27
  end
28
28
 
29
29
  it "Crossref DOI" do
@@ -33,8 +33,8 @@ describe Bolognese::Metadata, vcr: true do
33
33
  expect(datacite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
34
34
  expect(datacite.fetch("titles")).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
35
35
  expect(datacite.dig("descriptions", 0, "description")).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
36
- expect(datacite.fetch("creator").length).to eq(5)
37
- expect(datacite.fetch("creator").first).to eq("type"=>"Person", "name"=>"Martial Sankar", "givenName"=>"Martial", "familyName"=>"Sankar")
36
+ expect(datacite.fetch("creators").length).to eq(5)
37
+ expect(datacite.fetch("creators").first).to eq("type"=>"Person", "name"=>"Martial Sankar", "givenName"=>"Martial", "familyName"=>"Sankar")
38
38
  end
39
39
 
40
40
  it "BlogPosting Citeproc JSON" do
@@ -44,7 +44,7 @@ describe Bolognese::Metadata, vcr: true do
44
44
  expect(datacite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
45
45
  expect(datacite.fetch("titles")).to eq([{"title"=>"Eating your own Dog Food"}])
46
46
  expect(datacite.dig("descriptions", 0, "description")).to start_with("Eating your own dog food")
47
- expect(datacite.fetch("creator")).to eq([{"familyName"=>"Fenner", "givenName"=>"Martin", "name"=>"Martin Fenner", "type"=>"Person"}])
47
+ expect(datacite.fetch("creators")).to eq([{"familyName"=>"Fenner", "givenName"=>"Martin", "name"=>"Martin Fenner", "type"=>"Person"}])
48
48
  end
49
49
 
50
50
  it "rdataone" do
@@ -52,8 +52,8 @@ describe Bolognese::Metadata, vcr: true do
52
52
  subject = Bolognese::Metadata.new(input: input, from: "codemeta")
53
53
  datacite = JSON.parse(subject.datacite_json)
54
54
  expect(datacite.fetch("titles")).to eq([{"title"=>"R Interface to the DataONE REST API"}])
55
- expect(datacite.fetch("creator").length).to eq(3)
56
- expect(datacite.fetch("creator").first).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Matt Jones", "givenName"=>"Matt", "familyName"=>"Jones")
55
+ expect(datacite.fetch("creators").length).to eq(3)
56
+ expect(datacite.fetch("creators").first).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Matt Jones", "givenName"=>"Matt", "familyName"=>"Jones")
57
57
  expect(datacite.fetch("version")).to eq("2.0.0")
58
58
  end
59
59
 
@@ -62,7 +62,7 @@ describe Bolognese::Metadata, vcr: true do
62
62
  subject = Bolognese::Metadata.new(input: input, from: "codemeta")
63
63
  datacite = JSON.parse(subject.datacite_json)
64
64
  expect(datacite.fetch("titles")).to eq([{"title"=>"Maremma: a Ruby library for simplified network calls"}])
65
- expect(datacite.fetch("creator")).to eq([{"type"=>"Person", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
65
+ expect(datacite.fetch("creators")).to eq([{"type"=>"Person", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
66
66
  end
67
67
 
68
68
  it "with data citation schema.org" do
@@ -104,8 +104,8 @@ describe Bolognese::Metadata, vcr: true do
104
104
  expect(subject.valid?).to be true
105
105
  expect(subject.identifier).to eq("https://doi.org/10.23640/07243.5153971")
106
106
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"Paper", "resourceTypeGeneral"=>"Text", "ris"=>"RPRT", "schemaOrg"=>"ScholarlyArticle")
107
- expect(subject.creator.length).to eq(20)
108
- expect(subject.creator.first).to eq("type"=>"Person", "familyName" => "Paglione", "givenName" => "Laura", "id" => "https://orcid.org/0000-0003-3188-6273", "name" => "Laura Paglione")
107
+ expect(subject.creators.length).to eq(20)
108
+ expect(subject.creators.first).to eq("type"=>"Person", "familyName" => "Paglione", "givenName" => "Laura", "id" => "https://orcid.org/0000-0003-3188-6273", "name" => "Laura Paglione")
109
109
  expect(subject.titles).to eq([{"title"=>"Recommendation of: ORCID Works Metadata Working Group"}])
110
110
  expect(subject.rights_list).to eq([{"rightsUri"=>"https://creativecommons.org/publicdomain/zero/1.0", "rights"=>"CC-0"}])
111
111
  expect(subject.dates).to eq([{"date"=>"2017-06-28", "dateType"=>"Created"}, {"date"=>"2017-06-28", "dateType"=>"Updated"}, {"date"=>"2017", "dateType"=>"Issued"}])
@@ -122,8 +122,8 @@ describe Bolognese::Metadata, vcr: true do
122
122
  expect(subject.valid?).to be true
123
123
  expect(subject.identifier).to eq("https://doi.org/10.5072/07243.5153971")
124
124
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"Paper", "resourceTypeGeneral"=>"Text", "ris"=>"RPRT", "schemaOrg"=>"ScholarlyArticle")
125
- expect(subject.creator.length).to eq(20)
126
- expect(subject.creator.first).to eq("type"=>"Person", "familyName" => "Paglione", "givenName" => "Laura", "id" => "https://orcid.org/0000-0003-3188-6273", "name" => "Laura Paglione")
125
+ expect(subject.creators.length).to eq(20)
126
+ expect(subject.creators.first).to eq("type"=>"Person", "familyName" => "Paglione", "givenName" => "Laura", "id" => "https://orcid.org/0000-0003-3188-6273", "name" => "Laura Paglione")
127
127
  expect(subject.titles).to eq([{"title"=>"Recommendation of: ORCID Works Metadata Working Group"}])
128
128
  expect(subject.rights_list).to eq([{"rightsUri"=>"https://creativecommons.org/publicdomain/zero/1.0", "rights"=>"CC-0"}])
129
129
  expect(subject.dates).to eq([{"date"=>"2017-06-28", "dateType"=>"Created"}, {"date"=>"2017-06-28", "dateType"=>"Updated"}, {"date"=>"2017", "dateType"=>"Issued"}])
@@ -140,8 +140,8 @@ describe Bolognese::Metadata, vcr: true do
140
140
  expect(subject.valid?).to be true
141
141
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
142
142
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceType"=>"DataPackage", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
143
- expect(subject.creator.length).to eq(8)
144
- expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Benjamin Ollomo", "givenName"=>"Benjamin", "familyName"=>"Ollomo")
143
+ expect(subject.creators.length).to eq(8)
144
+ expect(subject.creators.first).to eq("type"=>"Person", "name"=>"Benjamin Ollomo", "givenName"=>"Benjamin", "familyName"=>"Ollomo")
145
145
  expect(subject.titles).to eq([{"title"=>"Data from: A new malaria agent in African hominids."}])
146
146
  expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=> "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.", "alternateIdentifierType"=>"citation"}])
147
147
  expect(subject.rights_list).to eq([{"rightsUri"=>"http://creativecommons.org/publicdomain/zero/1.0"}])
@@ -231,7 +231,7 @@ describe Bolognese::Metadata, vcr: true do
231
231
  it "required metadata no input" do
232
232
  input = nil
233
233
  subject = Bolognese::Metadata.new(input: input, doi: "10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
234
- subject.creator = [{"creatorName"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}]
234
+ subject.creators = [{"creatorName"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}]
235
235
  subject.titles = [{ "title" => "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth" }]
236
236
  subject.types = { "schemaOrg" => "Dataset", "resourceTypeGeneral" => "Dataset" }
237
237
  subject.publication_year = "2011"
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.26
4
+ version: 1.0.27
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-28 00:00:00.000000000 Z
11
+ date: 2018-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma
@@ -809,6 +809,7 @@ files:
809
809
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/keywords_with_attributes.yml
810
810
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/leading_and_trailing_whitespace.yml
811
811
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorName.yml
812
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorsName.yml
812
813
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_licenses.yml
813
814
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/series-information.yml
814
815
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme.yml