dwc-archive 0.9.6 → 0.9.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -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