bolognese 1.10.0 → 2.2.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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +0 -14
  3. data/.github/workflows/ci.yml +1 -1
  4. data/.github/workflows/release.yml +2 -12
  5. data/CHANGELOG.md +2 -2
  6. data/Gemfile.lock +69 -53
  7. data/bolognese.gemspec +6 -4
  8. data/lib/bolognese/author_utils.rb +17 -4
  9. data/lib/bolognese/datacite_utils.rb +18 -10
  10. data/lib/bolognese/metadata.rb +1 -1
  11. data/lib/bolognese/metadata_utils.rb +2 -2
  12. data/lib/bolognese/readers/bibtex_reader.rb +2 -2
  13. data/lib/bolognese/readers/citeproc_reader.rb +1 -1
  14. data/lib/bolognese/readers/codemeta_reader.rb +2 -2
  15. data/lib/bolognese/readers/crosscite_reader.rb +4 -1
  16. data/lib/bolognese/readers/crossref_reader.rb +3 -4
  17. data/lib/bolognese/readers/datacite_json_reader.rb +4 -1
  18. data/lib/bolognese/readers/datacite_reader.rb +25 -9
  19. data/lib/bolognese/readers/npm_reader.rb +1 -1
  20. data/lib/bolognese/readers/ris_reader.rb +2 -2
  21. data/lib/bolognese/readers/schema_org_reader.rb +6 -2
  22. data/lib/bolognese/utils.rb +24 -7
  23. data/lib/bolognese/version.rb +1 -1
  24. data/lib/bolognese/writers/bibtex_writer.rb +1 -1
  25. data/lib/bolognese/writers/codemeta_writer.rb +1 -1
  26. data/lib/bolognese/writers/csv_writer.rb +1 -1
  27. data/lib/bolognese/writers/datacite_json_writer.rb +3 -1
  28. data/lib/bolognese/writers/jats_writer.rb +6 -3
  29. data/lib/bolognese/writers/ris_writer.rb +2 -2
  30. data/lib/bolognese/writers/schema_org_writer.rb +2 -2
  31. data/resources/kernel-4/include/datacite-relationType-v4.xsd +2 -0
  32. data/resources/kernel-4/include/datacite-resourceType-v4.xsd +2 -0
  33. data/resources/kernel-4/metadata.xsd +11 -7
  34. data/resources/kernel-4.5/include/datacite-contributorType-v4.xsd +35 -0
  35. data/resources/kernel-4.5/include/datacite-dateType-v4.xsd +25 -0
  36. data/resources/kernel-4.5/include/datacite-descriptionType-v4.xsd +19 -0
  37. data/resources/kernel-4.5/include/datacite-funderIdentifierType-v4.xsd +16 -0
  38. data/resources/kernel-4.5/include/datacite-nameType-v4.xsd +10 -0
  39. data/resources/kernel-4.5/include/datacite-numberType-v4.xsd +12 -0
  40. data/resources/kernel-4.5/include/datacite-relatedIdentifierType-v4.xsd +34 -0
  41. data/resources/kernel-4.5/include/datacite-relationType-v4.xsd +53 -0
  42. data/resources/kernel-4.5/include/datacite-resourceType-v4.xsd +45 -0
  43. data/resources/kernel-4.5/include/datacite-titleType-v4.xsd +14 -0
  44. data/resources/kernel-4.5/include/xml.xsd +286 -0
  45. data/resources/kernel-4.5/metadata.xsd +711 -0
  46. data/spec/author_utils_spec.rb +59 -6
  47. data/spec/datacite_utils_spec.rb +5 -1
  48. data/spec/fixtures/citeproc.json +4 -2
  49. data/spec/fixtures/datacite-example-ROR-nameIdentifiers.xml +24 -1
  50. data/spec/fixtures/datacite-example-full-v4.5.xml +255 -0
  51. data/spec/fixtures/datacite-example-relateditems-with-attributes.xml +61 -0
  52. data/spec/fixtures/datacite-seriesinformation.xml +7 -2
  53. data/spec/fixtures/datacite-xml-lang.xml +1 -1
  54. data/spec/fixtures/datacite.json +9 -3
  55. data/spec/fixtures/datacite_blank_name_identifier.xml +22 -0
  56. data/spec/fixtures/datacite_blank_publisher.xml +18 -0
  57. data/spec/fixtures/datacite_journal_article.xml +64 -0
  58. data/spec/fixtures/schema_org.json +1 -0
  59. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_subjects/insert.yml +32 -14
  60. data/spec/readers/bibtex_reader_spec.rb +2 -0
  61. data/spec/readers/citeproc_reader_spec.rb +3 -0
  62. data/spec/readers/codemeta_reader_spec.rb +4 -4
  63. data/spec/readers/crosscite_reader_spec.rb +2 -0
  64. data/spec/readers/crossref_reader_spec.rb +41 -41
  65. data/spec/readers/datacite_json_reader_spec.rb +2 -0
  66. data/spec/readers/datacite_reader_spec.rb +168 -44
  67. data/spec/readers/npm_reader_spec.rb +2 -0
  68. data/spec/readers/ris_reader_spec.rb +3 -0
  69. data/spec/readers/schema_org_reader_spec.rb +11 -11
  70. data/spec/spec_helper.rb +1 -0
  71. data/spec/writers/citation_writer_spec.rb +9 -0
  72. data/spec/writers/crosscite_writer_spec.rb +7 -0
  73. data/spec/writers/datacite_json_writer_spec.rb +22 -0
  74. data/spec/writers/datacite_writer_spec.rb +84 -5
  75. data/spec/writers/jats_writer_spec.rb +15 -0
  76. data/spec/writers/rdf_xml_writer_spec.rb +7 -0
  77. data/spec/writers/schema_org_writer_spec.rb +13 -0
  78. data/spec/writers/turtle_writer_spec.rb +18 -0
  79. metadata +59 -34
