dwc-archive 0.7.18 → 0.8.0
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/CHANGELOG +1 -0
- data/VERSION +1 -1
- data/lib/dwc-archive/classification_normalizer.rb +11 -1
- data/spec/files/linnean.tar.gz +0 -0
- data/spec/lib/dwc-archive_spec.rb +16 -0
- metadata +75 -23
data/CHANGELOG
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.8.0 Added linnean classification path to normalized data from DwCA. It consists of data associated with clades like 'kingdom', 'order' etc.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.8.0
|
@@ -4,7 +4,7 @@ require 'parsley-store'
|
|
4
4
|
class DarwinCore
|
5
5
|
|
6
6
|
class TaxonNormalized
|
7
|
-
attr_accessor :id, :local_id, :global_id, :source, :parent_id, :classification_path_id, :classification_path, :current_name, :current_name_canonical, :synonyms, :vernacular_names, :rank, :status
|
7
|
+
attr_accessor :id, :local_id, :global_id, :source, :parent_id, :classification_path_id, :classification_path, :linnean_classification_path, :current_name, :current_name_canonical, :synonyms, :vernacular_names, :rank, :status
|
8
8
|
|
9
9
|
def initialize
|
10
10
|
@id = @parent_id = @rank = @status = nil
|
@@ -17,6 +17,7 @@ class DarwinCore
|
|
17
17
|
@classification_path_id = []
|
18
18
|
@synonyms = []
|
19
19
|
@vernacular_names = []
|
20
|
+
@linnean_classification_path = []
|
20
21
|
end
|
21
22
|
|
22
23
|
end
|
@@ -165,6 +166,7 @@ class DarwinCore
|
|
165
166
|
taxon.status = r[@core_fields[:taxonomicstatus]] if @core_fields[:taxonomicstatus]
|
166
167
|
taxon.source = r[@core_fields[:source]] if @core_fields[:source]
|
167
168
|
taxon.local_id = r[@core_fields[:localid]] if @core_fields[:localid]
|
169
|
+
taxon.linnean_classification_path = get_linnean_classification_path(r)
|
168
170
|
taxon.global_id = r[@core_fields[:globalid]] if @core_fields[:globalid]
|
169
171
|
add_name_string(taxon.current_name)
|
170
172
|
add_name_string(taxon.current_name_canonical) if taxon.current_name_canonical && !taxon.current_name_canonical.empty?
|
@@ -312,5 +314,13 @@ class DarwinCore
|
|
312
314
|
end
|
313
315
|
end
|
314
316
|
|
317
|
+
def get_linnean_classification_path(row)
|
318
|
+
res = []
|
319
|
+
[:kingdom, :phylum, :class, :order, :family, :genus, :subgenus].each do |clade|
|
320
|
+
res << [row[@core_fields[clade]], clade] if @core_fields[clade]
|
321
|
+
end
|
322
|
+
res
|
323
|
+
end
|
324
|
+
|
315
325
|
end
|
316
326
|
end
|
Binary file
|
@@ -152,6 +152,22 @@ describe DarwinCore do
|
|
152
152
|
norm.select { |k,v| !v.synonyms.empty? }.size.should > 0
|
153
153
|
end
|
154
154
|
|
155
|
+
it "should assemble linnean classification if terms for it exists" do
|
156
|
+
file = File.join(@file_dir, 'linnean.tar.gz')
|
157
|
+
dwc = DarwinCore.new(file)
|
158
|
+
cn = DarwinCore::ClassificationNormalizer.new(dwc)
|
159
|
+
norm = cn.normalize
|
160
|
+
cn.normalized_data.first.last.linnean_classification_path.should == [["Animalia", :kingdom], ["Arthropoda", :phylum], ["Insecta", :class], ["Diptera", :order], ["Cecidomyiidae", :family], ["Resseliella", :genus]]
|
161
|
+
end
|
162
|
+
|
163
|
+
it "should keep linnean classification empty if terms are not there" do
|
164
|
+
file = File.join(@file_dir, 'data.tar.gz')
|
165
|
+
dwc = DarwinCore.new(file)
|
166
|
+
cn = DarwinCore::ClassificationNormalizer.new(dwc)
|
167
|
+
norm = cn.normalize
|
168
|
+
cn.normalized_data.first.last.linnean_classification_path.should == []
|
169
|
+
end
|
170
|
+
|
155
171
|
it "should be able to assemble synonyms from core" do
|
156
172
|
file = File.join(@file_dir, 'synonyms_in_core_accepted_name_field.tar.gz')
|
157
173
|
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.
|
4
|
+
version: 0.8.0
|
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: 2012-
|
12
|
+
date: 2012-07-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 1.5.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.5.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: parsley-store
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: 0.3.0
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.3.0
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: rspec
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ~>
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: 2.7.0
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.7.0
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: cucumber
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ~>
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: 1.1.3
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.1.3
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: bundler
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ~>
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: '1.0'
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '1.0'
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: jeweler
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ~>
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: 1.6.4
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.6.4
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: ruby-debug19
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ~>
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: 0.11.6
|
88
118
|
type: :development
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 0.11.6
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: parsley-store
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,10 +133,15 @@ dependencies:
|
|
98
133
|
version: 0.3.0
|
99
134
|
type: :runtime
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 0.3.0
|
102
142
|
- !ruby/object:Gem::Dependency
|
103
143
|
name: rspec
|
104
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
105
145
|
none: false
|
106
146
|
requirements:
|
107
147
|
- - ! '>='
|
@@ -109,10 +149,15 @@ dependencies:
|
|
109
149
|
version: 1.2.9
|
110
150
|
type: :development
|
111
151
|
prerelease: false
|
112
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 1.2.9
|
113
158
|
- !ruby/object:Gem::Dependency
|
114
159
|
name: cucumber
|
115
|
-
requirement:
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
116
161
|
none: false
|
117
162
|
requirements:
|
118
163
|
- - ! '>='
|
@@ -120,7 +165,12 @@ dependencies:
|
|
120
165
|
version: '0'
|
121
166
|
type: :development
|
122
167
|
prerelease: false
|
123
|
-
version_requirements:
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
124
174
|
description: Darwin Core Archive is the current standard exchange format for GLobal
|
125
175
|
Names Architecture modules. This gem makes it easy to incorporate files in Darwin
|
126
176
|
Core Archive format into a ruby project.
|
@@ -133,6 +183,7 @@ extra_rdoc_files:
|
|
133
183
|
files:
|
134
184
|
- .document
|
135
185
|
- .rvmrc
|
186
|
+
- CHANGELOG
|
136
187
|
- Gemfile
|
137
188
|
- Gemfile.lock
|
138
189
|
- LICENSE
|
@@ -169,6 +220,7 @@ files:
|
|
169
220
|
- spec/files/invalid.tar.gz
|
170
221
|
- spec/files/junk_dir_inside.zip
|
171
222
|
- spec/files/language_locality.tar.gz
|
223
|
+
- spec/files/linnean.tar.gz
|
172
224
|
- spec/files/meta.xml
|
173
225
|
- spec/files/minimal.tar.gz
|
174
226
|
- spec/files/not_synonym_in_extension.tar.gz
|
@@ -206,7 +258,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
206
258
|
version: '0'
|
207
259
|
requirements: []
|
208
260
|
rubyforge_project:
|
209
|
-
rubygems_version: 1.8.
|
261
|
+
rubygems_version: 1.8.24
|
210
262
|
signing_key:
|
211
263
|
specification_version: 3
|
212
264
|
summary: Handler of Darwin Core Archive files
|