dwc-archive 0.9.6 → 0.9.10

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