bolognese 1.10.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +0 -14
  3. data/.github/workflows/release.yml +0 -10
  4. data/CHANGELOG.md +2 -2
  5. data/Gemfile.lock +65 -50
  6. data/bolognese.gemspec +2 -1
  7. data/lib/bolognese/author_utils.rb +14 -1
  8. data/lib/bolognese/datacite_utils.rb +18 -10
  9. data/lib/bolognese/metadata.rb +1 -1
  10. data/lib/bolognese/metadata_utils.rb +1 -1
  11. data/lib/bolognese/readers/bibtex_reader.rb +2 -2
  12. data/lib/bolognese/readers/citeproc_reader.rb +1 -1
  13. data/lib/bolognese/readers/codemeta_reader.rb +2 -2
  14. data/lib/bolognese/readers/crosscite_reader.rb +4 -1
  15. data/lib/bolognese/readers/crossref_reader.rb +3 -4
  16. data/lib/bolognese/readers/datacite_json_reader.rb +4 -1
  17. data/lib/bolognese/readers/datacite_reader.rb +25 -9
  18. data/lib/bolognese/readers/npm_reader.rb +1 -1
  19. data/lib/bolognese/readers/ris_reader.rb +2 -2
  20. data/lib/bolognese/readers/schema_org_reader.rb +3 -2
  21. data/lib/bolognese/utils.rb +22 -5
  22. data/lib/bolognese/version.rb +1 -1
  23. data/lib/bolognese/writers/bibtex_writer.rb +1 -1
  24. data/lib/bolognese/writers/codemeta_writer.rb +1 -1
  25. data/lib/bolognese/writers/csv_writer.rb +1 -1
  26. data/lib/bolognese/writers/datacite_json_writer.rb +6 -1
  27. data/lib/bolognese/writers/jats_writer.rb +3 -3
  28. data/lib/bolognese/writers/ris_writer.rb +2 -2
  29. data/lib/bolognese/writers/schema_org_writer.rb +2 -2
  30. data/resources/kernel-4/include/datacite-relationType-v4.xsd +2 -0
  31. data/resources/kernel-4/include/datacite-resourceType-v4.xsd +2 -0
  32. data/resources/kernel-4/metadata.xsd +11 -7
  33. data/resources/kernel-4.5/include/datacite-contributorType-v4.xsd +35 -0
  34. data/resources/kernel-4.5/include/datacite-dateType-v4.xsd +25 -0
  35. data/resources/kernel-4.5/include/datacite-descriptionType-v4.xsd +19 -0
  36. data/resources/kernel-4.5/include/datacite-funderIdentifierType-v4.xsd +16 -0
  37. data/resources/kernel-4.5/include/datacite-nameType-v4.xsd +10 -0
  38. data/resources/kernel-4.5/include/datacite-numberType-v4.xsd +12 -0
  39. data/resources/kernel-4.5/include/datacite-relatedIdentifierType-v4.xsd +34 -0
  40. data/resources/kernel-4.5/include/datacite-relationType-v4.xsd +53 -0
  41. data/resources/kernel-4.5/include/datacite-resourceType-v4.xsd +45 -0
  42. data/resources/kernel-4.5/include/datacite-titleType-v4.xsd +14 -0
  43. data/resources/kernel-4.5/include/xml.xsd +286 -0
  44. data/resources/kernel-4.5/metadata.xsd +711 -0
  45. data/spec/author_utils_spec.rb +52 -5
  46. data/spec/datacite_utils_spec.rb +5 -1
  47. data/spec/fixtures/citeproc.json +4 -2
  48. data/spec/fixtures/datacite-example-ROR-nameIdentifiers.xml +16 -1
  49. data/spec/fixtures/datacite-example-full-v4.5.xml +255 -0
  50. data/spec/fixtures/datacite-example-relateditems-with-attributes.xml +61 -0
  51. data/spec/fixtures/datacite-seriesinformation.xml +7 -2
  52. data/spec/fixtures/datacite.json +9 -3
  53. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_subjects/insert.yml +32 -14
  54. data/spec/readers/bibtex_reader_spec.rb +2 -0
  55. data/spec/readers/citeproc_reader_spec.rb +3 -0
  56. data/spec/readers/codemeta_reader_spec.rb +4 -4
  57. data/spec/readers/crosscite_reader_spec.rb +2 -0
  58. data/spec/readers/crossref_reader_spec.rb +41 -41
  59. data/spec/readers/datacite_json_reader_spec.rb +2 -0
  60. data/spec/readers/datacite_reader_spec.rb +118 -44
  61. data/spec/readers/npm_reader_spec.rb +2 -0
  62. data/spec/readers/ris_reader_spec.rb +3 -0
  63. data/spec/readers/schema_org_reader_spec.rb +11 -11
  64. data/spec/spec_helper.rb +1 -0
  65. data/spec/writers/crosscite_writer_spec.rb +7 -0
  66. data/spec/writers/datacite_json_writer_spec.rb +38 -0
  67. data/spec/writers/datacite_writer_spec.rb +84 -5
  68. data/spec/writers/jats_writer_spec.rb +8 -0
  69. data/spec/writers/rdf_xml_writer_spec.rb +7 -0
  70. data/spec/writers/turtle_writer_spec.rb +18 -0
  71. metadata +30 -16
