biodiversity19 3.1.5 → 3.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +10 -0
- data/.ruby-version +1 -1
- data/CHANGELOG +2 -0
- data/LICENSE +1 -1
- data/README.md +3 -3
- data/Rakefile +14 -14
- data/biodiversity.gemspec +19 -19
- data/lib/biodiversity/parser.rb +1 -1
- data/lib/biodiversity/parser/scientific_name_canonical.rb +13 -13
- data/lib/biodiversity/parser/scientific_name_canonical.treetop +17 -17
- data/lib/biodiversity/parser/scientific_name_clean.rb +163 -131
- data/lib/biodiversity/parser/scientific_name_clean.treetop +62 -56
- data/lib/biodiversity/parser/scientific_name_dirty.rb +36 -36
- data/lib/biodiversity/parser/scientific_name_dirty.treetop +50 -53
- data/lib/biodiversity/version.rb +2 -2
- data/spec/files/test_data.txt +6 -1
- data/spec/parser/scientific_name_canonical_spec.rb +21 -21
- data/spec/parser/scientific_name_clean_spec.rb +750 -500
- data/spec/parser/scientific_name_dirty_spec.rb +91 -90
- data/spec/parser/scientific_name_spec.rb +3 -1
- data/spec/spec_helper.rb +21 -21
- metadata +17 -16
@@ -5,69 +5,70 @@ describe ScientificNameDirty do
|
|
5
5
|
before(:all) do
|
6
6
|
set_parser(ScientificNameDirtyParser.new)
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
it 'parses clean names' do
|
10
10
|
expect(parse('Betula verucosa (L.) Bar. 1899')).to_not be_nil
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
it 'parses double parenthesis' do
|
14
14
|
sn = 'Eichornia crassipes ( (Martius) ) Solms-Laub.'
|
15
15
|
expect(parse(sn)).to_not be_nil
|
16
16
|
expect(value(sn)).to eq 'Eichornia crassipes (Martius) Solms-Laub.'
|
17
|
-
expect(details(sn)).to eq [{:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
24
|
-
expect(pos(sn)).to eq({0=>['genus', 9], 10=>['species', 19],
|
25
|
-
23=>['author_word', 30],
|
17
|
+
expect(details(sn)).to eq [{ genus: { string: 'Eichornia' },
|
18
|
+
species: { string: 'crassipes',
|
19
|
+
authorship: '( (Martius) ) Solms-Laub.',
|
20
|
+
combinationAuthorTeam: { authorTeam: 'Solms-Laub.',
|
21
|
+
author: ['Solms-Laub.'] },
|
22
|
+
basionymAuthorTeam: { authorTeam: 'Martius',
|
23
|
+
author: ['Martius'] } } }]
|
24
|
+
expect(pos(sn)).to eq({ 0 => ['genus', 9], 10 => ['species', 19],
|
25
|
+
23 => ['author_word', 30],
|
26
|
+
34 => ['author_word', 45] })
|
26
27
|
end
|
27
|
-
|
28
|
+
|
28
29
|
it 'parses year without author' do
|
29
30
|
sn = 'Acarospora cratericola 1929'
|
30
31
|
expect(parse(sn)).to_not be_nil
|
31
|
-
expect(pos(sn)).to eq({0=>['genus', 10],
|
32
|
-
11=>['species', 22], 23=>['year', 27]})
|
33
|
-
expect(details(sn)).to eq [{:
|
34
|
-
:
|
35
|
-
:
|
32
|
+
expect(pos(sn)).to eq({ 0 => ['genus', 10],
|
33
|
+
11 => ['species', 22], 23 => ['year', 27] })
|
34
|
+
expect(details(sn)).to eq [{ genus: { string: 'Acarospora' },
|
35
|
+
species: { string: 'cratericola',
|
36
|
+
year: '1929' } }]
|
36
37
|
end
|
37
|
-
|
38
|
+
|
38
39
|
it 'parses double years' do
|
39
40
|
sn = 'Tridentella tangeroae Bruce, 1987-92'
|
40
41
|
expect(parse(sn)).to_not be_nil
|
41
|
-
expect(pos(sn)).to eq({0=>['genus', 11], 12=>['species', 21],
|
42
|
-
22=>['author_word', 27], 29=>['year', 36]})
|
43
|
-
expect(details(sn)).to eq [{:
|
44
|
-
:
|
45
|
-
:
|
46
|
-
:
|
42
|
+
expect(pos(sn)).to eq({ 0 => ['genus', 11], 12 => ['species', 21],
|
43
|
+
22 => ['author_word', 27], 29 => ['year', 36] })
|
44
|
+
expect(details(sn)).to eq [{ genus: { string: 'Tridentella' },
|
45
|
+
species: { string: 'tangeroae', authorship: 'Bruce, 1987-92',
|
46
|
+
basionymAuthorTeam: { authorTeam: 'Bruce', author: ['Bruce'],
|
47
|
+
year: '1987-92' } } }]
|
47
48
|
end
|
48
|
-
|
49
|
+
|
49
50
|
it 'parses dirty years' do
|
50
51
|
expect(parse('Tridentella tangeroae Bruce, 1988B')).to_not be_nil
|
51
52
|
expect(parse('Tridentella tangeroae Bruce, 1988b')).to_not be_nil
|
52
53
|
expect(parse('Tridentella tangeroae Bruce, 1988d')).to_not be_nil
|
53
54
|
sn = 'Tridentella tangeroae Bruce, 198?'
|
54
55
|
expect(parse(sn)).to_not be_nil
|
55
|
-
expect(pos(sn)).to eq({0=>['genus', 11], 12=>['species', 21],
|
56
|
-
22=>['author_word', 27], 29=>['year', 33]})
|
56
|
+
expect(pos(sn)).to eq({ 0 => ['genus', 11], 12 => ['species', 21],
|
57
|
+
22 => ['author_word', 27], 29 => ['year', 33] })
|
57
58
|
end
|
58
|
-
|
59
|
+
|
59
60
|
it 'parses year with page number' do
|
60
61
|
sn = 'Gymnodactylus irregularis WERMUTH 1965: 54'
|
61
62
|
expect(parse(sn)).to_not be_nil
|
62
63
|
expect(value(sn)).to eq 'Gymnodactylus irregularis Wermuth 1965'
|
63
|
-
expect(details(sn)).to eq [{:
|
64
|
-
:
|
65
|
-
:
|
66
|
-
:
|
67
|
-
expect(pos(sn)).to eq({0=>['genus', 13], 14=>['species', 25],
|
68
|
-
26=>['author_word', 33], 34=>['year', 38]})
|
64
|
+
expect(details(sn)).to eq [{ genus: { string: 'Gymnodactylus' },
|
65
|
+
species: { string: 'irregularis', authorship: 'WERMUTH 1965: 54',
|
66
|
+
basionymAuthorTeam: { authorTeam: 'WERMUTH', author: ['Wermuth'],
|
67
|
+
year: '1965' } } }]
|
68
|
+
expect(pos(sn)).to eq({ 0 => ['genus', 13], 14 => ['species', 25],
|
69
|
+
26 => ['author_word', 33], 34 => ['year', 38] })
|
69
70
|
end
|
70
|
-
|
71
|
+
|
71
72
|
it 'parses year with []' do
|
72
73
|
expect(parse('Anthoscopus Cabanis [1851]')).to_not be_nil
|
73
74
|
expect(value('Anthoscopus Cabanis [185?]')).
|
@@ -77,86 +78,86 @@ describe ScientificNameDirty do
|
|
77
78
|
to eq 'Anthoscopus Cabanis (1851)'
|
78
79
|
sn = 'Anthoscopus Cabanis [1851?]'
|
79
80
|
expect(value(sn)).to eq 'Anthoscopus Cabanis (1851?)'
|
80
|
-
expect(details(sn)).to eq [{:
|
81
|
-
:
|
82
|
-
{:
|
83
|
-
:
|
84
|
-
expect(pos(sn)).to eq({0=>['uninomial', 11],
|
85
|
-
12=>['author_word', 19], 21=>['year', 26]})
|
81
|
+
expect(details(sn)).to eq [{ uninomial: { string: 'Anthoscopus',
|
82
|
+
authorship: 'Cabanis [1851?]', basionymAuthorTeam:
|
83
|
+
{ authorTeam: 'Cabanis', author: ['Cabanis'],
|
84
|
+
approximate_year: '(1851?)' } } }]
|
85
|
+
expect(pos(sn)).to eq({ 0 => ['uninomial', 11],
|
86
|
+
12 => ['author_word', 19], 21 => ['year', 26] })
|
86
87
|
sn = 'Trismegistia monodii Ando, 1973 [1974]'
|
87
88
|
expect(parse(sn)).to_not be_nil
|
88
89
|
|
89
90
|
#should it be 'Trismegistia monodii Ando 1973 (1974)' instead?
|
90
|
-
expect(value(sn)).to eq 'Trismegistia monodii Ando 1973 (1974)'
|
91
|
-
|
92
|
-
expect(details(sn)).to eq [{:
|
93
|
-
:
|
94
|
-
:
|
95
|
-
:
|
96
|
-
expect(pos(sn)).to eq({0=>['genus', 12], 13=>['species', 20],
|
97
|
-
21=>['author_word', 25], 27=>['year', 31], 33=>['year', 37]})
|
91
|
+
expect(value(sn)).to eq 'Trismegistia monodii Ando 1973 (1974)'
|
92
|
+
|
93
|
+
expect(details(sn)).to eq [{ genus: { string: 'Trismegistia' },
|
94
|
+
species: { string: 'monodii', authorship: 'Ando, 1973 [1974]',
|
95
|
+
basionymAuthorTeam: { authorTeam: 'Ando', author: ['Ando'],
|
96
|
+
year: '1973', approximate_year: '(1974)' } } }]
|
97
|
+
expect(pos(sn)).to eq({ 0 => ['genus', 12], 13 => ['species', 20],
|
98
|
+
21 => ['author_word', 25], 27 => ['year', 31], 33 => ['year', 37] })
|
98
99
|
expect(parse('Zygaena witti Wiegel [1973]')).to_not be_nil
|
99
100
|
sn = 'Deyeuxia coarctata Kunth, 1815 [1816]'
|
100
101
|
expect(parse(sn)).to_not be_nil
|
101
|
-
expect(pos(sn)).to eq({0=>['genus', 8], 9=>['species', 18],
|
102
|
-
19=>['author_word', 24], 26=>['year', 30],
|
103
|
-
32=>['year', 36]})
|
102
|
+
expect(pos(sn)).to eq({ 0 => ['genus', 8], 9 => ['species', 18],
|
103
|
+
19 => ['author_word', 24], 26 => ['year', 30],
|
104
|
+
32 => ['year', 36] })
|
104
105
|
end
|
105
|
-
|
106
|
+
|
106
107
|
it 'parses new stuff' do
|
107
108
|
sn = 'Zoropsis (TaKeoa) nishimurai Yaginuma, 1971' #skipping for now
|
108
109
|
sn = 'Campylobacter pyloridis Marshall et al.1985.'
|
109
|
-
expect(details(sn)).to eq [{:
|
110
|
-
:
|
111
|
-
:
|
112
|
-
:
|
110
|
+
expect(details(sn)).to eq [{ genus: { string: 'Campylobacter' },
|
111
|
+
species: { string: 'pyloridis', authorship: 'Marshall et al.1985.',
|
112
|
+
basionymAuthorTeam: { authorTeam: 'Marshall et al.',
|
113
|
+
author: ['Marshall et al.'], year: '1985' } } }]
|
113
114
|
sn = 'Beijerinckia derxii venezuelae corrig. Thompson and Skerman, 1981'
|
114
|
-
expect(details(sn)).to eq [{:
|
115
|
-
:
|
116
|
-
:
|
117
|
-
:
|
118
|
-
:
|
115
|
+
expect(details(sn)).to eq [{ genus: { string: 'Beijerinckia' },
|
116
|
+
species: { string: 'derxii' }, infraspecies: [{ string: 'venezuelae',
|
117
|
+
rank: 'n/a', authorship: 'Thompson and Skerman, 1981',
|
118
|
+
basionymAuthorTeam: { authorTeam: 'Thompson and Skerman',
|
119
|
+
author: ['Thompson', 'Skerman'], year: '1981' } }] }]
|
119
120
|
expect(details('Streptomyces parvisporogenes ignotus 1960')).
|
120
|
-
to eq [{:
|
121
|
-
:
|
122
|
-
:
|
121
|
+
to eq [{ genus: { string: 'Streptomyces' },
|
122
|
+
species: { string: 'parvisporogenes' },
|
123
|
+
infraspecies: [{ string: 'ignotus', rank: 'n/a', year: '1960' }] }]
|
123
124
|
expect(details('Oscillaria caviae Simons 1920, according to Simons 1922')).
|
124
|
-
to eq [{:
|
125
|
-
:
|
126
|
-
{:
|
125
|
+
to eq [{ genus: { string: 'Oscillaria' }, species: { string: 'caviae',
|
126
|
+
authorship: 'Simons 1920', basionymAuthorTeam:
|
127
|
+
{ authorTeam: 'Simons', author: ['Simons'], year: '1920' } } }]
|
127
128
|
sn = 'Bacterium monocytogenes hominis\'\' Nyfeldt 1932'
|
128
|
-
expect(details(sn)).to eq [{:
|
129
|
-
:
|
130
|
-
:
|
129
|
+
expect(details(sn)).to eq [{ genus: { string: 'Bacterium' },
|
130
|
+
species: { string: 'monocytogenes' },
|
131
|
+
infraspecies: [{ string: 'hominis', rank: 'n/a' }] }]
|
131
132
|
sn = 'Choriozopella trägårdhi Lawrence, 1947'
|
132
|
-
expect(details(sn)).to eq [{:
|
133
|
-
:
|
134
|
-
:
|
135
|
-
:
|
133
|
+
expect(details(sn)).to eq [{ genus: { string: 'Choriozopella' },
|
134
|
+
species: { string: 'tragardhi', authorship: 'Lawrence, 1947',
|
135
|
+
basionymAuthorTeam: { authorTeam: 'Lawrence', author: ['Lawrence'],
|
136
|
+
year: '1947' } } }]
|
136
137
|
sn = 'Sparassus françoisi Simon, 1898'
|
137
|
-
expect(details(sn)).to eq [{:
|
138
|
-
:
|
139
|
-
:
|
140
|
-
:
|
138
|
+
expect(details(sn)).to eq [{ genus: { string: 'Sparassus' },
|
139
|
+
species: { string: 'francoisi', authorship: 'Simon, 1898',
|
140
|
+
basionymAuthorTeam: { authorTeam: 'Simon', author: ['Simon'],
|
141
|
+
year: '1898' } } }]
|
141
142
|
sn = 'Dyarcyops birói Kulczynski, 1908'
|
142
|
-
expect(details(sn)).to eq [{:
|
143
|
-
:
|
144
|
-
:
|
145
|
-
:
|
143
|
+
expect(details(sn)).to eq [{ genus: { string: 'Dyarcyops' },
|
144
|
+
species: { string: 'biroi', authorship: 'Kulczynski, 1908',
|
145
|
+
basionymAuthorTeam: { authorTeam: 'Kulczynski',
|
146
|
+
author: ['Kulczynski'], year: '1908' } } }]
|
146
147
|
end
|
147
|
-
|
148
|
+
|
148
149
|
it 'parses names with common utf-8 charactes' do
|
149
|
-
names = ['Rühlella','Sténométope laevissimus Bibron 1855',
|
150
|
+
names = ['Rühlella','Sténométope laevissimus Bibron 1855',
|
150
151
|
'Döringina Ihering 1929'].each do |name|
|
151
152
|
expect(parse(name)).to_not be_nil
|
152
153
|
end
|
153
|
-
expect(details('Hirsutëlla mâle')).to eq [{:
|
154
|
-
:
|
154
|
+
expect(details('Hirsutëlla mâle')).to eq [{ genus: { string: 'Hirsutella' },
|
155
|
+
species: { string: 'male' } }]
|
155
156
|
expect(details('Triticum repens vulgäre')).
|
156
|
-
to eq [{:
|
157
|
-
:
|
157
|
+
to eq [{ genus: { string: 'Triticum' }, species: { string: 'repens' },
|
158
|
+
infraspecies: [{ string: 'vulgare', rank: 'n/a' }] }]
|
158
159
|
end
|
159
|
-
|
160
|
+
|
160
161
|
# AsterophUa japonica
|
161
162
|
# AsyTuktus ridiculw Parent 1931
|
162
163
|
# AtremOEa Staud 1870
|
@@ -91,7 +91,9 @@ describe 'ScientificNameParser with ranked canonicals' do
|
|
91
91
|
['Abies homolepis forma umbilicata (Mayr) Schelle',
|
92
92
|
'Abies homolepis forma umbilicata'],
|
93
93
|
['Quercus ilex ssp. ballota (Desf.) Samp',
|
94
|
-
'Quercus ilex ssp. ballota']
|
94
|
+
'Quercus ilex ssp. ballota'],
|
95
|
+
["Physarum globuliferum forma. flavum Leontyev & Dudka",
|
96
|
+
"Physarum globuliferum forma. flavum"]
|
95
97
|
]
|
96
98
|
data.each do |d|
|
97
99
|
parsed = @parser.parse(d[0])[:scientificName][:canonical]
|
data/spec/spec_helper.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
1
|
+
require "yaml"
|
2
|
+
require "treetop"
|
3
|
+
require "json"
|
4
|
+
require "biodiversity"
|
5
|
+
require "webmock/rspec"
|
6
6
|
|
7
7
|
|
8
8
|
RSpec.configure do |c|
|
@@ -10,14 +10,14 @@ RSpec.configure do |c|
|
|
10
10
|
end
|
11
11
|
|
12
12
|
dir = File.dirname(__FILE__)
|
13
|
-
Treetop.load(File.expand_path(File.join(dir,
|
14
|
-
'../lib/biodiversity/parser/scientific_name_clean')))
|
15
13
|
Treetop.load(File.expand_path(File.join(dir,
|
16
|
-
|
17
|
-
Treetop.load(File.expand_path(File.join(dir,
|
18
|
-
|
14
|
+
"../lib/biodiversity/parser/scientific_name_clean")))
|
15
|
+
Treetop.load(File.expand_path(File.join(dir,
|
16
|
+
"../lib/biodiversity/parser/scientific_name_dirty")))
|
17
|
+
Treetop.load(File.expand_path(File.join(dir,
|
18
|
+
"../lib/biodiversity/parser/scientific_name_canonical")))
|
19
19
|
|
20
|
-
PARSER_TEST_VERSION =
|
20
|
+
PARSER_TEST_VERSION = "test_version"
|
21
21
|
|
22
22
|
def set_parser(parser)
|
23
23
|
@parser = parser
|
@@ -45,36 +45,36 @@ end
|
|
45
45
|
|
46
46
|
def json(input)
|
47
47
|
parse(input).
|
48
|
-
to_json.gsub(/"parser_version":"[^"]*"/,
|
48
|
+
to_json.gsub(/"parser_version":"[^"]*"/,
|
49
49
|
%Q["parser_version":"#{PARSER_TEST_VERSION}"])
|
50
50
|
end
|
51
51
|
|
52
52
|
def debug(input)
|
53
53
|
res = parse(input)
|
54
|
-
puts
|
54
|
+
puts "<pre>"
|
55
55
|
if res
|
56
|
-
puts
|
56
|
+
puts "success!"
|
57
57
|
puts res.inspect
|
58
58
|
else
|
59
59
|
puts input
|
60
60
|
val = @parser.failure_reason.to_s.match(/column [0-9]*/).
|
61
|
-
to_s.gsub(/column /,
|
62
|
-
print (
|
63
|
-
print "^ Computer says '
|
61
|
+
to_s.gsub(/column /, "").to_i
|
62
|
+
print ("-" * (val - 1))
|
63
|
+
print "^ Computer says 'ni'!\n"
|
64
64
|
puts @parser.failure_reason
|
65
65
|
puts @parser.to_yaml
|
66
66
|
end
|
67
|
-
puts
|
67
|
+
puts "</pre>"
|
68
68
|
end
|
69
69
|
|
70
70
|
def read_test_file
|
71
|
-
f = open(File.expand_path(
|
71
|
+
f = open(File.expand_path("../files/test_data.txt", __FILE__))
|
72
72
|
f.each do |line|
|
73
73
|
name, jsn = line.split("|")
|
74
74
|
if line.match(/^\s*#/) == nil && name && jsn
|
75
|
-
yield({:
|
75
|
+
yield({ name: name, jsn: jsn })
|
76
76
|
else
|
77
|
-
yield({:
|
77
|
+
yield({ comment: line })
|
78
78
|
end
|
79
79
|
end
|
80
80
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: biodiversity19
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Mozzherin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: treetop
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.4'
|
34
34
|
type: :runtime
|
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: '1.
|
40
|
+
version: '1.4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: unicode_utils
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,56 +58,56 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
61
|
+
version: '1.8'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1.
|
68
|
+
version: '1.8'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '10.
|
75
|
+
version: '10.4'
|
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: '10.
|
82
|
+
version: '10.4'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '3.
|
89
|
+
version: '3.2'
|
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.2'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: webmock
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1.
|
103
|
+
version: '1.20'
|
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: '1.
|
110
|
+
version: '1.20'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: rr
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,19 +123,19 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '1.1'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: rubocop
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
131
|
+
version: '0.29'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
138
|
+
version: '0.29'
|
139
139
|
description: Tools for biodiversity informatics
|
140
140
|
email: dmozzherin@gmail.com
|
141
141
|
executables:
|
@@ -146,6 +146,7 @@ extra_rdoc_files: []
|
|
146
146
|
files:
|
147
147
|
- ".document"
|
148
148
|
- ".gitignore"
|
149
|
+
- ".rubocop.yml"
|
149
150
|
- ".ruby-version"
|
150
151
|
- ".travis.yml"
|
151
152
|
- CHANGELOG
|
@@ -199,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
200
|
version: '0'
|
200
201
|
requirements: []
|
201
202
|
rubyforge_project:
|
202
|
-
rubygems_version: 2.
|
203
|
+
rubygems_version: 2.4.3
|
203
204
|
signing_key:
|
204
205
|
specification_version: 4
|
205
206
|
summary: Parser of scientific names
|