dwc-archive 0.7.9 → 0.7.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.
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.7.
|
1
|
+
0.7.10
|
@@ -71,7 +71,7 @@ Feature: Reading of a Darwing Core Archive
|
|
71
71
|
And names used in classification can be accessed by "name_strings" method
|
72
72
|
And vernacular names used in classification can be accessed by "vernacular_name_strings" method
|
73
73
|
And nodes_ids organized in trees can be accessed by "tree" method
|
74
|
-
|
74
|
+
|
75
75
|
Scenario: Normalizing classification without canonical names
|
76
76
|
Given path to a dwc file "data.tar.gz"
|
77
77
|
When I create a new DarwinCore instance
|
@@ -229,7 +229,7 @@ class DarwinCore
|
|
229
229
|
def ingest_extensions
|
230
230
|
@extensions.each do |e|
|
231
231
|
ext, fields = *e
|
232
|
-
ingest_synonyms(e) if fields.keys.include?
|
232
|
+
ingest_synonyms(e) if (File.split(e[0].file_path).last.match(/synonym/i) && fields.keys.include?(:scientificname))
|
233
233
|
ingest_vernaculars(e) if fields.keys.include? :vernacularname
|
234
234
|
end
|
235
235
|
end
|
@@ -245,9 +245,13 @@ class DarwinCore
|
|
245
245
|
r[fields[:scientificname]],
|
246
246
|
r[fields[:canonicalname]],
|
247
247
|
fields[:taxonomicstatus] ? r[fields[:taxonomicstatus]] : nil)
|
248
|
-
@normalized_data[r[fields[:id]]]
|
249
|
-
|
250
|
-
|
248
|
+
if @normalized_data[r[fields[:id]]]
|
249
|
+
@normalized_data[r[fields[:id]]].synonyms << synonym
|
250
|
+
add_name_string(synonym.name)
|
251
|
+
add_name_string(synonym.canonical_name)
|
252
|
+
else
|
253
|
+
@error_names << { :taxon => synonym, :error => :synonym_of_unknown_taxa }
|
254
|
+
end
|
251
255
|
end
|
252
256
|
end
|
253
257
|
end
|
@@ -274,8 +278,12 @@ class DarwinCore
|
|
274
278
|
language,
|
275
279
|
locality,
|
276
280
|
country_code)
|
277
|
-
@normalized_data[r[fields[:id]]]
|
278
|
-
|
281
|
+
if @normalized_data[r[fields[:id]]]
|
282
|
+
@normalized_data[r[fields[:id]]].vernacular_names << vernacular
|
283
|
+
add_vernacular_name_string(vernacular.name)
|
284
|
+
else
|
285
|
+
@error_names << { :vernacular_name => vernacular, :error => :vernacular_of_unknown_taxa }
|
286
|
+
end
|
279
287
|
end
|
280
288
|
end
|
281
289
|
end
|
Binary file
|
@@ -25,7 +25,7 @@ describe DarwinCore do
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
describe ".new" do
|
28
|
+
describe ".new" do
|
29
29
|
it "should create DarwinCore instance out of archive file" do
|
30
30
|
['data.zip', 'data.tar.gz', 'minimal.tar.gz', 'junk_dir_inside.zip'].each do |file|
|
31
31
|
file = File.join(@file_dir, file)
|
@@ -125,8 +125,15 @@ describe DarwinCore do
|
|
125
125
|
norm = dwc.normalize_classification
|
126
126
|
norm.select { |k,v| !v.synonyms.empty? }.map { |k,v| v.synonyms }.size.should > 0
|
127
127
|
end
|
128
|
-
|
129
|
-
it "should
|
128
|
+
|
129
|
+
it "should not assemble synonyms from extension with scientificName, and file name not matching 'synonym'" do
|
130
|
+
file = File.join(@file_dir, 'not_synonym_in_extension.tar.gz')
|
131
|
+
dwc = DarwinCore.new(file)
|
132
|
+
norm = dwc.normalize_classification
|
133
|
+
norm.select { |k,v| !v.synonyms.empty? }.map { |k,v| v.synonyms }.size.should == 0
|
134
|
+
end
|
135
|
+
|
136
|
+
it "should be able to assemble synonyms from core" do
|
130
137
|
file = File.join(@file_dir, 'synonyms_in_core_accepted_name_field.tar.gz')
|
131
138
|
dwc = DarwinCore.new(file)
|
132
139
|
norm = dwc.normalize_classification
|
@@ -155,7 +162,7 @@ describe DarwinCore do
|
|
155
162
|
syn = norm.select{|k,v| v.synonyms.size > 0}.map {|k,v| v.synonyms}.flatten.select {|s| s.name.split(" ").size > s.canonical_name.split(" ").size}
|
156
163
|
syn.size.should == 50
|
157
164
|
end
|
158
|
-
|
165
|
+
|
159
166
|
it "should be able work with files which repeat scientificNameAuthorship value in scientificName field" do
|
160
167
|
file = File.join(@file_dir, 'sci_name_authorship_dup.tar.gz')
|
161
168
|
dwc = DarwinCore.new(file)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dwc-archive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-08 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: parsley-store
|
16
|
-
requirement: &
|
16
|
+
requirement: &70276232306380 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.3.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70276232306380
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &70276232305380 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 2.7.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70276232305380
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: nokogiri
|
38
|
-
requirement: &
|
38
|
+
requirement: &70276232304860 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.5.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70276232304860
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: cucumber
|
49
|
-
requirement: &
|
49
|
+
requirement: &70276232304380 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.1.3
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70276232304380
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &70276232303880 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '1.0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70276232303880
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: jeweler
|
71
|
-
requirement: &
|
71
|
+
requirement: &70276232303360 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 1.6.4
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70276232303360
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: ruby-debug19
|
82
|
-
requirement: &
|
82
|
+
requirement: &70276232302860 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 0.11.6
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70276232302860
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: parsley-store
|
93
|
-
requirement: &
|
93
|
+
requirement: &70276232302340 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: 0.3.0
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70276232302340
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: rspec
|
104
|
-
requirement: &
|
104
|
+
requirement: &70276232301840 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: 1.2.9
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70276232301840
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: cucumber
|
115
|
-
requirement: &
|
115
|
+
requirement: &70276232301300 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,7 +120,7 @@ dependencies:
|
|
120
120
|
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *70276232301300
|
124
124
|
description: Darwin Core Archive is the current standard exchange format for GLobal
|
125
125
|
Names Architecture modules. This gem makes it easy to incorporate files in Darwin
|
126
126
|
Core Archive format into a ruby project.
|
@@ -171,6 +171,7 @@ files:
|
|
171
171
|
- spec/files/language_locality.tar.gz
|
172
172
|
- spec/files/meta.xml
|
173
173
|
- spec/files/minimal.tar.gz
|
174
|
+
- spec/files/not_synonym_in_extension.tar.gz
|
174
175
|
- spec/files/sci_name_authorship.tar.gz
|
175
176
|
- spec/files/sci_name_authorship_dup.tar.gz
|
176
177
|
- spec/files/synonyms_in_core_accepted_name_field.tar.gz
|