bolognese 0.11.3 → 0.11.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/lib/bolognese/readers/datacite_reader.rb +7 -2
- data/lib/bolognese/utils.rb +1 -1
- data/lib/bolognese/version.rb +1 -1
- data/spec/fixtures/ns0.xml +2 -0
- data/spec/readers/datacite_reader_spec.rb +18 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 30348e9164a584a0cdd9bb4a80ab50907e78f10e56a8213d736c03052dbc81b9
|
4
|
+
data.tar.gz: 026581048dea86848ef44e43b04dc891b901f39cb554d24cce95c614b8a5f3d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbb748a13ce8b8ea3daf1ee0f57458c9e2904b39c639a4959a5a48bfbde7f5c5c26e421f815a5a997cdba2465bc7a096f47abd8175f0d1b4f00325900d9c5185
|
7
|
+
data.tar.gz: e71415a8a4e291a6e87150f88d4e976a1f00d94b7b67d7bc7faa7b3ce97e08208e7aaa6c9283b07cbad86465c0b82ebd9ec85155e8f2567f1fb7d5c34c93a29b
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
bolognese (0.11.
|
4
|
+
bolognese (0.11.4)
|
5
5
|
activesupport (>= 4.2.5, < 6)
|
6
6
|
benchmark_methods (~> 0.7)
|
7
7
|
bibtex-ruby (~> 4.1)
|
@@ -78,7 +78,7 @@ GEM
|
|
78
78
|
loofah (2.2.2)
|
79
79
|
crass (~> 1.0.2)
|
80
80
|
nokogiri (>= 1.5.9)
|
81
|
-
maremma (4.
|
81
|
+
maremma (4.1)
|
82
82
|
activesupport (>= 4.2.5, < 6)
|
83
83
|
addressable (>= 2.3.6)
|
84
84
|
builder (~> 3.2, >= 3.2.2)
|
@@ -45,8 +45,13 @@ module Bolognese
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def read_datacite(string: nil, **options)
|
48
|
+
doc = Nokogiri::XML(string, nil, 'UTF-8', &:noblanks)
|
49
|
+
ns = doc.collect_namespaces.find { |k, v| v.start_with?("http://datacite.org/schema/kernel") }
|
50
|
+
schema_version = Array.wrap(ns).last || "http://datacite.org/schema/kernel-4"
|
51
|
+
doc.remove_namespaces!
|
52
|
+
string = doc.to_xml(:indent => 2)
|
53
|
+
|
48
54
|
meta = Maremma.from_xml(string).to_h.fetch("resource", {})
|
49
|
-
schema_version = meta.fetch("xmlns", nil)
|
50
55
|
|
51
56
|
# validate only when option is set, as this step is expensive and
|
52
57
|
# not needed if XML comes from DataCite MDS
|
@@ -69,7 +74,7 @@ module Bolognese
|
|
69
74
|
if r.is_a?(String)
|
70
75
|
sanitize(r)
|
71
76
|
else
|
72
|
-
{ "title_type" => r["titleType"], "lang" => r["
|
77
|
+
{ "title_type" => r["titleType"], "lang" => r["lang"], "text" => sanitize(r["__content__"]) }.compact
|
73
78
|
end
|
74
79
|
end.unwrap
|
75
80
|
|
data/lib/bolognese/utils.rb
CHANGED
@@ -354,7 +354,7 @@ module Bolognese
|
|
354
354
|
"ris"
|
355
355
|
elsif options[:ext] == ".xml" && Maremma.from_xml(string).to_h.dig("doi_records", "doi_record", "crossref")
|
356
356
|
"crossref"
|
357
|
-
elsif options[:ext] == ".xml" &&
|
357
|
+
elsif options[:ext] == ".xml" && Nokogiri::XML(string, nil, 'UTF-8', &:noblanks).collect_namespaces.find { |k, v| v.start_with?("http://datacite.org/schema/kernel") }
|
358
358
|
"datacite"
|
359
359
|
elsif options[:ext] == ".json" && Maremma.from_json(string).to_h.dig("ris_type")
|
360
360
|
"crosscite"
|
data/lib/bolognese/version.rb
CHANGED
@@ -0,0 +1,2 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<ns0:resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://datacite.org/schema/kernel-2.2" xsi:schemaLocation="http://datacite.org/schema/kernel-2.2 http://schema.datacite.org/meta/kernel-2.2/metadata.xsd"><ns0:identifier identifierType="DOI">10.4231/D38G8FK8B</ns0:identifier><ns0:creators><ns0:creator> <ns0:creatorName>Patiño, Carlos</ns0:creatorName></ns0:creator><ns0:creator> <ns0:creatorName>Alzate-Vargas, Lorena</ns0:creatorName></ns0:creator><ns0:creator> <ns0:creatorName>Li, Chunyu</ns0:creatorName></ns0:creator><ns0:creator> <ns0:creatorName>Haley, Benjamin</ns0:creatorName></ns0:creator><ns0:creator> <ns0:creatorName>Strachan, Alejandro</ns0:creatorName></ns0:creator></ns0:creators><ns0:titles> <ns0:title>LAMMPS Data-File Generator</ns0:title></ns0:titles><ns0:publisher>nanoHUB</ns0:publisher><ns0:publicationYear>2018</ns0:publicationYear><ns0:dates> <ns0:date dateType="Valid">2018-07-18</ns0:date> <ns0:date dateType="Accepted">2018-07-18</ns0:date></ns0:dates><ns0:language>en</ns0:language><ns0:resourceType resourceTypeGeneral="Software">Simulation Tool</ns0:resourceType><ns0:version>1.5.2</ns0:version><ns0:descriptions> <ns0:description descriptionType="Other">This tool generates all necessary input files for LAMMPS simulations of molecular systems starting with an atomistic structure.</ns0:description></ns0:descriptions></ns0:resource>
|
@@ -354,6 +354,24 @@ describe Bolognese::Metadata, vcr: true do
|
|
354
354
|
expect(subject.service_provider).to eq("DataCite")
|
355
355
|
end
|
356
356
|
|
357
|
+
it "namespaced xml from string" do
|
358
|
+
input = fixture_path + "ns0.xml"
|
359
|
+
subject = Bolognese::Metadata.new(input: input)
|
360
|
+
expect(subject.valid?).to be true
|
361
|
+
expect(subject.identifier).to eq("https://doi.org/10.4231/d38g8fk8b")
|
362
|
+
expect(subject.type).to eq("SoftwareSourceCode")
|
363
|
+
expect(subject.additional_type).to eq("Simulation Tool")
|
364
|
+
expect(subject.resource_type_general).to eq("Software")
|
365
|
+
expect(subject.author.length).to eq(5)
|
366
|
+
expect(subject.author.first).to eq("type"=>"Person", "name"=>"Carlos PatiñO", "givenName"=>"Carlos", "familyName"=>"PatiñO")
|
367
|
+
expect(subject.title).to eq("LAMMPS Data-File Generator")
|
368
|
+
expect(subject.date_published).to eq("2018")
|
369
|
+
expect(subject.publication_year).to eq(2018)
|
370
|
+
expect(subject.publisher).to eq("nanoHUB")
|
371
|
+
expect(subject.service_provider).to eq("DataCite")
|
372
|
+
expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.2")
|
373
|
+
end
|
374
|
+
|
357
375
|
it "doi with + sign" do
|
358
376
|
input = "10.5067/terra+aqua/ceres/cldtyphist_l3.004"
|
359
377
|
subject = Bolognese::Metadata.new(input: input)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bolognese
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.4
|
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-07-
|
11
|
+
date: 2018-07-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: maremma
|
@@ -606,6 +606,7 @@ files:
|
|
606
606
|
- spec/fixtures/datacite_software_overlapping_keys.json
|
607
607
|
- spec/fixtures/gtex.xml
|
608
608
|
- spec/fixtures/maremma/codemeta.json
|
609
|
+
- spec/fixtures/ns0.xml
|
609
610
|
- spec/fixtures/pure.bib
|
610
611
|
- spec/fixtures/pure.ris
|
611
612
|
- spec/fixtures/schema_org.json
|