taxonifi 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![
|
2
|
+
[![Build Status](https://travis-ci.org/SpeciesFileGroup/taxonifi.svg?branch=master)](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
|