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.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +31 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +23 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +4 -5
  7. data/CHANGELOG +15 -7
  8. data/Gemfile +3 -15
  9. data/LICENSE +1 -1
  10. data/README.md +135 -111
  11. data/Rakefile +13 -54
  12. data/dwc-archive.gemspec +37 -0
  13. data/features/step_definitions/dwc-creator_steps.rb +5 -5
  14. data/features/step_definitions/dwc-reader_steps.rb +47 -28
  15. data/features/support/env.rb +1 -1
  16. data/lib/dwc_archive.rb +121 -0
  17. data/lib/dwc_archive/archive.rb +59 -0
  18. data/lib/dwc_archive/classification_normalizer.rb +382 -0
  19. data/lib/dwc_archive/core.rb +25 -0
  20. data/lib/{dwc-archive → dwc_archive}/errors.rb +2 -0
  21. data/lib/dwc_archive/expander.rb +85 -0
  22. data/lib/{dwc-archive → dwc_archive}/extension.rb +5 -3
  23. data/lib/dwc_archive/generator.rb +90 -0
  24. data/lib/dwc_archive/generator_eml_xml.rb +116 -0
  25. data/lib/dwc_archive/generator_meta_xml.rb +72 -0
  26. data/lib/dwc_archive/gnub_taxon.rb +14 -0
  27. data/lib/dwc_archive/ingester.rb +106 -0
  28. data/lib/dwc_archive/metadata.rb +56 -0
  29. data/lib/dwc_archive/taxon_normalized.rb +23 -0
  30. data/lib/dwc_archive/version.rb +6 -0
  31. data/lib/dwc_archive/xml_reader.rb +89 -0
  32. data/spec/files/file with characters(3).gz b/data/spec/files/file with → characters(3).tar.gz +0 -0
  33. data/spec/files/generator_eml.xml +47 -0
  34. data/spec/files/generator_meta.xml +19 -0
  35. data/spec/lib/classification_normalizer_spec.rb +214 -0
  36. data/spec/lib/core_spec.rb +100 -0
  37. data/spec/lib/darwin_core_spec.rb +249 -0
  38. data/spec/lib/generator_eml_xml_spec.rb +22 -0
  39. data/spec/lib/generator_meta_xml_spec.rb +22 -0
  40. data/spec/lib/generator_spec.rb +124 -0
  41. data/spec/lib/gnub_taxon_spec.rb +32 -0
  42. data/spec/lib/metadata_spec.rb +89 -0
  43. data/spec/lib/taxon_normalized_spec.rb +142 -0
  44. data/spec/lib/xml_reader_spec.rb +11 -11
  45. data/spec/spec_helper.rb +78 -6
  46. metadata +180 -92
  47. data/.rvmrc +0 -1
  48. data/Gemfile.lock +0 -155
  49. data/VERSION +0 -1
  50. data/lib/dwc-archive.rb +0 -95
  51. data/lib/dwc-archive/.expander.rb.swo +0 -0
  52. data/lib/dwc-archive/archive.rb +0 -37
  53. data/lib/dwc-archive/classification_normalizer.rb +0 -424
  54. data/lib/dwc-archive/core.rb +0 -17
  55. data/lib/dwc-archive/expander.rb +0 -80
  56. data/lib/dwc-archive/generator.rb +0 -75
  57. data/lib/dwc-archive/generator_eml_xml.rb +0 -84
  58. data/lib/dwc-archive/generator_meta_xml.rb +0 -50
  59. data/lib/dwc-archive/ingester.rb +0 -101
  60. data/lib/dwc-archive/metadata.rb +0 -42
  61. data/lib/dwc-archive/utf_regex_ruby18.rb +0 -10
  62. data/lib/dwc-archive/xml_reader.rb +0 -64
  63. data/spec/lib/dwc-archive_spec.rb +0 -250
  64. 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
@@ -1,15 +1,15 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
1
+ # frozen_string_literal: true
2
2
 
3
- describe "DarwinCore::XmlReader" do
4
- it "should parse xml to hash" do
5
- DarwinCore::XmlReader.public_methods.map { |i| i.to_s }.include?("from_xml").should be_true
6
- end
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
- it "should parse xml" do
9
- xml_string = open(File.dirname(__FILE__) + "/../files/meta.xml").read
10
- meta = DarwinCore::XmlReader.from_xml(xml_string)
11
- meta[:archive].keys.map {|k| k.to_s}.sort.should == %w(core extension)
12
- meta[:archive][:core].keys.map{|k| k.to_s}.sort.should == ["attributes", "field", "files", "id"]
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
@@ -1,9 +1,81 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
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
- RSpec.configure do |config|
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: 0.9.6
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: 2013-06-21 00:00:00.000000000 Z
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.5'
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.5'
26
+ version: '1.10'
30
27
  - !ruby/object:Gem::Dependency
31
- name: parsley-store
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: 0.3.2
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: 0.3.2
40
+ version: '4'
46
41
  - !ruby/object:Gem::Dependency
47
- name: archive-tar-minitar
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: '0.5'
54
- type: :runtime
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: '0.5'
54
+ version: '11.1'
62
55
  - !ruby/object:Gem::Dependency
63
- name: debugger
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.3'
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.3'
68
+ version: '2.1'
78
69
  - !ruby/object:Gem::Dependency
79
- name: parsley-store
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: 0.3.0
86
- type: :runtime
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: 0.3.0
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: 1.2.9
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: 1.2.9
124
+ version: '3.9'
110
125
  - !ruby/object:Gem::Dependency
111
- name: cucumber
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: '0'
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: dmozzherin at gmail dot com
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
- - .rvmrc
138
- - .travis.yml
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
- - VERSION
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/dwc-archive.rb
152
- - lib/dwc-archive/.expander.rb.swo
153
- - lib/dwc-archive/archive.rb
154
- - lib/dwc-archive/classification_normalizer.rb
155
- - lib/dwc-archive/core.rb
156
- - lib/dwc-archive/errors.rb
157
- - lib/dwc-archive/expander.rb
158
- - lib/dwc-archive/extension.rb
159
- - lib/dwc-archive/generator.rb
160
- - lib/dwc-archive/generator_eml_xml.rb
161
- - lib/dwc-archive/generator_meta_xml.rb
162
- - lib/dwc-archive/ingester.rb
163
- - lib/dwc-archive/metadata.rb
164
- - lib/dwc-archive/utf_regex_ruby18.rb
165
- - lib/dwc-archive/xml_reader.rb
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/dwc-archive_spec.rb
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: '0'
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
- rubyforge_project:
215
- rubygems_version: 1.8.25
263
+ rubygems_version: 3.1.2
216
264
  signing_key:
217
- specification_version: 3
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