taxonifi 0.4.0 → 0.5.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.
- checksums.yaml +5 -5
- data/.ruby-version +1 -1
- data/.travis.yml +1 -1
- data/Gemfile.lock +16 -18
- data/README.md +4 -4
- data/lib/taxonifi.rb +2 -2
- data/lib/taxonifi/model/author_year.rb +1 -1
- data/lib/taxonifi/model/base.rb +16 -14
- data/lib/taxonifi/version.rb +1 -1
- data/taxonifi.gemspec +10 -9
- data/test/helper.rb +8 -10
- data/test/test_taxonifi_name.rb +36 -32
- metadata +20 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 15ea6036e683f7de25293b311a0c85082480f32013b7a8427dbb90a247937076
|
4
|
+
data.tar.gz: 37f71618bd92e1af915361c0328856708097f76badbe80fbe6fda93edb0e4c02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa9586dde79b0abd633bbea51a739a807a299621ba0bade46953dd477a7dd8e6710770527c8ad18035f7467c275952064d4548a0fd641a299a0663ce1b9851d5
|
7
|
+
data.tar.gz: 171c01787b879fea5fcbb65e1a344ce0f9e95d34a013f6b4a917112edb1a18c48a78fa4f8adf59b86a154e8bed3fc5009a44455058ea2cb9fa8fc829b3478801
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.6.5
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,36 +1,34 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
taxonifi (0.
|
5
|
-
require_all (~>
|
4
|
+
taxonifi (0.5.0)
|
5
|
+
require_all (~> 3.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
awesome_print (1.
|
11
|
-
builder (3.2.
|
12
|
-
byebug (
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
require_all (1.3.3)
|
19
|
-
test-unit (3.1.8)
|
10
|
+
awesome_print (1.8.0)
|
11
|
+
builder (3.2.4)
|
12
|
+
byebug (11.1.1)
|
13
|
+
power_assert (1.1.5)
|
14
|
+
rake (13.0.1)
|
15
|
+
rdoc (6.2.1)
|
16
|
+
require_all (3.0.0)
|
17
|
+
test-unit (3.3.5)
|
20
18
|
power_assert
|
21
19
|
|
22
20
|
PLATFORMS
|
23
21
|
ruby
|
24
22
|
|
25
23
|
DEPENDENCIES
|
26
|
-
awesome_print (~> 1.
|
24
|
+
awesome_print (~> 1.8)
|
27
25
|
builder (~> 3.2)
|
28
26
|
bundler (~> 1.12)
|
29
|
-
byebug (~>
|
30
|
-
rake (~>
|
31
|
-
rdoc (~>
|
27
|
+
byebug (~> 11)
|
28
|
+
rake (~> 13.0)
|
29
|
+
rdoc (~> 6.2)
|
32
30
|
taxonifi!
|
33
|
-
test-unit (~> 3.
|
31
|
+
test-unit (~> 3.3.5)
|
34
32
|
|
35
33
|
BUNDLED WITH
|
36
|
-
1.
|
34
|
+
1.17.3
|
data/README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
|
2
|
-
[](https://travis-ci.org/SpeciesFileGroup/taxonifi)
|
3
3
|
[![Dependency Status][7]][8]
|
4
4
|
|
5
5
|
|
6
6
|
taxonifi
|
7
7
|
========
|
8
|
-
There will always be "legacy" taxonomic data that needs shuffling around. The taxonifi gem is a suite of general purpose tools that act as a middle layer for data-conversion purposes (e.g. migrating legacy taxonomic databases).
|
8
|
+
There will always be "legacy" taxonomic data that needs shuffling around. The taxonifi gem is a suite of general purpose tools that act as a middle layer for data-conversion purposes (e.g. migrating legacy taxonomic databases). Its first application was to convert DwC-style data downloaded from EoL into a Species File. The code is well documented in unit tests, poke around to see if it might be useful. In particular, if you've considered building a collection of regular expressions particular to biodiversity data look at the Tokens code and related tests.
|
9
9
|
|
10
10
|
Overall, the goal is to provide well documented (and unit-tested) coded that is broadly useful, and vanilla enough to encourage other to fork and hack on their own.
|
11
11
|
|
@@ -16,9 +16,9 @@ Source is available at https://github.com/SpeciesFile/taxonifi . The rdoc API i
|
|
16
16
|
What's next?
|
17
17
|
------------
|
18
18
|
|
19
|
-
Before you jump on board you should also check out similar code from the Global Names team at https://github.com/GlobalNamesArchitecture. Future integration and merging of shared functionality is planned.
|
19
|
+
Before you jump on board you should also check out similar code from the Global Names team at https://github.com/GlobalNamesArchitecture. Future integration and merging of shared functionality is planned.
|
20
20
|
|
21
|
-
Taxonifi is presently coded for convience, not speed (though it's not necessarily slow). It assumes that conversion processes are typically one-offs that can afford to run over a longer period of time (read minutes rather than seconds). Reading, and fully parsing into objects, around 25k rows of nomenclature (class to species, inc. author year, = ~45k names) in to memory as Taxonifi objects benchmarks at around 2 minutes.
|
21
|
+
Taxonifi is presently coded for convience, not speed (though it's not necessarily slow). It assumes that conversion processes are typically one-offs that can afford to run over a longer period of time (read minutes rather than seconds). Reading, and fully parsing into objects, around 25k rows of nomenclature (class to species, inc. author year, = ~45k names) in to memory as Taxonifi objects benchmarks at around 2 minutes.
|
22
22
|
|
23
23
|
Getting started
|
24
24
|
---------------
|
data/lib/taxonifi.rb
CHANGED
@@ -7,7 +7,7 @@ module Taxonifi
|
|
7
7
|
|
8
8
|
class TaxonifiError < StandardError; end;
|
9
9
|
|
10
|
-
# Taxonomic ranks.
|
10
|
+
# Taxonomic ranks.
|
11
11
|
RANKS = %w{
|
12
12
|
kingdom
|
13
13
|
phylum
|
@@ -17,7 +17,7 @@ module Taxonifi
|
|
17
17
|
infraclass
|
18
18
|
cohort
|
19
19
|
superorder
|
20
|
-
order
|
20
|
+
order
|
21
21
|
suborder
|
22
22
|
infraorder
|
23
23
|
superfamily
|
data/lib/taxonifi/model/base.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
+
require_rel 'shared_class_methods'
|
2
|
+
|
1
3
|
module Taxonifi
|
2
4
|
module Model
|
3
5
|
|
4
6
|
# A base class for all Taxonifi::Models that represent
|
5
|
-
# "individuals" (as opposed to collections of indviduals).
|
6
|
-
class Base
|
7
|
+
# "individuals" (as opposed to collections of indviduals).
|
8
|
+
class Base
|
7
9
|
|
8
10
|
include Taxonifi::Model::SharedClassMethods
|
9
11
|
|
@@ -23,8 +25,8 @@ module Taxonifi
|
|
23
25
|
@properties = {}
|
24
26
|
end
|
25
27
|
|
26
|
-
# Assign on new() all attributes for the ATTRIBUTES
|
27
|
-
# constant in a given subclass.
|
28
|
+
# Assign on new() all attributes for the ATTRIBUTES
|
29
|
+
# constant in a given subclass.
|
28
30
|
# !! Check validity prior to building.
|
29
31
|
def build(attributes, opts)
|
30
32
|
attributes.each do |c|
|
@@ -39,12 +41,12 @@ module Taxonifi
|
|
39
41
|
|
40
42
|
# Add a key/value pair to @properties
|
41
43
|
def add_property(key, value)
|
42
|
-
if @properties[key]
|
44
|
+
if @properties[key]
|
43
45
|
return false
|
44
46
|
else
|
45
47
|
@properties.merge!(key => value)
|
46
48
|
end
|
47
|
-
end
|
49
|
+
end
|
48
50
|
|
49
51
|
# Replace an existing key/value pair in @properties
|
50
52
|
def replace_property(key,value)
|
@@ -53,19 +55,19 @@ module Taxonifi
|
|
53
55
|
else
|
54
56
|
@properties.merge!(key => value)
|
55
57
|
end
|
56
|
-
end
|
57
|
-
|
58
|
-
# Delete an existing key/value pair in @properties
|
58
|
+
end
|
59
|
+
|
60
|
+
# Delete an existing key/value pair in @properties
|
59
61
|
def delete_property(key)
|
60
62
|
if !@properties[key]
|
61
|
-
@properties.delete(key)
|
63
|
+
@properties.delete(key)
|
62
64
|
else
|
63
65
|
@properties.merge!(key => value)
|
64
66
|
end
|
65
67
|
end
|
66
68
|
|
67
69
|
def id=(id)
|
68
|
-
raise Taxonifi::ModelError, "Base model objects must have Fixnum ids." if !id.nil? && id.class !=
|
70
|
+
raise Taxonifi::ModelError, "Base model objects must have Fixnum ids." if !id.nil? && id.class != ::Integer
|
69
71
|
@id = id
|
70
72
|
end
|
71
73
|
|
@@ -74,7 +76,7 @@ module Taxonifi
|
|
74
76
|
def ancestor_ids
|
75
77
|
i = 0 # check for recursion
|
76
78
|
ids = []
|
77
|
-
p = parent
|
79
|
+
p = parent
|
78
80
|
while !p.nil?
|
79
81
|
ids.unshift p.id
|
80
82
|
p = p.parent
|
@@ -90,14 +92,14 @@ module Taxonifi
|
|
90
92
|
def ancestors
|
91
93
|
i = 0 # check for recursion
|
92
94
|
ancestors = []
|
93
|
-
p = parent
|
95
|
+
p = parent
|
94
96
|
while !p.nil?
|
95
97
|
ancestors.unshift p
|
96
98
|
p = p.parent
|
97
99
|
i += 1
|
98
100
|
raise Taxonifi::ModelError, "Infite recursion in parent string detected for Base model object #{id.display_name}." if i > 100
|
99
101
|
end
|
100
|
-
ancestors
|
102
|
+
ancestors
|
101
103
|
end
|
102
104
|
end
|
103
105
|
|
data/lib/taxonifi/version.rb
CHANGED
data/taxonifi.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.version = Taxonifi::VERSION
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["
|
11
|
+
s.authors = ["Matt Yoder"]
|
12
12
|
s.date = "2013-03-27"
|
13
13
|
|
14
14
|
s.summary = "A general purpose framework for scripted handling of taxonomic names or other heirarchical metadata."
|
@@ -22,20 +22,21 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.files = `git ls-files -z`.split("\x0")
|
23
23
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
24
24
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
25
|
-
s.homepage = "
|
25
|
+
s.homepage = "https://github.com/SpeciesFile/taxonifi"
|
26
26
|
s.licenses = ["MIT"]
|
27
27
|
s.require_paths = ["lib"]
|
28
28
|
s.rubygems_version = "2.4.5"
|
29
|
+
s.metadata = { "source_code_uri" => "https://github.com/SpeciesFileGroup/taxonifi" }
|
29
30
|
|
30
|
-
s.add_dependency "require_all", "~>
|
31
|
+
s.add_dependency "require_all", "~> 3.0"
|
32
|
+
s.required_ruby_version = '~> 2.6'
|
31
33
|
|
32
|
-
s.add_development_dependency "rake", '~>
|
33
|
-
s.add_development_dependency "byebug", "~>
|
34
|
+
s.add_development_dependency "rake", '~> 13.0'
|
35
|
+
s.add_development_dependency "byebug", "~> 11"
|
34
36
|
s.add_development_dependency "bundler", "~> 1.12"
|
35
|
-
s.add_development_dependency 'awesome_print', '~> 1.
|
36
|
-
s.add_development_dependency 'test-unit', '~> 3.
|
37
|
-
s.add_development_dependency "rdoc", "~>
|
37
|
+
s.add_development_dependency 'awesome_print', '~> 1.8'
|
38
|
+
s.add_development_dependency 'test-unit', '~> 3.3.5'
|
39
|
+
s.add_development_dependency "rdoc", "~> 6.2"
|
38
40
|
s.add_development_dependency "builder", "~> 3.2"
|
39
41
|
|
40
42
|
end
|
41
|
-
|
data/test/helper.rb
CHANGED
@@ -26,14 +26,12 @@ def generic_csv_with_names
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def names
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
29
|
+
file = File.expand_path(File.join(File.dirname(__FILE__), 'file_fixtures/names.csv'))
|
30
|
+
|
31
|
+
csv = CSV.read(file, {
|
32
|
+
headers: true,
|
33
|
+
col_sep: ",",
|
34
|
+
header_converters: :downcase
|
35
|
+
} )
|
36
|
+
nc = Taxonifi::Lumper.create_name_collection(csv: csv, initial_id: 1)
|
37
37
|
end
|
38
|
-
|
39
|
-
|
data/test/test_taxonifi_name.rb
CHANGED
@@ -7,66 +7,66 @@ class TestTaxonifiName < Test::Unit::TestCase
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def test_new_name
|
10
|
-
assert n = Taxonifi::Model::Name.new()
|
10
|
+
assert n = Taxonifi::Model::Name.new()
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_that_name_has_a_name
|
14
|
-
n = Taxonifi::Model::Name.new()
|
14
|
+
n = Taxonifi::Model::Name.new()
|
15
15
|
assert n.respond_to?(:name)
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_that_name_has_an_id
|
19
|
-
n = Taxonifi::Model::Name.new()
|
19
|
+
n = Taxonifi::Model::Name.new()
|
20
20
|
assert n.respond_to?(:id)
|
21
21
|
end
|
22
22
|
|
23
23
|
def test_that_name_has_a_parent
|
24
|
-
n = Taxonifi::Model::Name.new()
|
25
|
-
assert n.respond_to?(:parent)
|
24
|
+
n = Taxonifi::Model::Name.new()
|
25
|
+
assert n.respond_to?(:parent)
|
26
26
|
end
|
27
27
|
|
28
28
|
def test_that_name_has_a_rank
|
29
|
-
n = Taxonifi::Model::Name.new()
|
30
|
-
assert n.respond_to?(:rank)
|
29
|
+
n = Taxonifi::Model::Name.new()
|
30
|
+
assert n.respond_to?(:rank)
|
31
31
|
end
|
32
32
|
|
33
33
|
def test_that_name_has_an_author
|
34
|
-
n = Taxonifi::Model::Name.new()
|
35
|
-
assert n.respond_to?(:author)
|
34
|
+
n = Taxonifi::Model::Name.new()
|
35
|
+
assert n.respond_to?(:author)
|
36
36
|
end
|
37
37
|
|
38
38
|
def test_that_name_has_a_year
|
39
|
-
n = Taxonifi::Model::Name.new()
|
40
|
-
assert n.respond_to?(:year)
|
39
|
+
n = Taxonifi::Model::Name.new()
|
40
|
+
assert n.respond_to?(:year)
|
41
41
|
end
|
42
42
|
|
43
43
|
def test_that_name_returns_false_with_bad_rank
|
44
|
-
n = Taxonifi::Model::Name.new()
|
44
|
+
n = Taxonifi::Model::Name.new()
|
45
45
|
assert_raise Taxonifi::NameError do
|
46
46
|
n.rank = "FOO"
|
47
|
-
end
|
47
|
+
end
|
48
48
|
end
|
49
49
|
|
50
50
|
def test_that_name_allows_legal_rank
|
51
|
-
n = Taxonifi::Model::Name.new()
|
51
|
+
n = Taxonifi::Model::Name.new()
|
52
52
|
assert n.rank = "genus"
|
53
53
|
end
|
54
54
|
|
55
55
|
def test_that_name_rank_is_case_insensitive
|
56
|
-
n = Taxonifi::Model::Name.new()
|
56
|
+
n = Taxonifi::Model::Name.new()
|
57
57
|
assert n.rank = "Genus"
|
58
58
|
assert n.rank = "GENUS"
|
59
59
|
end
|
60
60
|
|
61
61
|
def test_that_rank_is_required_before_parent
|
62
|
-
n = Taxonifi::Model::Name.new()
|
62
|
+
n = Taxonifi::Model::Name.new()
|
63
63
|
assert_raise Taxonifi::NameError do
|
64
|
-
n.parent = Taxonifi::Model::Name.new()
|
64
|
+
n.parent = Taxonifi::Model::Name.new()
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
68
68
|
def test_that_parent_is_a_taxonifi_name
|
69
|
-
n = Taxonifi::Model::Name.new()
|
69
|
+
n = Taxonifi::Model::Name.new()
|
70
70
|
n.rank = "genus" # avoid that raise
|
71
71
|
assert_raise Taxonifi::NameError do
|
72
72
|
n.parent = "foo"
|
@@ -74,15 +74,15 @@ class TestTaxonifiName < Test::Unit::TestCase
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def test_that_rank_can_be_set
|
77
|
-
n = Taxonifi::Model::Name.new()
|
77
|
+
n = Taxonifi::Model::Name.new()
|
78
78
|
n.rank = "family"
|
79
79
|
assert_equal "family", n.rank
|
80
80
|
end
|
81
81
|
|
82
82
|
def test_that_parent_is_higher_rank_than_child
|
83
|
-
n = Taxonifi::Model::Name.new()
|
83
|
+
n = Taxonifi::Model::Name.new()
|
84
84
|
n.rank = "genus"
|
85
|
-
p = Taxonifi::Model::Name.new()
|
85
|
+
p = Taxonifi::Model::Name.new()
|
86
86
|
p.rank = "species"
|
87
87
|
assert_raise Taxonifi::NameError do
|
88
88
|
n.parent = p
|
@@ -90,9 +90,9 @@ class TestTaxonifiName < Test::Unit::TestCase
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def test_that_parent_can_be_set
|
93
|
-
n = Taxonifi::Model::Name.new()
|
93
|
+
n = Taxonifi::Model::Name.new()
|
94
94
|
n.rank = "genus"
|
95
|
-
p = Taxonifi::Model::Name.new()
|
95
|
+
p = Taxonifi::Model::Name.new()
|
96
96
|
p.rank = "species"
|
97
97
|
assert p.parent = n
|
98
98
|
assert_equal "genus", p.parent.rank
|
@@ -139,30 +139,30 @@ class TestTaxonifiName < Test::Unit::TestCase
|
|
139
139
|
create_a_few_names
|
140
140
|
n5 = Taxonifi::Model::Name.new(:name => "beep", :rank => "Subspecies", :author => "Frank", :year => 2020, :id => 11, :parent => @n4 )
|
141
141
|
|
142
|
-
assert_equal 'Foo', @n2.nomenclator_name
|
142
|
+
assert_equal 'Foo', @n2.nomenclator_name
|
143
143
|
assert_equal 'Foo (Bar)', @n3.nomenclator_name
|
144
144
|
assert_equal 'Foo (Bar) boo', @n4.nomenclator_name
|
145
145
|
assert_equal 'Foo (Bar) boo beep', n5.nomenclator_name
|
146
146
|
end
|
147
147
|
|
148
148
|
def test_ancestors
|
149
|
-
create_a_few_names
|
149
|
+
create_a_few_names
|
150
150
|
assert_equal [@n0, @n1], @n2.ancestors
|
151
151
|
end
|
152
152
|
|
153
153
|
def test_ancestor_ids
|
154
|
-
create_a_few_names
|
154
|
+
create_a_few_names
|
155
155
|
assert_equal [2,15], @n2.ancestor_ids
|
156
156
|
end
|
157
157
|
|
158
158
|
# TODO: fix to inject valid id to confirm to SF
|
159
159
|
def test_parent_ids_sf_style
|
160
|
-
create_a_few_names
|
160
|
+
create_a_few_names
|
161
161
|
assert_equal '2-15-14g-19s-11', @n4.parent_ids_sf_style
|
162
162
|
assert_equal '2-15-14g-19s', @n3.parent_ids_sf_style
|
163
163
|
assert_equal '2-15-14g', @n2.parent_ids_sf_style
|
164
164
|
assert_equal '2-15', @n1.parent_ids_sf_style
|
165
|
-
end
|
165
|
+
end
|
166
166
|
|
167
167
|
def test_author_year_index
|
168
168
|
n = Taxonifi::Model::Name.new(author_year: 'Smith and Jones, 1920')
|
@@ -170,17 +170,21 @@ class TestTaxonifiName < Test::Unit::TestCase
|
|
170
170
|
end
|
171
171
|
|
172
172
|
def test_genus_group_parent
|
173
|
-
n1 = Taxonifi::Model::Name.new(name: "Fooidae", rank: "family", author: nil, year: nil)
|
174
|
-
n2 = Taxonifi::Model::Name.new(name: "Foo", rank: "genus", author: nil , year:
|
173
|
+
n1 = Taxonifi::Model::Name.new(name: "Fooidae", rank: "family", author: nil, year: nil) #
|
174
|
+
n2 = Taxonifi::Model::Name.new(name: "Foo", rank: "genus", author: nil , year: "", :parent => n1) # Foo
|
175
175
|
n3 = Taxonifi::Model::Name.new(name: "Bar", rank: "subgenus", author: nil , year: nil, :parent => n2) # Foo (Bar)
|
176
|
-
n4 = Taxonifi::Model::Name.new(name: "aus", rank: "species", author: nil , year: nil, :parent => n3) # Foo (Bar) aus
|
176
|
+
n4 = Taxonifi::Model::Name.new(name: "aus", rank: "species", author: nil , year: nil, :parent => n3) # Foo (Bar) aus
|
177
177
|
n5 = Taxonifi::Model::Name.new(name: "bus", rank: "subspecies", author: 'Smith', year: 1920, :parent => n4) # Foo (Bar) aus bus
|
178
178
|
|
179
179
|
assert_equal n3, n4.genus_group_parent
|
180
180
|
assert_equal n3, n5.genus_group_parent
|
181
|
+
|
182
|
+
# No zeros injected
|
183
|
+
assert_equal nil, n3.year
|
184
|
+
assert_equal "", n2.year
|
181
185
|
end
|
182
186
|
|
183
|
-
#
|
187
|
+
#
|
184
188
|
# ICZN Subclass
|
185
189
|
#
|
186
190
|
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taxonifi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Matt Yoder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '3.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: '3.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '13.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '13.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: byebug
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '11'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '11'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,42 +72,42 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '1.
|
75
|
+
version: '1.8'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '1.
|
82
|
+
version: '1.8'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: test-unit
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 3.
|
89
|
+
version: 3.3.5
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 3.
|
96
|
+
version: 3.3.5
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rdoc
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: '6.2'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: '6.2'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: builder
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -202,27 +202,27 @@ files:
|
|
202
202
|
- test/test_taxonifi_ref_collection.rb
|
203
203
|
- test/test_taxonifi_species_name.rb
|
204
204
|
- travis/before_install.sh
|
205
|
-
homepage:
|
205
|
+
homepage: https://github.com/SpeciesFile/taxonifi
|
206
206
|
licenses:
|
207
207
|
- MIT
|
208
|
-
metadata:
|
208
|
+
metadata:
|
209
|
+
source_code_uri: https://github.com/SpeciesFileGroup/taxonifi
|
209
210
|
post_install_message:
|
210
211
|
rdoc_options: []
|
211
212
|
require_paths:
|
212
213
|
- lib
|
213
214
|
required_ruby_version: !ruby/object:Gem::Requirement
|
214
215
|
requirements:
|
215
|
-
- - "
|
216
|
+
- - "~>"
|
216
217
|
- !ruby/object:Gem::Version
|
217
|
-
version: '
|
218
|
+
version: '2.6'
|
218
219
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
219
220
|
requirements:
|
220
221
|
- - ">="
|
221
222
|
- !ruby/object:Gem::Version
|
222
223
|
version: '0'
|
223
224
|
requirements: []
|
224
|
-
|
225
|
-
rubygems_version: 2.5.1
|
225
|
+
rubygems_version: 3.0.6
|
226
226
|
signing_key:
|
227
227
|
specification_version: 4
|
228
228
|
summary: A general purpose framework for scripted handling of taxonomic names or other
|