dwc-archive 0.9.6 → 1.1.1
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.
- checksums.yaml +7 -0
- data/.gitignore +31 -0
- data/.rspec +3 -0
- data/.rubocop.yml +23 -0
- data/.ruby-version +1 -0
- data/.travis.yml +4 -5
- data/CHANGELOG +15 -7
- data/Gemfile +3 -15
- data/LICENSE +1 -1
- data/README.md +135 -111
- data/Rakefile +13 -54
- data/dwc-archive.gemspec +37 -0
- data/features/step_definitions/dwc-creator_steps.rb +5 -5
- data/features/step_definitions/dwc-reader_steps.rb +47 -28
- data/features/support/env.rb +1 -1
- data/lib/dwc_archive.rb +121 -0
- data/lib/dwc_archive/archive.rb +59 -0
- data/lib/dwc_archive/classification_normalizer.rb +382 -0
- data/lib/dwc_archive/core.rb +25 -0
- data/lib/{dwc-archive → dwc_archive}/errors.rb +2 -0
- data/lib/dwc_archive/expander.rb +85 -0
- data/lib/{dwc-archive → dwc_archive}/extension.rb +5 -3
- data/lib/dwc_archive/generator.rb +90 -0
- data/lib/dwc_archive/generator_eml_xml.rb +116 -0
- data/lib/dwc_archive/generator_meta_xml.rb +72 -0
- data/lib/dwc_archive/gnub_taxon.rb +14 -0
- data/lib/dwc_archive/ingester.rb +106 -0
- data/lib/dwc_archive/metadata.rb +56 -0
- data/lib/dwc_archive/taxon_normalized.rb +23 -0
- data/lib/dwc_archive/version.rb +6 -0
- data/lib/dwc_archive/xml_reader.rb +89 -0
- data/spec/files/file with characters(3).gz b/data/spec/files/file with → characters(3).tar.gz +0 -0
- data/spec/files/generator_eml.xml +47 -0
- data/spec/files/generator_meta.xml +19 -0
- data/spec/lib/classification_normalizer_spec.rb +214 -0
- data/spec/lib/core_spec.rb +100 -0
- data/spec/lib/darwin_core_spec.rb +249 -0
- data/spec/lib/generator_eml_xml_spec.rb +22 -0
- data/spec/lib/generator_meta_xml_spec.rb +22 -0
- data/spec/lib/generator_spec.rb +124 -0
- data/spec/lib/gnub_taxon_spec.rb +32 -0
- data/spec/lib/metadata_spec.rb +89 -0
- data/spec/lib/taxon_normalized_spec.rb +142 -0
- data/spec/lib/xml_reader_spec.rb +11 -11
- data/spec/spec_helper.rb +78 -6
- metadata +180 -92
- data/.rvmrc +0 -1
- data/Gemfile.lock +0 -155
- data/VERSION +0 -1
- data/lib/dwc-archive.rb +0 -95
- data/lib/dwc-archive/.expander.rb.swo +0 -0
- data/lib/dwc-archive/archive.rb +0 -37
- data/lib/dwc-archive/classification_normalizer.rb +0 -424
- data/lib/dwc-archive/core.rb +0 -17
- data/lib/dwc-archive/expander.rb +0 -80
- data/lib/dwc-archive/generator.rb +0 -75
- data/lib/dwc-archive/generator_eml_xml.rb +0 -84
- data/lib/dwc-archive/generator_meta_xml.rb +0 -50
- data/lib/dwc-archive/ingester.rb +0 -101
- data/lib/dwc-archive/metadata.rb +0 -42
- data/lib/dwc-archive/utf_regex_ruby18.rb +0 -10
- data/lib/dwc-archive/xml_reader.rb +0 -64
- data/spec/lib/dwc-archive_spec.rb +0 -250
- data/spec/spec.opts +0 -1
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
describe DarwinCore::GnubTaxon do
|
4
|
+
subject(:dwca) { DarwinCore.new(file_path) }
|
5
|
+
subject(:normalizer) { DarwinCore::ClassificationNormalizer.new(dwca) }
|
6
|
+
let(:file_dir) { File.expand_path("../files", __dir__) }
|
7
|
+
let(:file_path) { File.join(file_dir, file_name) }
|
8
|
+
let(:file_name) { "gnub.tar.gz" }
|
9
|
+
|
10
|
+
it "should get uuids from GNUB" do
|
11
|
+
normalizer.normalize
|
12
|
+
tn = normalizer.normalized_data["9c399f90-cfb8-5a7f-9a21-18285a473488"]
|
13
|
+
expect(tn).to be_kind_of DarwinCore::GnubTaxon
|
14
|
+
expect(tn).to be_kind_of DarwinCore::TaxonNormalized
|
15
|
+
expect(tn.uuid).to eq "8faa91f6-663f-4cfe-b785-0ab4e9415a51"
|
16
|
+
expect(tn.uuid_path).to eq [
|
17
|
+
"9a9f9eeb-d5f9-4ff6-b6cb-a5ad345e33c3",
|
18
|
+
"bf4c91c0-3d1f-44c7-9d3b-249382182a26",
|
19
|
+
"8faa91f6-663f-4cfe-b785-0ab4e9415a51"
|
20
|
+
]
|
21
|
+
end
|
22
|
+
|
23
|
+
context "not a gnub data" do
|
24
|
+
let(:file_name) { "data.tar.gz" }
|
25
|
+
it "should not be of GnubTaxon type" do
|
26
|
+
normalizer.normalize
|
27
|
+
tn = normalizer.normalized_data["leptogastrinae:tid:42"]
|
28
|
+
expect(tn).to be_kind_of DarwinCore::TaxonNormalized
|
29
|
+
expect(tn).not_to be_kind_of DarwinCore::GnubTaxon
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
describe DarwinCore::Metadata do
|
4
|
+
subject(:eml) { DarwinCore::Metadata.new(dwca.archive) }
|
5
|
+
let(:dwca) { DarwinCore.new(file_path) }
|
6
|
+
let(:file_path) do
|
7
|
+
File.join(File.expand_path("../files", __dir__), file_name)
|
8
|
+
end
|
9
|
+
let(:file_name) { "data.tar.gz" }
|
10
|
+
|
11
|
+
describe ".new" do
|
12
|
+
it "initializes" do
|
13
|
+
expect(eml).to be_kind_of DarwinCore::Metadata
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#data" do
|
18
|
+
it "returns hash of metadata" do
|
19
|
+
expect(eml.data).to be_kind_of Hash
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#id" do
|
24
|
+
it "returns id of the archive if it exists" do
|
25
|
+
expect(eml.id).to eq "leptogastrinae:version:2.5"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "#package_id" do
|
30
|
+
context "no package id is given" do
|
31
|
+
before(:example) do
|
32
|
+
@attributes = eml.data[:eml].delete(:attributes)
|
33
|
+
end
|
34
|
+
|
35
|
+
after(:example) do
|
36
|
+
eml.data[:eml][:attributes] = @attributes
|
37
|
+
end
|
38
|
+
|
39
|
+
it "returns id of the DwCA file if exists" do
|
40
|
+
expect { eml.data[:eml][:attributes][:packageId] }.
|
41
|
+
to raise_exception NoMethodError
|
42
|
+
expect(eml.package_id).to be_nil
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "#title" do
|
48
|
+
it "returns name of the archive" do
|
49
|
+
expect(eml.title).
|
50
|
+
to eq "Leptogastrinae (Diptera: Asilidae) Classification"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "#authors" do
|
55
|
+
it "returns authors of the archive" do
|
56
|
+
expect(eml.authors).
|
57
|
+
to eq [
|
58
|
+
{ first_name: "Keith",
|
59
|
+
last_name: "Bayless",
|
60
|
+
email: "keith.bayless@gmail.com" },
|
61
|
+
{ first_name: "Torsten",
|
62
|
+
last_name: "Dikow",
|
63
|
+
email: "dshorthouse@eol.org" }
|
64
|
+
]
|
65
|
+
end
|
66
|
+
|
67
|
+
describe "#abstract" do
|
68
|
+
it "returns abstract of an article" do
|
69
|
+
expect(eml.abstract).
|
70
|
+
to eq "These are all the names in the Leptogastrinae classification."
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe "#citation" do
|
75
|
+
it "returns citation of the archive" do
|
76
|
+
expect(eml.citation).
|
77
|
+
to eq "Dikow, Torsten. 2010. The Leptogastrinae classification."
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe "#url" do
|
82
|
+
it "returns url to the archive" do
|
83
|
+
expect(eml.url).
|
84
|
+
to eq "http://leptogastrinae.lifedesks.org/files/leptogastrinae/"\
|
85
|
+
"classification_export/shared/leptogastrinae.tar.gz"
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,142 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
describe DarwinCore::TaxonNormalized do
|
4
|
+
subject(:dwca) { DarwinCore.new(file_path) }
|
5
|
+
subject(:normalizer) { DarwinCore::ClassificationNormalizer.new(dwca) }
|
6
|
+
let(:file_dir) { File.expand_path("../files", __dir__) }
|
7
|
+
|
8
|
+
context "typical case" do
|
9
|
+
let(:file_path) { File.join(file_dir, "data.tar.gz") }
|
10
|
+
let(:normalized) { normalizer.normalize }
|
11
|
+
let(:tn) { normalized["leptogastrinae:tid:2681"] }
|
12
|
+
|
13
|
+
it "has TaxonNormalized type" do
|
14
|
+
expect(tn).to be_kind_of DarwinCore::TaxonNormalized
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#id" do
|
18
|
+
it "returns taxon_id" do
|
19
|
+
expect(tn.id).to eq "leptogastrinae:tid:2681"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#local_id" do
|
24
|
+
it "returns local id" do
|
25
|
+
expect(tn.id).to eq "leptogastrinae:tid:2681"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "#global_id" do
|
30
|
+
it "returns global id" do
|
31
|
+
expect(tn.global_id).to eq "843ff0df-4bcd-4aad-ba94-643f8695a292"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "#source" do
|
36
|
+
it "returns url to the data" do
|
37
|
+
expect(tn.source).
|
38
|
+
to eq "http://leptogastrinae.lifedesks.org/pages/2681"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "#parent_id" do
|
43
|
+
it "returns ancestor's id" do
|
44
|
+
expect(tn.parent_id).to eq "leptogastrinae:tid:2584"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#classification_path_id" do
|
49
|
+
it "returns an array" do
|
50
|
+
expect(tn.classification_path_id).to be_kind_of Array
|
51
|
+
end
|
52
|
+
|
53
|
+
it "returns ids of classification path elements" do
|
54
|
+
expect(tn.classification_path_id).
|
55
|
+
to eq ["leptogastrinae:tid:42",
|
56
|
+
"leptogastrinae:tid:2045",
|
57
|
+
"leptogastrinae:tid:2584",
|
58
|
+
"leptogastrinae:tid:2681"]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe "#classification_path" do
|
63
|
+
let(:cp) { tn.classification_path }
|
64
|
+
it "returns array of name strings of the classification path" do
|
65
|
+
expect(cp).to be_kind_of Array
|
66
|
+
expect(cp).to eq ["Leptogastrinae",
|
67
|
+
"Leptogastrini",
|
68
|
+
"Leptogaster",
|
69
|
+
"Leptogaster flavipes"]
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe "#linnean_classification_path" do
|
74
|
+
it "returns empty array for parent/child based classification" do
|
75
|
+
expect(tn.linnean_classification_path).to be_kind_of Array
|
76
|
+
expect(tn.linnean_classification_path).to be_empty
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe "#current_name" do
|
81
|
+
it "returns name marked as currently valid for the taxon" do
|
82
|
+
expect(tn.current_name).to eq "Leptogaster flavipes Loew, 1862"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe "#current_name_canonical" do
|
87
|
+
it "returns canonical form of valid name" do
|
88
|
+
expect(tn.current_name_canonical).to eq "Leptogaster flavipes"
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "#synonyms" do
|
93
|
+
context "synonyms not found" do
|
94
|
+
it "returns empty array" do
|
95
|
+
expect(tn.synonyms).to be_kind_of Array
|
96
|
+
synonym = tn.synonyms[0]
|
97
|
+
expect(synonym).to be_kind_of DarwinCore::SynonymNormalized
|
98
|
+
expect(synonym).to be_kind_of Struct
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
context "synonyms found" do
|
103
|
+
let(:tn) { normalized["leptogastrinae:tid:2858"] }
|
104
|
+
it "returns array of synonyms" do
|
105
|
+
expect(tn.synonyms).to be_kind_of Array
|
106
|
+
expect(tn.synonyms).to be_empty
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe "#vernacular_names" do
|
112
|
+
context "vernacular names not found" do
|
113
|
+
it "returns empty array" do
|
114
|
+
expect(tn.vernacular_names).to be_kind_of Array
|
115
|
+
expect(tn.vernacular_names).to be_empty
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
context "vernacular names found" do
|
120
|
+
let(:tn) { normalized["leptogastrinae:tid:42"] }
|
121
|
+
it "returns array with vernacular name structure" do
|
122
|
+
expect(tn.vernacular_names).to be_kind_of Array
|
123
|
+
vn = tn.vernacular_names[0]
|
124
|
+
expect(vn).to be_kind_of DarwinCore::VernacularNormalized
|
125
|
+
expect(vn).to be_kind_of Struct
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
describe "#rank" do
|
131
|
+
it "returns rank of the taxon" do
|
132
|
+
expect(tn.rank).to eq "species"
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
describe "#status" do
|
137
|
+
it "returns status of taxon" do
|
138
|
+
expect(tn.status).to be_nil
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
data/spec/lib/xml_reader_spec.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
describe DarwinCore::XmlReader do
|
4
|
+
describe ".from_xml" do
|
5
|
+
let(:file) { File.expand_path("../files/meta.xml", __dir__) }
|
6
|
+
subject { DarwinCore::XmlReader.from_xml(File.read(file)) }
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
it "reads xml to hash" do
|
9
|
+
expect(subject).to be_kind_of Hash
|
10
|
+
expect(subject[:archive].keys.sort).to eq %i[core extension]
|
11
|
+
expect(subject[:archive][:core].keys.sort).
|
12
|
+
to eq %i[attributes field files id]
|
13
|
+
end
|
13
14
|
end
|
14
|
-
|
15
15
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,81 @@
|
|
1
|
-
|
2
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
-
require 'dwc-archive'
|
4
|
-
require 'rspec'
|
5
|
-
require 'rspec/autorun'
|
1
|
+
# frozen_string_literal: true
|
6
2
|
|
7
|
-
|
3
|
+
require "dwc_archive"
|
4
|
+
require "rspec"
|
5
|
+
require "rspec/mocks"
|
6
|
+
require "socket"
|
8
7
|
|
8
|
+
RSpec.configure do
|
9
|
+
end
|
10
|
+
|
11
|
+
unless defined?(SPEC_CONSTANTS)
|
12
|
+
EML_DATA =
|
13
|
+
{
|
14
|
+
id: "1234",
|
15
|
+
license: "http://creativecommons.org/licenses/by-sa/3.0/",
|
16
|
+
title: "Test Classification",
|
17
|
+
authors: [
|
18
|
+
{ first_name: "John",
|
19
|
+
last_name: "Doe",
|
20
|
+
email: "jdoe@example.com",
|
21
|
+
organization: "Example",
|
22
|
+
position: "Assistant Professor",
|
23
|
+
url: "http://example.org" },
|
24
|
+
{ first_name: "Jane",
|
25
|
+
last_name: "Doe",
|
26
|
+
email: "jane@example.com" }
|
27
|
+
],
|
28
|
+
metadata_providers: [
|
29
|
+
{ first_name: "Jim",
|
30
|
+
last_name: "Doe",
|
31
|
+
email: "jimdoe@example.com",
|
32
|
+
url: "http://aggregator.example.org" }
|
33
|
+
],
|
34
|
+
abstract: "test classification",
|
35
|
+
citation:
|
36
|
+
"Test classification: Doe John, Doe Jane, Taxnonmy, 10, 1, 2010",
|
37
|
+
url: "http://example.com"
|
38
|
+
}.freeze
|
39
|
+
META_DATA = {
|
40
|
+
extensions:
|
41
|
+
[
|
42
|
+
{ fields:
|
43
|
+
[
|
44
|
+
"http://rs.tdwg.org/dwc/terms/TaxonID",
|
45
|
+
"http://rs.tdwg.org/dwc/terms/vernacularName"
|
46
|
+
],
|
47
|
+
ignoreHeaderLines: 1,
|
48
|
+
location: "vern.csv",
|
49
|
+
rowType: "http://rs.gbif.org/terms/1.0/VernacularName" }
|
50
|
+
],
|
51
|
+
core: { fields:
|
52
|
+
[
|
53
|
+
"http://rs.tdwg.org/dwc/terms/taxonID",
|
54
|
+
"http://rs.tdwg.org/dwc/terms/parentNameUsageID",
|
55
|
+
"http://rs.tdwg.org/dwc/terms/scientificName",
|
56
|
+
"http://rs.tdwg.org/dwc/terms/taxonRank"
|
57
|
+
],
|
58
|
+
ignoreHeaderLines: 1,
|
59
|
+
location: "core.csv" }
|
60
|
+
}.freeze
|
61
|
+
CORE_DATA = [
|
62
|
+
["http://rs.tdwg.org/dwc/terms/taxonID",
|
63
|
+
"http://rs.tdwg.org/dwc/terms/parentNameUsageID",
|
64
|
+
"http://rs.tdwg.org/dwc/terms/scientificName",
|
65
|
+
"http://rs.tdwg.org/dwc/terms/taxonRank"],
|
66
|
+
[1, 0, "Plantae", "kingdom"],
|
67
|
+
[2, 1, "Betula", "genus"],
|
68
|
+
[3, 2, "Betula verucosa", "species"]
|
69
|
+
].freeze
|
70
|
+
EXTENSION_DATA = [
|
71
|
+
["http://rs.tdwg.org/dwc/terms/TaxonID",
|
72
|
+
"http://rs.tdwg.org/dwc/terms/vernacularName"],
|
73
|
+
[1, "Plants"],
|
74
|
+
[1, "Растения"],
|
75
|
+
[2, "Birch"],
|
76
|
+
[2, "Береза"],
|
77
|
+
[3, "Wheeping Birch"],
|
78
|
+
[3, "Береза плакучая"]
|
79
|
+
].freeze
|
80
|
+
SPEC_CONSTANTS = true
|
9
81
|
end
|
metadata
CHANGED
@@ -1,176 +1,221 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dwc-archive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Dmitry Mozzherin
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2020-06-04 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: nokogiri
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: '1.
|
19
|
+
version: '1.10'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '1.
|
26
|
+
version: '1.10'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
28
|
+
name: biodiversity
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- - ~>
|
31
|
+
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
33
|
+
version: '4'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- - ~>
|
38
|
+
- - "~>"
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
40
|
+
version: '4'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
42
|
+
name: byebug
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- - ~>
|
45
|
+
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
54
|
-
type: :
|
47
|
+
version: '11.1'
|
48
|
+
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- - ~>
|
52
|
+
- - "~>"
|
60
53
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
54
|
+
version: '11.1'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
56
|
+
name: bundler
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- - ~>
|
59
|
+
- - "~>"
|
68
60
|
- !ruby/object:Gem::Version
|
69
|
-
version: '1
|
61
|
+
version: '2.1'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- - ~>
|
66
|
+
- - "~>"
|
76
67
|
- !ruby/object:Gem::Version
|
77
|
-
version: '1
|
68
|
+
version: '2.1'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
70
|
+
name: cucumber
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - "~>"
|
84
74
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
86
|
-
type: :
|
75
|
+
version: '4'
|
76
|
+
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - "~>"
|
92
81
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
82
|
+
version: '4'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: git
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.7'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.7'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rake
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '13'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '13'
|
94
111
|
- !ruby/object:Gem::Dependency
|
95
112
|
name: rspec
|
96
113
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
114
|
requirements:
|
99
|
-
- -
|
115
|
+
- - "~>"
|
100
116
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
117
|
+
version: '3.9'
|
102
118
|
type: :development
|
103
119
|
prerelease: false
|
104
120
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
121
|
requirements:
|
107
|
-
- -
|
122
|
+
- - "~>"
|
108
123
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
124
|
+
version: '3.9'
|
110
125
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
126
|
+
name: rubocop
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.85'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.85'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: solargraph
|
112
141
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
142
|
requirements:
|
115
|
-
- -
|
143
|
+
- - "~>"
|
116
144
|
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
145
|
+
version: '0.39'
|
118
146
|
type: :development
|
119
147
|
prerelease: false
|
120
148
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
149
|
requirements:
|
123
|
-
- -
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0.39'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: travis
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
124
158
|
- !ruby/object:Gem::Version
|
125
|
-
version: '
|
159
|
+
version: '1.9'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '1.9'
|
126
167
|
description: Darwin Core Archive is the current standard exchange format for GLobal
|
127
168
|
Names Architecture modules. This gem makes it easy to incorporate files in Darwin
|
128
169
|
Core Archive format into a ruby project.
|
129
|
-
email:
|
170
|
+
email:
|
171
|
+
- dmozzherin at gmail dot com
|
130
172
|
executables: []
|
131
173
|
extensions: []
|
132
|
-
extra_rdoc_files:
|
133
|
-
- LICENSE
|
134
|
-
- README.md
|
174
|
+
extra_rdoc_files: []
|
135
175
|
files:
|
136
|
-
- .document
|
137
|
-
- .
|
138
|
-
- .
|
176
|
+
- ".document"
|
177
|
+
- ".gitignore"
|
178
|
+
- ".rspec"
|
179
|
+
- ".rubocop.yml"
|
180
|
+
- ".ruby-version"
|
181
|
+
- ".travis.yml"
|
139
182
|
- CHANGELOG
|
140
183
|
- Gemfile
|
141
|
-
- Gemfile.lock
|
142
184
|
- LICENSE
|
143
185
|
- README.md
|
144
186
|
- Rakefile
|
145
|
-
-
|
187
|
+
- dwc-archive.gemspec
|
146
188
|
- features/dwca-creator.feature
|
147
189
|
- features/dwca-reader.feature
|
148
190
|
- features/step_definitions/dwc-creator_steps.rb
|
149
191
|
- features/step_definitions/dwc-reader_steps.rb
|
150
192
|
- features/support/env.rb
|
151
|
-
- lib/
|
152
|
-
- lib/
|
153
|
-
- lib/
|
154
|
-
- lib/
|
155
|
-
- lib/
|
156
|
-
- lib/
|
157
|
-
- lib/
|
158
|
-
- lib/
|
159
|
-
- lib/
|
160
|
-
- lib/
|
161
|
-
- lib/
|
162
|
-
- lib/
|
163
|
-
- lib/
|
164
|
-
- lib/
|
165
|
-
- lib/
|
193
|
+
- lib/dwc_archive.rb
|
194
|
+
- lib/dwc_archive/archive.rb
|
195
|
+
- lib/dwc_archive/classification_normalizer.rb
|
196
|
+
- lib/dwc_archive/core.rb
|
197
|
+
- lib/dwc_archive/errors.rb
|
198
|
+
- lib/dwc_archive/expander.rb
|
199
|
+
- lib/dwc_archive/extension.rb
|
200
|
+
- lib/dwc_archive/generator.rb
|
201
|
+
- lib/dwc_archive/generator_eml_xml.rb
|
202
|
+
- lib/dwc_archive/generator_meta_xml.rb
|
203
|
+
- lib/dwc_archive/gnub_taxon.rb
|
204
|
+
- lib/dwc_archive/ingester.rb
|
205
|
+
- lib/dwc_archive/metadata.rb
|
206
|
+
- lib/dwc_archive/taxon_normalized.rb
|
207
|
+
- lib/dwc_archive/version.rb
|
208
|
+
- lib/dwc_archive/xml_reader.rb
|
166
209
|
- spec/files/broken.tar.gz
|
167
210
|
- spec/files/data.tar.gz
|
168
211
|
- spec/files/data.zip
|
169
212
|
- spec/files/data_with_quotes.tar.gz
|
170
213
|
- spec/files/eml.xml
|
171
214
|
- spec/files/empty_coreid.tar.gz
|
172
|
-
- spec/files/file with characters(3).gz
|
215
|
+
- spec/files/file with characters(3).tar.gz
|
173
216
|
- spec/files/flat_list.tar.gz
|
217
|
+
- spec/files/generator_eml.xml
|
218
|
+
- spec/files/generator_meta.xml
|
174
219
|
- spec/files/gnub.tar.gz
|
175
220
|
- spec/files/invalid.tar.gz
|
176
221
|
- spec/files/junk_dir_inside.zip
|
@@ -185,35 +230,78 @@ files:
|
|
185
230
|
- spec/files/synonyms_in_core_accepted_name_field.tar.gz
|
186
231
|
- spec/files/synonyms_in_extension.tar.gz
|
187
232
|
- spec/files/uncompressed
|
188
|
-
- spec/lib/
|
233
|
+
- spec/lib/classification_normalizer_spec.rb
|
234
|
+
- spec/lib/core_spec.rb
|
235
|
+
- spec/lib/darwin_core_spec.rb
|
236
|
+
- spec/lib/generator_eml_xml_spec.rb
|
237
|
+
- spec/lib/generator_meta_xml_spec.rb
|
238
|
+
- spec/lib/generator_spec.rb
|
239
|
+
- spec/lib/gnub_taxon_spec.rb
|
240
|
+
- spec/lib/metadata_spec.rb
|
241
|
+
- spec/lib/taxon_normalized_spec.rb
|
189
242
|
- spec/lib/xml_reader_spec.rb
|
190
|
-
- spec/spec.opts
|
191
243
|
- spec/spec_helper.rb
|
192
244
|
homepage: http://github.com/GlobalNamesArchitecture/dwc-archive
|
193
|
-
licenses:
|
245
|
+
licenses:
|
246
|
+
- MIT
|
247
|
+
metadata: {}
|
194
248
|
post_install_message:
|
195
249
|
rdoc_options: []
|
196
250
|
require_paths:
|
197
251
|
- lib
|
198
252
|
required_ruby_version: !ruby/object:Gem::Requirement
|
199
|
-
none: false
|
200
253
|
requirements:
|
201
|
-
- -
|
254
|
+
- - ">="
|
202
255
|
- !ruby/object:Gem::Version
|
203
|
-
version:
|
204
|
-
segments:
|
205
|
-
- 0
|
206
|
-
hash: 2372622078447411988
|
256
|
+
version: 2.5.0
|
207
257
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
208
|
-
none: false
|
209
258
|
requirements:
|
210
|
-
- -
|
259
|
+
- - ">="
|
211
260
|
- !ruby/object:Gem::Version
|
212
261
|
version: '0'
|
213
262
|
requirements: []
|
214
|
-
|
215
|
-
rubygems_version: 1.8.25
|
263
|
+
rubygems_version: 3.1.2
|
216
264
|
signing_key:
|
217
|
-
specification_version:
|
265
|
+
specification_version: 4
|
218
266
|
summary: Handler of Darwin Core Archive files
|
219
|
-
test_files:
|
267
|
+
test_files:
|
268
|
+
- features/dwca-creator.feature
|
269
|
+
- features/dwca-reader.feature
|
270
|
+
- features/step_definitions/dwc-creator_steps.rb
|
271
|
+
- features/step_definitions/dwc-reader_steps.rb
|
272
|
+
- features/support/env.rb
|
273
|
+
- spec/files/broken.tar.gz
|
274
|
+
- spec/files/data.tar.gz
|
275
|
+
- spec/files/data.zip
|
276
|
+
- spec/files/data_with_quotes.tar.gz
|
277
|
+
- spec/files/eml.xml
|
278
|
+
- spec/files/empty_coreid.tar.gz
|
279
|
+
- spec/files/file with characters(3).tar.gz
|
280
|
+
- spec/files/flat_list.tar.gz
|
281
|
+
- spec/files/generator_eml.xml
|
282
|
+
- spec/files/generator_meta.xml
|
283
|
+
- spec/files/gnub.tar.gz
|
284
|
+
- spec/files/invalid.tar.gz
|
285
|
+
- spec/files/junk_dir_inside.zip
|
286
|
+
- spec/files/language_locality.tar.gz
|
287
|
+
- spec/files/latin1.tar.gz
|
288
|
+
- spec/files/linnean.tar.gz
|
289
|
+
- spec/files/meta.xml
|
290
|
+
- spec/files/minimal.tar.gz
|
291
|
+
- spec/files/not_synonym_in_extension.tar.gz
|
292
|
+
- spec/files/sci_name_authorship.tar.gz
|
293
|
+
- spec/files/sci_name_authorship_dup.tar.gz
|
294
|
+
- spec/files/synonyms_in_core_accepted_name_field.tar.gz
|
295
|
+
- spec/files/synonyms_in_extension.tar.gz
|
296
|
+
- spec/files/uncompressed
|
297
|
+
- spec/lib/classification_normalizer_spec.rb
|
298
|
+
- spec/lib/core_spec.rb
|
299
|
+
- spec/lib/darwin_core_spec.rb
|
300
|
+
- spec/lib/generator_eml_xml_spec.rb
|
301
|
+
- spec/lib/generator_meta_xml_spec.rb
|
302
|
+
- spec/lib/generator_spec.rb
|
303
|
+
- spec/lib/gnub_taxon_spec.rb
|
304
|
+
- spec/lib/metadata_spec.rb
|
305
|
+
- spec/lib/taxon_normalized_spec.rb
|
306
|
+
- spec/lib/xml_reader_spec.rb
|
307
|
+
- spec/spec_helper.rb
|