@@ -10,6 +10,8 @@ describe Bolognese::Metadata, vcr: true do
10
10
  ttl = subject.turtle.split("\n")
11
11
  expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
12
12
  expect(ttl[2]).to eq("<https://doi.org/10.7554/elife.01567> a schema:ScholarlyArticle;")
13
+ publisher_line = ttl.find_index(' schema:publisher [') + 2
14
+ expect(ttl[publisher_line]).to eq(" schema:name \"{eLife} Sciences Organisation, Ltd.\"")
13
15
  end
14
16
 
15
17
  it "Dataset" do
@@ -19,6 +21,8 @@ describe Bolognese::Metadata, vcr: true do
19
21
  ttl = subject.turtle.split("\n")
20
22
  expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
21
23
  expect(ttl[2]).to eq("<https://doi.org/10.5061/dryad.8515> a schema:Dataset;")
24
+ publisher_line = ttl.find_index(' schema:publisher [') + 2
25
+ expect(ttl[publisher_line]).to eq(" schema:name \"Dryad\"")
22
26
  end
23
27
 
24
28
  it "BlogPosting" do
@@ -28,6 +32,8 @@ describe Bolognese::Metadata, vcr: true do
28
32
  ttl = subject.turtle.split("\n")
29
33
  expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
30
34
  expect(ttl[2]).to eq("<https://doi.org/10.5438/4k3m-nyvg> a schema:ScholarlyArticle;")
35
+ publisher_line = ttl.find_index(' schema:publisher [') + 2
36
+ expect(ttl[publisher_line]).to eq(" schema:name \"DataCite\"")
31
37
  end
32
38
 
33
39
  it "BlogPosting Citeproc JSON" do
@@ -36,6 +42,8 @@ describe Bolognese::Metadata, vcr: true do
36
42
  ttl = subject.turtle.split("\n")
37
43
  expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
38
44
  expect(ttl[2]).to eq("<https://doi.org/10.5438/4k3m-nyvg> a schema:BlogPosting;")
45
+ publisher_line = ttl.find_index(' schema:publisher [') + 2
46
+ expect(ttl[publisher_line]).to eq(" schema:name \"DataCite\"")
39
47
  end
40
48
 
41
49
  it "BlogPosting DataCite JSON" do
@@ -44,6 +52,8 @@ describe Bolognese::Metadata, vcr: true do
44
52
  ttl = subject.turtle.split("\n")
45
53
  expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
46
54
  expect(ttl[2]).to eq("<https://doi.org/10.5438/4k3m-nyvg> a schema:ScholarlyArticle;")
55
+ publisher_line = ttl.find_index(' schema:publisher [') + 2
56
+ expect(ttl[publisher_line]).to eq(" schema:name \"DataCite\"")
47
57
  end
48
58
 
49
59
  it "BlogPosting schema.org" do
@@ -53,6 +63,8 @@ describe Bolognese::Metadata, vcr: true do
53
63
  ttl = subject.turtle.split("\n")
54
64
  expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
55
65
  expect(ttl[2]).to eq("<https://doi.org/10.5438/4k3m-nyvg> a schema:BlogPosting;")