@@ -32,7 +32,7 @@ describe Bolognese::Metadata, vcr: true do
32
32
  expect(subject.titles).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
33
33
  expect(subject.dates).to eq([{"date"=>"2014-02-11", "dateType"=>"Issued"}, {"date"=>"2018-08-23T09:41:49Z", "dateType"=>"Updated"}])
34
34
  expect(subject.publication_year).to eq("2014")
35
- expect(subject.publisher).to eq("eLife Sciences Publications, Ltd")
35
+ expect(subject.publisher).to eq({"name"=>"eLife Sciences Publications, Ltd"})
36
36
  expect(subject.container).to eq("firstPage" => "e01567", "identifier"=>"2050-084X", "identifierType"=>"ISSN", "title"=>"eLife", "type"=>"Journal", "volume"=>"3")
37
37
  expect(subject.related_identifiers.length).to eq(27)
38
38
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"2050-084X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
@@ -69,7 +69,7 @@ describe Bolognese::Metadata, vcr: true do
69
69
  "schemeUri"=>"https://spdx.org/licenses/"}])
70
70
  expect(subject.dates).to eq([{"date"=>"2006-12-20", "dateType"=>"Issued"}, {"date"=>"2020-05-09T09:35:17Z", "dateType"=>"Updated"}])
71
71
  expect(subject.publication_year).to eq("2006")
72
- expect(subject.publisher).to eq("Public Library of Science (PLoS)")
72
+ expect(subject.publisher).to eq({"name"=>"Public Library of Science (PLoS)"})
73
73
  expect(subject.related_identifiers.length).to eq(64)
74
74
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1932-6203", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
75
75
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1056/nejm199109123251104", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
@@ -95,7 +95,7 @@ describe Bolognese::Metadata, vcr: true do
95
95
  "schemeUri"=>"https://spdx.org/licenses/"}])
96
96
  expect(subject.dates).to eq([{"date"=>"2019-07-02", "dateType"=>"Issued"}, {"date"=>"2019-09-22T06:40:23Z", "dateType"=>"Updated"}])
97
97
  expect(subject.publication_year).to eq("2019")
98
- expect(subject.publisher).to eq("Frontiers Media SA")
98
+ expect(subject.publisher).to eq({"name"=>"Frontiers Media SA"})
99
99
  expect(subject.funding_references).to eq([{"awardNumber"=>"CA17111", "funderIdentifier"=>"https://doi.org/10.13039/501100000921", "funderIdentifierType"=>"Crossref Funder ID", "funderName"=>"COST (European Cooperation in Science and Technology)"}])
100
100
  expect(subject.related_identifiers.length).to eq(70)
101
101
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1664-462X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
@@ -115,7 +115,7 @@ describe Bolognese::Metadata, vcr: true do
115
115
  expect(subject.titles).to eq([{"lang"=>"ja", "title"=>"??????????????????????????????"}])
116
116
  expect(subject.dates).to include({"date"=>"2007", "dateType"=>"Issued"})
117
117
  expect(subject.publication_year).to eq("2007")
118
- expect(subject.publisher).to eq("The Japanese Society of Physical Fitness and Sports Medicine")
118
+ expect(subject.publisher).to eq({"name"=>"The Japanese Society of Physical Fitness and Sports Medicine"})
119
119
  expect(subject.related_identifiers.length).to eq(1)
120
120
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1881-4751", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
121
121
  expect(subject.container).to eq("firstPage"=>"60", "identifier"=>"1881-4751", "identifierType"=>"ISSN", "issue"=>"1", "lastPage"=>"60", "title"=>"Japanese Journal of Physical Fitness and Sports Medicine", "type"=>"Journal", "volume"=>"56")
@@ -134,7 +134,7 @@ describe Bolognese::Metadata, vcr: true do
134
134
  expect(subject.titles).to eq([{"title"=>"Global distribution of Fabaeformiscandona subacuta: an??exotic??invasive Ostracoda on the Iberian Peninsula?"}])
135
135
  expect(subject.dates).to include({"date"=>"2012-01-01", "dateType"=>"Issued"})
136
136
  expect(subject.publication_year).to eq("2012")
137
- expect(subject.publisher).to eq("Oxford University Press (OUP)")
137
+ expect(subject.publisher).to eq({"name"=>"Oxford University Press (OUP)"})
138
138
  expect(subject.related_identifiers.length).to eq(44)