66
+ publisher_line = ttl.find_index(' schema:publisher [') + 2
67
+ expect(ttl[publisher_line]).to eq(" schema:name \"DataCite\"")
56
68
  end
57
69
 
58
70
  it "DataONE" do
@@ -61,6 +73,8 @@ describe Bolognese::Metadata, vcr: true do
61
73
  ttl = subject.turtle.split("\n")
62
74
  expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
63
75
  expect(ttl[2]).to eq("<https://doi.org/10.5063/f1m61h5x> a schema:SoftwareSourceCode;")
76
+ publisher_line = ttl.find_index(' schema:publisher [') + 2
77
+ expect(ttl[publisher_line]).to eq(" schema:name \"https://cran.r-project.org\"")
64
78
  end
65
79
 
66
80
  it "journal article" do
@@ -70,6 +84,8 @@ describe Bolognese::Metadata, vcr: true do
70
84
  ttl = subject.turtle.split("\n")
71
85
  expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
72
86
  expect(ttl[2]).to eq("<https://doi.org/10.7554/elife.01567> a schema:ScholarlyArticle;")
87
+ publisher_line = ttl.find_index(' schema:publisher [') + 2
88
+ expect(ttl[publisher_line]).to eq(" schema:name \"eLife Sciences Publications, Ltd\"")
73
89
  end
74
90
 
75
91
  it "with pages" do
@@ -79,6 +95,8 @@ describe Bolognese::Metadata, vcr: true do
79
95
  ttl = subject.turtle.split("\n")
80
96
  expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
81
97
  expect(ttl[2]).to eq("<https://doi.org/10.1155/2012/291294> a schema:ScholarlyArticle;")
98
+ publisher_line = ttl.find_index(' schema:publisher [') + 2
99
+ expect(ttl[publisher_line]).to eq(" schema:name \"Hindawi Limited\"")
82
100
  end
83
101
  end
84
102
  end
metadata CHANGED
@@ -1,69 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bolognese
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-14 00:00:00.000000000 Z
11
+ date: 2024-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 4.9.4
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '5'
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 4.9.4
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '5'
33
- - !ruby/object:Gem::Dependency
34
- name: faraday
35
15
  requirement: !ruby/object:Gem::Requirement
36
16
  requirements:
37
17
  - - "~>"
38
18
  - !ruby/object:Gem::Version
39
- version: 0.17.3
19
+ version: '5.0'
40
20
  type: :runtime
41
21
  prerelease: false
42
22
  version_requirements: !ruby/object:Gem::Requirement
43
23
  requirements:
44
24
  - - "~>"
45
25
  - !ruby/object:Gem::Version
46
- version: 0.17.3
26
+ version: '5.0'
47
27
  - !ruby/object:Gem::Dependency
48
28
  name: nokogiri
49
29
  requirement: !ruby/object:Gem::Requirement
50
30
  requirements:
51
- - - ">="
31
+ - - "~>"
52
32
  - !ruby/object:Gem::Version
53
- version: 1.13.2
54
- - - "<"
33
+ version: '1.16'
34
+ - - ">="
55
35
  - !ruby/object:Gem::Version
56
- version: '1.14'
36
+ version: 1.16.2
57
37
  type: :runtime
58
38
  prerelease: false
59
39
  version_requirements: !ruby/object:Gem::Requirement
60
40
  requirements:
61
- - - ">="
41
+ - - "~>"
62
42
  - !ruby/object:Gem::Version
63
- version: 1.13.2
64
- - - "<"
43
+ version: '1.16'
44
+ - - ">="
65
45
  - !ruby/object:Gem::Version
66
- version: '1.14'
46
+ version: 1.16.2
67
47
  - !ruby/object:Gem::Dependency
68
48
  name: loofah
69
49
  requirement: !ruby/object:Gem::Requirement
@@ -556,6 +536,34 @@ dependencies:
556
536
  - - "<"
557
537
  - !ruby/object:Gem::Version
558
538
  version: 2.0.0