139
139
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1937-240X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
140
140
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1002/aqc.1122", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
@@ -154,7 +154,7 @@ describe Bolognese::Metadata, vcr: true do
154
154
  expect(subject.titles).to eq([{"title"=>"Human Body Orientation Estimation in Multiview Scenarios"}])
155
155
  expect(subject.dates).to eq([{"date"=>"2012", "dateType"=>"Issued"}, {"date"=>"2020-11-24T03:11:32Z", "dateType"=>"Updated"}])
156
156
  expect(subject.publication_year).to eq("2012")
157
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
157
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
158
158
  expect(subject.related_identifiers.length).to eq(7)
159
159
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"10.1007/978-3-540-24670-1_3", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
160
160
  expect(subject.container).to eq("identifier"=>"1611-3349", "identifierType"=>"ISSN", "title"=>"Lecture Notes in Computer Science", "type"=>"Book Series")
@@ -175,7 +175,7 @@ describe Bolognese::Metadata, vcr: true do
175
175
  expect(subject.descriptions.first["description"]).to start_with("This article presents a practical roadmap")
176
176
  expect(subject.dates).to include({"date"=>"2017-10-09", "dateType"=>"Issued"})
177
177
  expect(subject.publication_year).to eq("2017")
178
- expect(subject.publisher).to eq("Cold Spring Harbor Laboratory")
178
+ expect(subject.publisher).to eq({"name"=>"Cold Spring Harbor Laboratory"})
179
179
  expect(subject.agency).to eq("crossref")
180
180
  end
181
181
 
@@ -197,7 +197,7 @@ describe Bolognese::Metadata, vcr: true do
197
197
  expect(subject.descriptions).to be_empty
198
198
  expect(subject.dates).to include({"date"=>"2020-05-19", "dateType"=>"Issued"})
199
199
  expect(subject.publication_year).to eq("2020")
200
- expect(subject.publisher).to eq("eLife Sciences Publications, Ltd")
200
+ expect(subject.publisher).to eq({"name"=>"eLife Sciences Publications, Ltd"})
201
201
  expect(subject.agency).to eq("crossref")
202
202
  end
203
203
 
@@ -221,7 +221,7 @@ describe Bolognese::Metadata, vcr: true do
221
221
  expect(subject.descriptions).to be_empty
222
222
  expect(subject.dates).to include({"date"=>"2020-06-08", "dateType"=>"Issued"})
223
223
  expect(subject.publication_year).to eq("2020")
224
- expect(subject.publisher).to eq("University of Queensland Library")
224
+ expect(subject.publisher).to eq({"name"=>"University of Queensland Library"})
225
225
  expect(subject.agency).to eq("crossref")
226
226
  end
227
227
 
@@ -237,7 +237,7 @@ describe Bolognese::Metadata, vcr: true do
237
237
  expect(subject.titles).to eq([{"title"=>"THE IMPACT OF PARASITE MANIPULATION AND PREDATOR FORAGING BEHAVIOR ON PREDATOR???PREY COMMUNITIES"}])
238
238
  expect(subject.dates).to eq([{"date"=>"2006-11", "dateType"=>"Issued"}, {"date"=>"2019-04-28T17:51:50Z", "dateType"=>"Updated"}])
239
239
  expect(subject.publication_year).to eq("2006")
240
- expect(subject.publisher).to eq("Wiley")
240
+ expect(subject.publisher).to eq({"name"=>"Wiley"})
241
241
  expect(subject.related_identifiers.length).to eq(35)
242
242
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"0012-9658", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
243
243
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1098/rspb.2002.2213", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
@@ -262,7 +262,7 @@ describe Bolognese::Metadata, vcr: true do
262
262
  expect(subject.titles).to eq([{"title"=>"Delineating a Retesting Zone Using Receiver Operating Characteristic Analysis on Serial QuantiFERON Tuberculosis Test Results in US Healthcare Workers"}])
263
263
  expect(subject.dates).to include({"date"=>"2012", "dateType"=>"Issued"})
264
264
  expect(subject.publication_year).to eq("2012")
265
- expect(subject.publisher).to eq("Hindawi Limited")
265
+ expect(subject.publisher).to eq({"name"=>"Hindawi Limited"})
266
266
  expect(subject.related_identifiers.length).to eq(18)
267
267
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"2090-1844", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
268
268
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1378/chest.12-0045", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
@@ -283,7 +283,7 @@ describe Bolognese::Metadata, vcr: true do
283
283
  expect(subject.titles).to eq([{"title"=>"Paving the path to HIV neurotherapy: Predicting SIV CNS disease"}])
284
284
  expect(subject.dates).to include({"date"=>"2015-07", "dateType"=>"Issued"})
285
285
  expect(subject.publication_year).to eq("2015")
286
- expect(subject.publisher).to eq("Elsevier BV")
286
+ expect(subject.publisher).to eq({"name"=>"Elsevier BV"})
287
287
  expect(subject.related_identifiers).to eq([{"relatedIdentifier"=>"0014-2999", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection"},
288
288
  {"relatedIdentifier"=>"10.1212/01.wnl.0000287431.88658.8b",
289
289
  "relatedIdentifierType"=>"DOI",
@@ -562,7 +562,7 @@ describe Bolognese::Metadata, vcr: true do
562
562
  expect(subject.titles).to eq([{"title"=>"Albinism in phylogenetically and geographically distinct populations of Astyanax cavefish arises through the same loss-of-function Oca2 allele"}])
563
563
  expect(subject.dates).to include({"date"=>"2013-04-10", "dateType"=>"Issued"})
564
564
  expect(subject.publication_year).to eq("2013")
565
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
565
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
566
566
  expect(subject.related_identifiers.size).to eq(35)
567
567
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1365-2540", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
568
568
  expect(subject.container).to eq("firstPage"=>"122", "identifier"=>"1365-2540", "identifierType"=>"ISSN", "issue"=>"2", "lastPage"=>"130", "title"=>"Heredity", "type"=>"Journal", "volume"=>"111")
@@ -582,7 +582,7 @@ describe Bolognese::Metadata, vcr: true do
582
582
  expect(subject.descriptions).to eq([{"description"=>"x-ray diffraction structure", "descriptionType"=>"Other"}])
583
583
  expect(subject.dates).to include({"date"=>"1984-07-17", "dateType"=>"Issued"})
584
584
  expect(subject.publication_year).to eq("1984")
585
- expect(subject.publisher).to eq("Worldwide Protein Data Bank")
585
+ expect(subject.publisher).to eq({"name"=>"Worldwide Protein Data Bank"})
586
586
  expect(subject.agency).to eq("crossref")
587
587
  end
588
588
 
@@ -598,7 +598,7 @@ describe Bolognese::Metadata, vcr: true do
598
598
  expect(subject.descriptions).to be_empty
599
599
  expect(subject.dates).to eq([{"date"=>"2015-10-20", "dateType"=>"Issued"}, {"date"=>"2018-10-19T21:13:42Z", "dateType"=>"Updated"}])
600
600
  expect(subject.publication_year).to eq("2015")
601
- expect(subject.publisher).to eq("Public Library of Science (PLoS)")
601
+ expect(subject.publisher).to eq({"name"=>"Public Library of Science (PLoS)"})
602
602
  expect(subject.agency).to eq("crossref")
603
603
  end
604
604
 
@@ -615,7 +615,7 @@ describe Bolognese::Metadata, vcr: true do
615
615
  expect(subject.descriptions).to be_empty
616
616
  expect(subject.dates).to eq([{"date"=>"2017-08-09", "dateType"=>"Issued"}, {"date"=>"2020-06-04T21:31:55Z", "dateType"=>"Updated"}])
617
617
  expect(subject.publication_year).to eq("2017")
618
- expect(subject.publisher).to eq("USDA Forest Service")
618
+ expect(subject.publisher).to eq({"name"=>"USDA Forest Service"})
619
619
  expect(subject.agency).to eq("crossref")
620
620
  end
621
621
 
@@ -631,7 +631,7 @@ describe Bolognese::Metadata, vcr: true do
631
631
  expect(subject.titles).to eq([{"title"=>"Clinical Symptoms and Physical Examinations"}])
632
632
  expect(subject.dates).to eq([{"date"=>"2015", "dateType"=>"Issued"}, {"date"=>"2015-04-14T02:31:13Z", "dateType"=>"Updated"}])
633
633
  expect(subject.publication_year).to eq("2015")
634
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
634
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
635
635
  expect(subject.agency).to eq("crossref")
636
636
  expect(subject.container["type"]).to eq("Book")
637
637
  expect(subject.container["title"]).to eq("Shoulder Stiffness")
@@ -651,7 +651,7 @@ describe Bolognese::Metadata, vcr: true do
651
651
  expect(subject.titles).to eq([{"title"=>"Climate Change and Increasing Risk of Extreme Heat"}])
652
652
  expect(subject.dates).to include({"date"=>"2018", "dateType"=>"Issued"})
653
653
  expect(subject.publication_year).to eq("2018")
654
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
654
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
655
655
  expect(subject.agency).to eq("crossref")
656
656
  expect(subject.container["type"]).to eq("Book Series")
657
657
  expect(subject.container["title"]).to eq("SpringerBriefs in Medical Earth Sciences")
@@ -670,7 +670,7 @@ describe Bolognese::Metadata, vcr: true do
670
670
  expect(subject.titles).to eq([{"title"=>"Unsupervised and Supervised Image Segmentation Using Graph Partitioning"}])
671
671
  expect(subject.dates).to eq([{"date"=>"2012-08-08", "dateType"=>"Issued"}, {"date"=>"2019-07-02T17:17:21Z", "dateType"=>"Updated"}])
672
672
  expect(subject.publication_year).to eq("2012")
673
- expect(subject.publisher).to eq("IGI Global")
673
+ expect(subject.publisher).to eq({"name"=>"IGI Global"})
674
674
  expect(subject.agency).to eq("crossref")
675
675
  expect(subject.container["type"]).to eq("Book")
676
676
  expect(subject.container["title"]).to eq("Graph-Based Methods in Computer Vision")
@@ -690,7 +690,7 @@ describe Bolognese::Metadata, vcr: true do
690
690
  expect(subject.titles).to eq([{"title"=>"Converting the Literature of a Scientific Field to Open Access through Global Collaboration: The Experience of SCOAP3 in Particle Physics"}])
691
691
  expect(subject.dates).to eq([{"date"=>"2018-04-09", "dateType"=>"Issued"}, {"date"=>"2018-04-10T17:58:05Z", "dateType"=>"Updated"}])
692
692
  expect(subject.publication_year).to eq("2018")
693
- expect(subject.publisher).to eq("MDPI AG")
693
+ expect(subject.publisher).to eq({"name"=>"MDPI AG"})
694
694
  expect(subject.agency).to eq("crossref")
695
695
  end
696
696
 
@@ -706,7 +706,7 @@ describe Bolognese::Metadata, vcr: true do
706
706
  expect(subject.titles).to eq([{"title"=>"The Politics of the Past in Early China"}])
707
707
  expect(subject.dates).to eq([{"date"=>"2019-07-01", "dateType"=>"Issued"}, {"date"=>"2021-01-08T19:18:57Z", "dateType"=>"Updated"}])
708
708
  expect(subject.publication_year).to eq("2019")
709
- expect(subject.publisher).to eq("Cambridge University Press (CUP)")
709
+ expect(subject.publisher).to eq({"name"=>"Cambridge University Press (CUP)"})
710
710
  expect(subject.agency).to eq("crossref")
711
711
  expect(subject.date_registered).to eq("2019-07-06T10:19:22Z")
712
712
  end
@@ -724,7 +724,7 @@ describe Bolognese::Metadata, vcr: true do
724
724
  expect(subject.titles).to eq([{"title"=>"Proceedings of the Ocean Drilling Program, 180 Initial Reports"}])
725
725
  expect(subject.dates).to eq([{"date"=>"2000-02-04", "dateType"=>"Issued"}, {"date"=>"2009-02-02T21:19:43Z", "dateType"=>"Updated"}])
726
726
  expect(subject.publication_year).to eq("2000")
727
- expect(subject.publisher).to eq("International Ocean Discovery Program (IODP)")
727
+ expect(subject.publisher).to eq({"name"=>"International Ocean Discovery Program (IODP)"})
728
728
  expect(subject.agency).to eq("crossref")
729
729
  expect(subject.date_registered).to eq("2006-10-17T20:17:44Z")
730
730
  end
@@ -741,7 +741,7 @@ describe Bolognese::Metadata, vcr: true do
741
741
  expect(subject.titles).to eq([{"title"=>"Biogeography of Lanternfishes (Myctophidae) South of 30??S"}])
742
742
  expect(subject.dates).to eq([{"date"=>"1982", "dateType"=>"Issued"}, {"date"=>"2021-02-23T21:58:36Z", "dateType"=>"Updated"}])
743
743
  expect(subject.publication_year).to eq("1982")
744
- expect(subject.publisher).to eq("Wiley")
744
+ expect(subject.publisher).to eq({"name"=>"Wiley"})
745
745
  expect(subject.related_identifiers.length).to eq(44)
746
746
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"10.1016/0031-0182(70)90103-3", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
747
747
  expect(subject.container).to eq("identifier"=>"0066-4634", "identifierType"=>"ISSN", "title"=>"Antarctic Research Series", "type"=>"Book Series", "volume"=>"35")
@@ -762,7 +762,7 @@ describe Bolognese::Metadata, vcr: true do
762
762
  expect(subject.titles).to eq([{"title"=>"Substitutability between organic and conventional poultry products and organic price premiums"}])
763
763
  expect(subject.dates).to include({"date"=>"2018-05", "dateType"=>"Issued"})
764
764
  expect(subject.publication_year).to eq("2018")
765
- expect(subject.publisher).to eq("Franco Angeli")
765
+ expect(subject.publisher).to eq({"name"=>"Franco Angeli"})
766
766
  expect(subject.agency).to eq("mEDRA")
767
767
  end
768
768
 
@@ -779,7 +779,7 @@ describe Bolognese::Metadata, vcr: true do
779
779
  expect(subject.titles).to eq([{"title"=>"Synthesis, Crystal Structure and Theoretical Calculation of a Novel Nickel(II) Complex with Dibromotyrosine and 1,10-Phenanthroline"}])
780
780
  expect(subject.dates).to eq([{"date"=>"2013-10-20", "dateType"=>"Issued"}, {"date"=>"2016-12-15T02:40:52Z", "dateType"=>"Updated"}])
781
781
  expect(subject.publication_year).to eq("2013")
782
- expect(subject.publisher).to eq("Korean Chemical Society")
782
+ expect(subject.publisher).to eq({"name"=>"Korean Chemical Society"})
783
783
  expect(subject.agency).to eq("KISTI")
784
784
  end
785
785
 
@@ -794,7 +794,7 @@ describe Bolognese::Metadata, vcr: true do
794
794
  expect(subject.titles).to eq([{"title"=>"Utilizing the Internet. 12 Series. Future of the Internet."}])
795
795
  expect(subject.dates).to eq([{"date"=>"1997", "dateType"=>"Issued"}, {"date"=>"2020-03-06T06:44:36Z", "dateType"=>"Updated"}])
796
796
  expect(subject.publication_year).to eq("1997")
797
- expect(subject.publisher).to eq("Japan Science and Technology Agency (JST)")
797
+ expect(subject.publisher).to eq({"name"=>"Japan Science and Technology Agency (JST)"})
798
798
  expect(subject.agency).to eq("JaLC")
799
799
  end
800
800
 
@@ -810,7 +810,7 @@ describe Bolognese::Metadata, vcr: true do
810
810
  expect(subject.titles).to eq([{"title"=>"Scientific opinion on the safety of green tea catechins"}])
811
811
  expect(subject.dates).to include({"date"=>"2018-04", "dateType"=>"Issued"})
812
812
  expect(subject.publication_year).to eq("2018")
813
- expect(subject.publisher).to eq("Wiley")
813
+ expect(subject.publisher).to eq({"name"=>"Wiley"})
814
814
  expect(subject.agency).to eq("OP")
815
815
  end
816
816
 
@@ -825,7 +825,7 @@ describe Bolognese::Metadata, vcr: true do
825
825
  expect(subject.titles).to eq([{"title"=>"Distances, absence, proximit??s et pr??sences??: des concepts en d??placement"}, {"title"=>"Distance(s), proximity and presence(s): evolving concepts"}])
826
826
  expect(subject.dates).to include({"date"=>"2014-12-14", "dateType"=>"Issued"})
827
827
  expect(subject.publication_year).to eq("2014")
828
- expect(subject.publisher).to eq("OpenEdition")
828
+ expect(subject.publisher).to eq({"name"=>"OpenEdition"})
829
829
  expect(subject.agency).to eq("crossref")
830
830
  expect(subject.date_registered).to be_nil
831
831
  end
@@ -860,7 +860,7 @@ describe Bolognese::Metadata, vcr: true do
860
860
  expect(subject.titles).to eq([{"title"=>"Finding function: evaluation methods for functional genomic data"}])
861
861
  expect(subject.dates).to include({"date"=>"2006-07-25", "dateType"=>"Issued"})
862
862
  expect(subject.publication_year).to eq("2006")
863
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
863
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
864
864
  expect(subject.agency).to eq("crossref")
865
865
  expect(subject.date_registered).to eq("2020-04-20T16:04:45Z")
866
866
  end
@@ -877,7 +877,7 @@ describe Bolognese::Metadata, vcr: true do
877
877
  expect(subject.titles).to eq([{"title"=>"Sexual conflict and correlated evolution between male persistence and female resistance traits in the seed beetle <i>Callosobruchus maculatus</i>"}])
878
878
  expect(subject.dates).to include({"date"=>"2017-05-24", "dateType"=>"Issued"})
879
879
  expect(subject.publication_year).to eq("2017")
880
- expect(subject.publisher).to eq("The Royal Society")
880
+ expect(subject.publisher).to eq({"name"=>"The Royal Society"})
881
881
  expect(subject.agency).to eq("crossref")
882
882
  expect(subject.date_registered).to eq("2021-02-14T10:36:45Z")
883
883
  end
@@ -895,7 +895,7 @@ describe Bolognese::Metadata, vcr: true do
895
895
  expect(subject.rights_list).to eq([{"rightsUri"=>"http://doi.wiley.com/10.1002/tdm_license_1.1"}])
896
896
  expect(subject.dates).to eq([{"date"=>"2010-12", "dateType"=>"Issued"}, {"date"=>"2021-02-04T22:37:42Z", "dateType"=>"Updated"}])
897
897
  expect(subject.publication_year).to eq("2010")
898
- expect(subject.publisher).to eq("Wiley")
898
+ expect(subject.publisher).to eq({"name"=>"Wiley"})
899
899
  end
900
900
 
901
901
  it "invalid date" do
@@ -916,7 +916,7 @@ describe Bolognese::Metadata, vcr: true do
916
916
  expect(subject.titles).to eq([{"title"=>"Silver-Catalyzed [3+3] Annulation of Glycine Imino Esters with Seyferth???Gilbert Reagent To Access Tetrahydro-1,2,4-triazinecarboxylate Esters"}])
917
917
  expect(subject.dates).to eq([{"date"=>"2020-04-08", "dateType"=>"Issued"}, {"date"=>"2020-06-16T23:13:36Z", "dateType"=>"Updated"}])
918
918
  expect(subject.publication_year).to eq("2020")
919
- expect(subject.publisher).to eq("Georg Thieme Verlag KG")
919
+ expect(subject.publisher).to eq({"name"=>"Georg Thieme Verlag KG"})
920
920
  end
921
921
 
922
922
  it "journal article with" do
@@ -932,7 +932,7 @@ describe Bolognese::Metadata, vcr: true do
932
932
  expect(subject.rights_list).to eq([{"rightsUri"=>"http://doi.wiley.com/10.1002/tdm_license_1.1"}, {"rightsUri"=>"http://onlinelibrary.wiley.com/termsAndConditions#vor"}])
933
933
  expect(subject.dates).to include({"date"=>"2018-05", "dateType"=>"Issued"})
934
934
  expect(subject.publication_year).to eq("2018")
935
- expect(subject.publisher).to eq("Wiley")
935
+ expect(subject.publisher).to eq({"name"=>"Wiley"})
936
936
  expect(subject.related_identifiers.length).to eq(49)
937
937
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"0028-646X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
938
938
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1002/pmic.201400530", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
@@ -953,7 +953,7 @@ describe Bolognese::Metadata, vcr: true do
953
953
  expect(subject.titles).to eq([{"title"=>"The impact of structural variation on human gene expression"}])
954
954
  expect(subject.dates).to include({"date"=>"2017-04-03", "dateType"=>"Issued"})
955
955
  expect(subject.publication_year).to eq("2017")
956
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
956
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
957
957
  expect(subject.agency).to eq("crossref")
958
958
  expect(subject.date_registered).to eq("2019-11-02T09:30:06Z")
959
959
  end
@@ -970,7 +970,7 @@ describe Bolognese::Metadata, vcr: true do
970
970
  expect(subject.titles).to eq([{"title"=>"Workers and the City: Rethinking the Geographies of Power in Post-socialist Urbanisation"}])
971
971
  expect(subject.dates).to include({"date"=>"2011-12-22", "dateType"=>"Issued"})
972
972
  expect(subject.publication_year).to eq("2011")
973
- expect(subject.publisher).to eq("SAGE Publications")
973
+ expect(subject.publisher).to eq({"name"=>"SAGE Publications"})
974
974
  expect(subject.agency).to eq("crossref")
975
975
  expect(subject.date_registered).to eq("2021-05-16T02:02:38Z")
976
976
  end
@@ -987,7 +987,7 @@ describe Bolognese::Metadata, vcr: true do
987
987
  expect(subject.titles).to eq([{"title"=>"Log-Domain Arithmetic for High-Speed Fuzzy Control on a Field-Programmable Gate Array"}])
988
988
  expect(subject.dates).to include({"date"=>"2013", "dateType"=>"Issued"})
989
989
  expect(subject.publication_year).to eq("2013")
990
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
990
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
991
991
  expect(subject.container).to eq("identifier"=>"1860-0808", "identifierType"=>"ISSN", "title"=>"Studies in Fuzziness and Soft Computing", "type"=>"Book Series")
992
992
  expect(subject.agency).to eq("crossref")
993
993
  expect(subject.date_registered).to eq("2012-10-31T16:15:44Z")
@@ -1005,7 +1005,7 @@ describe Bolognese::Metadata, vcr: true do
1005
1005
  expect(subject.titles).to eq([{"title"=>"Prediction of a Large-Gap and Switchable Kane-Mele Quantum Spin Hall Insulator"}])
1006
1006
  expect(subject.dates).to include({"date"=>"2018-03-13", "dateType"=>"Issued"})
1007
1007
  expect(subject.publication_year).to eq("2018")
1008
- expect(subject.publisher).to eq("American Physical Society (APS)")
1008
+ expect(subject.publisher).to eq({"name"=>"American Physical Society (APS)"})
1009
1009
  expect(subject.container).to eq("firstPage" => "117701", "identifier"=>"1079-7114", "identifierType"=>"ISSN", "issue"=>"11", "title"=>"Physical Review Letters", "type"=>"Journal", "volume"=>"120")
1010
1010
  expect(subject.agency).to eq("crossref")
1011
1011
  expect(subject.date_registered).to eq("2018-03-13T15:18:48Z")
@@ -1028,7 +1028,7 @@ describe Bolognese::Metadata, vcr: true do
1028
1028
  expect(subject.descriptions.first["description"]).to start_with("Abstract. During the early last glacial termination")
1029
1029
  expect(subject.dates).to include({"date"=>"2020-07-28", "dateType"=>"Issued"})
1030
1030
  expect(subject.publication_year).to eq("2020")
1031
- expect(subject.publisher).to eq("Copernicus GmbH")
1031
+ expect(subject.publisher).to eq({"name"=>"Copernicus GmbH"})
1032
1032
  expect(subject.agency).to eq("crossref")
1033
1033
  end
1034
1034
 
@@ -1048,7 +1048,7 @@ describe Bolognese::Metadata, vcr: true do
1048
1048
  expect(subject.descriptions.first["description"]).to start_with("This chapter explores the nature of the connections")
1049
1049
  expect(subject.dates).to include({"date"=>"2018-04-05", "dateType"=>"Issued"})
1050
1050
  expect(subject.publication_year).to eq("2018")
1051
- expect(subject.publisher).to eq("Oxford University Press (OUP)")
1051
+ expect(subject.publisher).to eq({"name"=>"Oxford University Press (OUP)"})
1052
1052
  expect(subject.agency).to eq("crossref")
1053
1053
  end
1054
1054
 
@@ -1067,7 +1067,7 @@ describe Bolognese::Metadata, vcr: true do
1067
1067
  expect(subject.descriptions).to be_empty
1068
1068
  expect(subject.dates).to include({"date"=>"2010-01-01", "dateType"=>"Issued"})
1069
1069
  expect(subject.publication_year).to eq("2010")
1070
- expect(subject.publisher).to eq("Office of Scientific and Technical Information (OSTI)")
1070
+ expect(subject.publisher).to eq({"name"=>"Office of Scientific and Technical Information (OSTI)"})
1071
1071
  expect(subject.agency).to eq("crossref")
1072
1072
  end
1073
1073
 
@@ -1082,7 +1082,7 @@ describe Bolognese::Metadata, vcr: true do
1082
1082
  expect(subject.titles).to eq([{"title"=>":(unav)"}])
1083
1083
  expect(subject.dates).to eq([{"date"=>"2018-10", "dateType"=>"Issued"}, {"date"=>"2018-10-03T12:09:12Z", "dateType"=>"Updated"}])
1084
1084
  expect(subject.publication_year).to eq("2018")
1085
- expect(subject.publisher).to eq("Baskent University")
1085
+ expect(subject.publisher).to eq({"name"=>"Baskent University"})
1086
1086
  expect(subject.related_identifiers.length).to eq(1)
1087
1087
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"2146-8427", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
1088
1088
  expect(subject.container).to eq("identifier"=>"2146-8427", "identifierType"=>"ISSN", "issue"=>"5", "title"=>"Experimental and Clinical Transplantation", "type"=>"Journal", "volume"=>"16")
@@ -18,6 +18,7 @@ describe Bolognese::Metadata, vcr: true do
18
18
  expect(subject.valid?).to be true
19
19
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"BlogPosting", "resourceTypeGeneral"=>"Text", "ris"=>"RPRT", "schemaOrg"=>"ScholarlyArticle")
20
20
  expect(subject.creators).to eq([{"type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
21
+ expect(subject.publisher).to eq({"name"=>"DataCite"})
21
22
  expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
22
23
  expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.5438/4k3m-nyvg", "identifierType"=>"DOI"}, {"identifier"=>"MS-49-3632-5083", "identifierType"=>"Local accession number"}])
23
24
  expect(subject.dates).to eq([{"date"=>"2016-12-20", "dateType"=>"Created"}, {"date"=>"2016-12-20", "dateType"=>"Issued"}, {"date"=>"2016-12-20", "dateType"=>"Updated"}])
@@ -65,6 +66,7 @@ describe Bolognese::Metadata, vcr: true do
65
66
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article", "resourceTypeGeneral"=>"Software", "ris"=>"COMP", "schemaOrg"=>"SoftwareSourceCode")
66
67
  expect(subject.creators.length).to eq(2)
67
68
  expect(subject.creators.first).to eq("affiliation"=>[{"name"=>"University of Washington"}], "familyName"=>"Vanderplas", "givenName"=>"Jake", "name"=>"Vanderplas, Jake", "nameIdentifiers"=>[], "nameType"=>"Personal")
69
+ expect(subject.publisher).to eq({"name"=>"Zenodo"})
68
70
  expect(subject.titles).to eq([{"title"=>"Supersmoother: Minor Bug Fix Release"}])
69
71
  expect(subject.id).to eq("https://doi.org/10.5281/zenodo.28518")
70
72
  expect(subject.identifiers).to eq([{"identifier"=>"https://zenodo.org/record/28518", "identifierType"=>"URL"}])