539
+ - !ruby/object:Gem::Dependency
540
+ name: byebug
541
+ requirement: !ruby/object:Gem::Requirement
542
+ requirements:
543
+ - - ">="
544
+ - !ruby/object:Gem::Version
545
+ version: '0'
546
+ type: :development
547
+ prerelease: false
548
+ version_requirements: !ruby/object:Gem::Requirement
549
+ requirements:
550
+ - - ">="
551
+ - !ruby/object:Gem::Version
552
+ version: '0'
553
+ - !ruby/object:Gem::Dependency
554
+ name: json-canonicalization
555
+ requirement: !ruby/object:Gem::Requirement
556
+ requirements:
557
+ - - '='
558
+ - !ruby/object:Gem::Version
559
+ version: 0.3.1
560
+ type: :development
561
+ prerelease: false
562
+ version_requirements: !ruby/object:Gem::Requirement
563
+ requirements:
564
+ - - '='
565
+ - !ruby/object:Gem::Version
566
+ version: 0.3.1
559
567
  description: Ruby gem and command-line utility for conversion of DOI metadata from
560
568
  and to different metadata formats, including schema.org.
561
569
  email: mfenner@datacite.org
@@ -734,6 +742,18 @@ files:
734
742
  - resources/kernel-4.4/include/datacite-titleType-v4.xsd
735
743
  - resources/kernel-4.4/include/xml.xsd
736
744
  - resources/kernel-4.4/metadata.xsd
745
+ - resources/kernel-4.5/include/datacite-contributorType-v4.xsd
746
+ - resources/kernel-4.5/include/datacite-dateType-v4.xsd
747
+ - resources/kernel-4.5/include/datacite-descriptionType-v4.xsd
748
+ - resources/kernel-4.5/include/datacite-funderIdentifierType-v4.xsd
749
+ - resources/kernel-4.5/include/datacite-nameType-v4.xsd
750
+ - resources/kernel-4.5/include/datacite-numberType-v4.xsd
751
+ - resources/kernel-4.5/include/datacite-relatedIdentifierType-v4.xsd
752
+ - resources/kernel-4.5/include/datacite-relationType-v4.xsd
753
+ - resources/kernel-4.5/include/datacite-resourceType-v4.xsd
754
+ - resources/kernel-4.5/include/datacite-titleType-v4.xsd
755
+ - resources/kernel-4.5/include/xml.xsd
756
+ - resources/kernel-4.5/metadata.xsd
737
757
  - resources/kernel-4/include/datacite-contributorType-v4.xsd
738
758
  - resources/kernel-4/include/datacite-dateType-v4.xsd
739
759
  - resources/kernel-4/include/datacite-descriptionType-v4.xsd
@@ -781,10 +801,12 @@ files:
781
801
  - spec/fixtures/datacite-example-dissertation-v4.4.xml
782
802
  - spec/fixtures/datacite-example-escaped-text.xml
783
803
  - spec/fixtures/datacite-example-full-v4.4.xml
804
+ - spec/fixtures/datacite-example-full-v4.5.xml
784
805
  - spec/fixtures/datacite-example-geolocation-2.xml
785
806
  - spec/fixtures/datacite-example-geolocation.xml
786
807
  - spec/fixtures/datacite-example-nameIdentifier-with-schemeURI.xml
787
808
  - spec/fixtures/datacite-example-polygon-v4.1.xml
809
+ - spec/fixtures/datacite-example-relateditems-with-attributes.xml
788
810
  - spec/fixtures/datacite-example-relateditems.xml
789
811
  - spec/fixtures/datacite-example-xs-string.xml
790
812
  - spec/fixtures/datacite-formats-with-xs.xml
@@ -800,7 +822,10 @@ files:
800
822
  - spec/fixtures/datacite-xml-lang.xml
801
823
  - spec/fixtures/datacite.json
802
824
  - spec/fixtures/datacite.xml
825
+ - spec/fixtures/datacite_blank_name_identifier.xml
826
+ - spec/fixtures/datacite_blank_publisher.xml
803
827
  - spec/fixtures/datacite_dataset.xml
828
+ - spec/fixtures/datacite_journal_article.xml
804
829
  - spec/fixtures/datacite_malformed_creator.xml
805
830
  - spec/fixtures/datacite_missing_creator.xml
806
831
  - spec/fixtures/datacite_schema_3.xml
@@ -1291,14 +1316,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1291
1316
  requirements:
1292
1317
  - - ">="
1293
1318
  - !ruby/object:Gem::Version
1294
- version: '2.3'
1319
+ version: '3.0'
1295
1320
  required_rubygems_version: !ruby/object:Gem::Requirement
1296
1321
  requirements:
1297
1322
  - - ">="
1298
1323
  - !ruby/object:Gem::Version
1299
1324
  version: '0'
1300
1325
  requirements: []
1301
- rubygems_version: 3.0.3.1
1326
+ rubygems_version: 3.3.26
1302
1327
  signing_key:
1303
1328
  specification_version: 4
1304
1329
  summary: Ruby client library for conversion of DOI Metadata