biodiversity 4.0.2 → 5.1.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 +4 -4
- data/.rubocop.yml +10 -1
- data/.ruby-version +1 -1
- data/.travis.yml +2 -1
- data/CHANGELOG +4 -0
- data/LICENSE +1 -1
- data/README.md +41 -2
- data/biodiversity.gemspec +6 -5
- data/clib/linux/libgnparser.h +16 -12
- data/clib/linux/libgnparser.so +0 -0
- data/clib/mac/libgnparser.h +18 -11
- data/clib/mac/libgnparser.so +0 -0
- data/clib/win/libgnparser.h +16 -12
- data/clib/win/libgnparser.so +0 -0
- data/lib/biodiversity.rb +1 -0
- data/lib/biodiversity/parser.rb +44 -32
- data/lib/biodiversity/version.rb +1 -1
- data/spec/lib/parser_spec.rb +12 -9
- metadata +17 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9df90a14b8fcc999def9b89b58ea277e37749eca303f858ebaee03159bb60d8
|
4
|
+
data.tar.gz: b6f8ed59091c85d12fb660a608444f94c2974c4f7720e7b085b5c02265cad296
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2c749612aed3f60f3fc3041a4685a7f45651ba438d7058687433a8b039443487b3e2e9ff90cf9a976cab5b183bac513ae611d238ceed2353e3ad491f963e81c
|
7
|
+
data.tar.gz: 2765731a3d3a9dfd5bb346246ce8afe741bf9a0b74e9c50bced34d3f82da9ce5e1a56c6d671373b6c0973e4afc63f913bc7badf2f7073f059a2c38aeebfc817c
|
data/.rubocop.yml
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
AllCops:
|
2
|
+
TargetRubyVersion: 2.6
|
3
|
+
NewCops: disable
|
4
|
+
SuggestExtensions: false
|
2
5
|
Exclude:
|
3
6
|
- .bundle/**/*
|
4
7
|
- bundle_bin/**/*
|
@@ -10,4 +13,10 @@ Metrics/MethodLength:
|
|
10
13
|
- lib/**/*
|
11
14
|
Metrics/BlockLength:
|
12
15
|
Exclude:
|
13
|
-
- spec/**/*
|
16
|
+
- spec/**/*
|
17
|
+
Style/HashEachMethods:
|
18
|
+
Enabled: true
|
19
|
+
Style/HashTransformKeys:
|
20
|
+
Enabled: true
|
21
|
+
Style/HashTransformValues:
|
22
|
+
Enabled: true
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
3.0.0
|
data/.travis.yml
CHANGED
data/CHANGELOG
CHANGED
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Biodiversity
|
2
2
|
============
|
3
3
|
|
4
|
-
[](https://doi.org/10.5281/zenodo.3569596)
|
5
5
|
[![Gem Version][gem_svg]][gem_link]
|
6
6
|
[![Continuous Integration Status][ci_svg]][ci_link]
|
7
7
|
|
@@ -17,6 +17,7 @@ For such features use https://gitlab.com/gogna/gnparser.
|
|
17
17
|
|
18
18
|
- [Biodiversity](#biodiversity)
|
19
19
|
- [Installation](#installation)
|
20
|
+
- [Benchmarks](#benchmarks)
|
20
21
|
- [Example usage](#example-usage)
|
21
22
|
- [What is "nameStringID" in the parsed results?](#what-is-%22namestringid%22-in-the-parsed-results)
|
22
23
|
- [Copyright](#copyright)
|
@@ -27,6 +28,38 @@ For such features use https://gitlab.com/gogna/gnparser.
|
|
27
28
|
|
28
29
|
The gem should work on Linux, Mac and Windows (64bit) machines
|
29
30
|
|
31
|
+
## Benchmarks
|
32
|
+
|
33
|
+
The fastest way to go through a massive amount of names is to use
|
34
|
+
`Biodiversity::Parser.parse_ary([big array], simple = true)` function.
|
35
|
+
|
36
|
+
For example parsing a large file with one name per line:
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
#!/usr/bin/env ruby
|
40
|
+
|
41
|
+
require 'biodiversity'
|
42
|
+
|
43
|
+
P = Biodiversity::Parser
|
44
|
+
count = 0
|
45
|
+
File.open('all_names.txt').each_slice(50_000) do |sl|
|
46
|
+
count += 1
|
47
|
+
res = P.parse_ary(sl, true)
|
48
|
+
puts count * 50_000
|
49
|
+
puts res[0]
|
50
|
+
end
|
51
|
+
```
|
52
|
+
|
53
|
+
Here are comparative results of running parsers against a file with 24
|
54
|
+
million names on a 4CPU hyperthreaded laptop:
|
55
|
+
|
56
|
+
| Program | Version | Full/Simple | Names/min |
|
57
|
+
| ------------ | ------- | ----------- | --------: |
|
58
|
+
| gnparser | 0.12.0 | Simple | 3,000,000 |
|
59
|
+
| biodiversity | 4.0.1 | Simple | 2,000,000 |
|
60
|
+
| biodiversity | 4.0.1 | Full JSON | 800,000 |
|
61
|
+
| biodiversity | 3.5.1 | n/a | 40,000 |
|
62
|
+
|
30
63
|
## Example usage
|
31
64
|
|
32
65
|
You can use it as a library in Ruby:
|
@@ -92,7 +125,11 @@ Copyright
|
|
92
125
|
|
93
126
|
Authors: [Dmitry Mozzherin][dimus]
|
94
127
|
|
95
|
-
|
128
|
+
Contributors: [Patrick Leary][pleary], [Hernán Lucas Pereira][hernan]
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
Copyright (c) 2008-2020 Dmitry Mozzherin. See [LICENSE][license]
|
96
133
|
for further details.
|
97
134
|
|
98
135
|
[gem_svg]: https://badge.fury.io/rb/biodiversity.svg
|
@@ -100,6 +137,8 @@ for further details.
|
|
100
137
|
[ci_svg]: https://secure.travis-ci.org/GlobalNamesArchitecture/biodiversity.svg
|
101
138
|
[ci_link]: http://travis-ci.org/GlobalNamesArchitecture/biodiversity
|
102
139
|
[dimus]: https://github.com/dimus
|
140
|
+
[pleary]: https://github.com/pleary
|
141
|
+
[hernan]: https://github.com/LocoDelAssembly
|
103
142
|
[license]: https://github.com/GlobalNamesArchitecture/biodiversity/blob/master/LICENSE
|
104
143
|
[uuid_examples]: https://github.com/GlobalNamesArchitecture/gn_uuid_examples
|
105
144
|
[uuid_blog]: http://globalnamesarchitecture.github.io/gna/uuid/2015/05/31/gn-uuid-0-5-0.html
|
data/biodiversity.gemspec
CHANGED
@@ -5,6 +5,7 @@ $LOAD_PATH.push File.expand_path('lib', __dir__)
|
|
5
5
|
require 'biodiversity/version'
|
6
6
|
|
7
7
|
Gem::Specification.new do |gem|
|
8
|
+
gem.required_ruby_version = '>= 2.6'
|
8
9
|
gem.name = 'biodiversity'
|
9
10
|
gem.version = Biodiversity::VERSION
|
10
11
|
gem.homepage = 'https://github.com/GlobalNamesArchitecture/biodiversity'
|
@@ -17,11 +18,11 @@ Gem::Specification.new do |gem|
|
|
17
18
|
gem.files = `git ls-files`.split("\n")
|
18
19
|
gem.require_paths = ['lib']
|
19
20
|
|
20
|
-
gem.add_runtime_dependency 'ffi', '~> 1.
|
21
|
+
gem.add_runtime_dependency 'ffi', '~> 1.14'
|
21
22
|
|
22
|
-
gem.add_development_dependency 'bundler', '~> 2.
|
23
|
-
gem.add_development_dependency 'byebug', '~> 11.
|
23
|
+
gem.add_development_dependency 'bundler', '~> 2.2'
|
24
|
+
gem.add_development_dependency 'byebug', '~> 11.1'
|
24
25
|
gem.add_development_dependency 'rake', '~> 13.0'
|
25
|
-
gem.add_development_dependency 'rspec', '~> 3.
|
26
|
-
gem.add_development_dependency 'rubocop', '~>
|
26
|
+
gem.add_development_dependency 'rspec', '~> 3.10'
|
27
|
+
gem.add_development_dependency 'rubocop', '~> 1.8'
|
27
28
|
end
|
data/clib/linux/libgnparser.h
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* Code generated by cmd/cgo; DO NOT EDIT. */
|
2
2
|
|
3
|
-
/* package
|
3
|
+
/* package github.com/gnames/gnparser/binding */
|
4
4
|
|
5
5
|
|
6
6
|
#line 1 "cgo-builtin-export-prolog"
|
@@ -74,19 +74,23 @@ extern "C" {
|
|
74
74
|
#endif
|
75
75
|
|
76
76
|
|
77
|
-
// ParseToString function takes a name-string, desired format,
|
78
|
-
// the name-string to either JSON, or
|
79
|
-
// the desired format. Format can take values of
|
77
|
+
// ParseToString function takes a name-string, desired format, a withDetails
|
78
|
+
// flag as 0|1 integer. It parses the name-string to either JSON, or a CSV
|
79
|
+
// string, depending on the desired format. Format argument can take values of
|
80
|
+
// 'csv', 'compact', 'pretty'. If withDetails argument is 0, additional
|
81
|
+
// parsed details are ommited, if it is 1 -- they are included.
|
82
|
+
// true.
|
83
|
+
extern char* ParseToString(char* name, char* f, int details);
|
80
84
|
|
81
|
-
|
85
|
+
// FreeMemory takes a string pointer and frees its memory.
|
86
|
+
extern void FreeMemory(char* p);
|
82
87
|
|
83
|
-
//
|
84
|
-
//
|
85
|
-
//
|
86
|
-
//
|
87
|
-
//
|
88
|
-
|
89
|
-
extern void ParseAryToStrings(char** p0, int p1, char* p2, char*** p3);
|
88
|
+
// ParseAryToString function takes an array of names, parsing format, and a
|
89
|
+
// withDetails flag as 0|1 integer. Parsed outputs are sent as a string in
|
90
|
+
// either CSV or JSON format. Format argument can take values of 'csv',
|
91
|
+
// 'compact', or 'pretty'. For withDetails argument 0 means false, 1 means
|
92
|
+
// true.
|
93
|
+
extern char* ParseAryToString(char** in, int length, char* f, int details);
|
90
94
|
|
91
95
|
#ifdef __cplusplus
|
92
96
|
}
|
data/clib/linux/libgnparser.so
CHANGED
Binary file
|
data/clib/mac/libgnparser.h
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* Code generated by cmd/cgo; DO NOT EDIT. */
|
2
2
|
|
3
|
-
/* package
|
3
|
+
/* package github.com/gnames/gnparser/binding */
|
4
4
|
|
5
5
|
|
6
6
|
#line 1 "cgo-builtin-export-prolog"
|
@@ -74,19 +74,26 @@ extern "C" {
|
|
74
74
|
#endif
|
75
75
|
|
76
76
|
|
77
|
-
// ParseToString function takes a name-string, desired format,
|
78
|
-
// the name-string to either JSON, or
|
79
|
-
// the desired format. Format can take values of
|
77
|
+
// ParseToString function takes a name-string, desired format, a withDetails
|
78
|
+
// flag as 0|1 integer. It parses the name-string to either JSON, or a CSV
|
79
|
+
// string, depending on the desired format. Format argument can take values of
|
80
|
+
// 'csv', 'compact', 'pretty'. If withDetails argument is 0, additional
|
81
|
+
// parsed details are ommited, if it is 1 -- they are included.
|
82
|
+
// true.
|
80
83
|
|
81
|
-
extern char* ParseToString(char* p0, char* p1);
|
84
|
+
extern char* ParseToString(char* p0, char* p1, int p2);
|
82
85
|
|
83
|
-
//
|
84
|
-
// reference to an output: an empty array of strings to return the the data
|
85
|
-
// back. It populates the output array with raw strings of either JSON or
|
86
|
-
// pipe-separated parsed values (depending on a given format). Format can take
|
87
|
-
// values of 'simple', 'compact', or 'pretty'.
|
86
|
+
// FreeMemory takes a string pointer and frees its memory.
|
88
87
|
|
89
|
-
extern void
|
88
|
+
extern void FreeMemory(char* p0);
|
89
|
+
|
90
|
+
// ParseAryToString function takes an array of names, parsing format, and a
|
91
|
+
// withDetails flag as 0|1 integer. Parsed outputs are sent as a string in
|
92
|
+
// either CSV or JSON format. Format argument can take values of 'csv',
|
93
|
+
// 'compact', or 'pretty'. For withDetails argument 0 means false, 1 means
|
94
|
+
// true.
|
95
|
+
|
96
|
+
extern char* ParseAryToString(char** p0, int p1, char* p2, int p3);
|
90
97
|
|
91
98
|
#ifdef __cplusplus
|
92
99
|
}
|
data/clib/mac/libgnparser.so
CHANGED
Binary file
|
data/clib/win/libgnparser.h
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* Code generated by cmd/cgo; DO NOT EDIT. */
|
2
2
|
|
3
|
-
/* package
|
3
|
+
/* package github.com/gnames/gnparser/binding */
|
4
4
|
|
5
5
|
|
6
6
|
#line 1 "cgo-builtin-export-prolog"
|
@@ -74,19 +74,23 @@ extern "C" {
|
|
74
74
|
#endif
|
75
75
|
|
76
76
|
|
77
|
-
// ParseToString function takes a name-string, desired format,
|
78
|
-
// the name-string to either JSON, or
|
79
|
-
// the desired format. Format can take values of
|
77
|
+
// ParseToString function takes a name-string, desired format, a withDetails
|
78
|
+
// flag as 0|1 integer. It parses the name-string to either JSON, or a CSV
|
79
|
+
// string, depending on the desired format. Format argument can take values of
|
80
|
+
// 'csv', 'compact', 'pretty'. If withDetails argument is 0, additional
|
81
|
+
// parsed details are ommited, if it is 1 -- they are included.
|
82
|
+
// true.
|
83
|
+
extern char* ParseToString(char* name, char* f, int details);
|
80
84
|
|
81
|
-
|
85
|
+
// FreeMemory takes a string pointer and frees its memory.
|
86
|
+
extern void FreeMemory(char* p);
|
82
87
|
|
83
|
-
//
|
84
|
-
//
|
85
|
-
//
|
86
|
-
//
|
87
|
-
//
|
88
|
-
|
89
|
-
extern void ParseAryToStrings(char** p0, int p1, char* p2, char*** p3);
|
88
|
+
// ParseAryToString function takes an array of names, parsing format, and a
|
89
|
+
// withDetails flag as 0|1 integer. Parsed outputs are sent as a string in
|
90
|
+
// either CSV or JSON format. Format argument can take values of 'csv',
|
91
|
+
// 'compact', or 'pretty'. For withDetails argument 0 means false, 1 means
|
92
|
+
// true.
|
93
|
+
extern char* ParseAryToString(char** in, int length, char* f, int details);
|
90
94
|
|
91
95
|
#ifdef __cplusplus
|
92
96
|
}
|
data/clib/win/libgnparser.so
CHANGED
Binary file
|
data/lib/biodiversity.rb
CHANGED
data/lib/biodiversity/parser.rb
CHANGED
@@ -25,55 +25,67 @@ module Biodiversity
|
|
25
25
|
ffi_lib File.join(__dir__, '..', '..', 'clib', platform, 'libgnparser.so')
|
26
26
|
POINTER_SIZE = FFI.type_size(:pointer)
|
27
27
|
|
28
|
-
|
29
|
-
attach_function(:parse_ary_go, :ParseAryToStrings,
|
30
|
-
%i[pointer int string pointer], :void)
|
28
|
+
callback(:parser_callback, %i[string], :void)
|
31
29
|
|
32
|
-
|
33
|
-
|
34
|
-
|
30
|
+
attach_function(:parse_go, :ParseToString,
|
31
|
+
%i[string string int], :strptr)
|
32
|
+
attach_function(:parse_ary_go, :ParseAryToString,
|
33
|
+
%i[pointer int string int], :strptr)
|
34
|
+
attach_function(:free_mem, :FreeMemory, %i[pointer], :void)
|
35
|
+
|
36
|
+
def self.parse(name, simple: false, details: false)
|
37
|
+
format = simple ? 'csv' : 'compact'
|
38
|
+
with_details = details ? 1 : 0
|
39
|
+
|
40
|
+
parsed, ptr = parse_go(name, format, with_details)
|
41
|
+
free_mem(ptr)
|
35
42
|
output(parsed, simple)
|
36
43
|
end
|
37
44
|
|
38
|
-
def self.parse_ary(ary, simple
|
39
|
-
format = simple ? '
|
45
|
+
def self.parse_ary(ary, simple: false, details: false)
|
46
|
+
format = simple ? 'csv' : 'compact'
|
47
|
+
with_details = details ? 1 : 0
|
48
|
+
|
40
49
|
in_ptr = FFI::MemoryPointer.new(:pointer, ary.length)
|
41
50
|
in_ptr.write_array_of_pointer(
|
42
51
|
ary.map { |s| FFI::MemoryPointer.from_string(s) }
|
43
52
|
)
|
44
|
-
out_var = FFI::MemoryPointer.new(:pointer)
|
45
|
-
parse_ary_go(in_ptr, ary.length, format, out_var)
|
46
53
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
54
|
+
parsed, ptr = parse_ary_go(in_ptr, ary.length, format, with_details)
|
55
|
+
free_mem(ptr)
|
56
|
+
if simple
|
57
|
+
CSV.new(parsed).map do |row|
|
58
|
+
csv_row(row)
|
59
|
+
end
|
60
|
+
else
|
61
|
+
JSON.parse(parsed, symbolize_names: true)
|
55
62
|
end
|
56
|
-
CLib.free(out_var.read_pointer)
|
57
63
|
end
|
58
64
|
|
59
65
|
def self.output(parsed, simple)
|
60
66
|
if simple
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
verbatim: parsed[1],
|
65
|
-
canonicalName: {
|
66
|
-
full: parsed[2],
|
67
|
-
simple: parsed[3],
|
68
|
-
stem: parsed[4]
|
69
|
-
},
|
70
|
-
authorship: parsed[5],
|
71
|
-
year: parsed[6],
|
72
|
-
quality: parsed[7]
|
73
|
-
}
|
67
|
+
csv = CSV.new(parsed)
|
68
|
+
row = csv.readlines[0]
|
69
|
+
csv_row(row)
|
74
70
|
else
|
75
71
|
JSON.parse(parsed, symbolize_names: true)
|
76
72
|
end
|
77
73
|
end
|
74
|
+
|
75
|
+
def self.csv_row(row)
|
76
|
+
{
|
77
|
+
id: row[0],
|
78
|
+
verbatim: row[1],
|
79
|
+
cardinality: row[2],
|
80
|
+
canonical: {
|
81
|
+
stem: row[3],
|
82
|
+
simple: row[4],
|
83
|
+
full: row[5]
|
84
|
+
},
|
85
|
+
authorship: row[6],
|
86
|
+
year: row[7],
|
87
|
+
quality: row[8]
|
88
|
+
}
|
89
|
+
end
|
78
90
|
end
|
79
91
|
end
|
data/lib/biodiversity/version.rb
CHANGED
data/spec/lib/parser_spec.rb
CHANGED
@@ -5,20 +5,20 @@
|
|
5
5
|
describe Biodiversity::Parser do
|
6
6
|
describe('parse') do
|
7
7
|
it 'parses name in simple format' do
|
8
|
-
parsed = subject.parse('Homo sapiens Linn.', true)
|
9
|
-
expect(parsed[:
|
8
|
+
parsed = subject.parse('Homo sapiens Linn.', simple: true)
|
9
|
+
expect(parsed[:canonical][:simple]).to eq 'Homo sapiens'
|
10
10
|
expect(parsed[:normalized]).to be_nil
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'parsed name in full format' do
|
14
14
|
parsed = subject.parse('Homo sapiens Linn.')
|
15
|
-
expect(parsed[:
|
15
|
+
expect(parsed[:canonical][:simple]).to eq 'Homo sapiens'
|
16
16
|
expect(parsed[:normalized]).to eq 'Homo sapiens Linn.'
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'gets quality and year correctly in simple form' do
|
20
|
-
parsed = subject.parse('Homo sapiens Linn. 1758', true)
|
21
|
-
expect(parsed[:
|
20
|
+
parsed = subject.parse('Homo sapiens Linn. 1758', simple: true)
|
21
|
+
expect(parsed[:canonical][:simple]).to eq 'Homo sapiens'
|
22
22
|
expect(parsed[:year]).to eq '1758'
|
23
23
|
expect(parsed[:quality]).to eq '1'
|
24
24
|
expect(parsed[:normalized]).to be_nil
|
@@ -27,9 +27,12 @@ describe Biodiversity::Parser do
|
|
27
27
|
|
28
28
|
describe('parse_ary') do
|
29
29
|
it 'parses names in simple format' do
|
30
|
-
parsed = subject.parse_ary(
|
31
|
-
|
32
|
-
|
30
|
+
parsed = subject.parse_ary(
|
31
|
+
['Homo sapiens Linn.', 'Pardosa moesta'],
|
32
|
+
simple: true
|
33
|
+
)
|
34
|
+
expect(parsed[0][:canonical][:simple]).to eq 'Homo sapiens'
|
35
|
+
expect(parsed[1][:canonical][:simple]).to eq 'Pardosa moesta'
|
33
36
|
expect(parsed[0][:normalized]).to be_nil
|
34
37
|
end
|
35
38
|
|
@@ -37,7 +40,7 @@ describe Biodiversity::Parser do
|
|
37
40
|
parsed = subject.parse_ary(
|
38
41
|
['Homo sapiens Linn.', 'Tobacco Mosaic Virus']
|
39
42
|
)
|
40
|
-
expect(parsed[0][:
|
43
|
+
expect(parsed[0][:canonical][:simple]).to eq 'Homo sapiens'
|
41
44
|
expect(parsed[0][:normalized]).to eq 'Homo sapiens Linn.'
|
42
45
|
expect(parsed[1][:parsed]).to be false
|
43
46
|
expect(parsed[1][:virus]).to be true
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: biodiversity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Mozzherin
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.14'
|
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: '1.
|
26
|
+
version: '1.14'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '2.
|
33
|
+
version: '2.2'
|
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: '2.
|
40
|
+
version: '2.2'
|
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: '11.
|
47
|
+
version: '11.1'
|
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: '11.
|
54
|
+
version: '11.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,28 +72,28 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '3.
|
75
|
+
version: '3.10'
|
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: '3.
|
82
|
+
version: '3.10'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rubocop
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '1.8'
|
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: '
|
96
|
+
version: '1.8'
|
97
97
|
description: Parsing tool for biodiversity informatics
|
98
98
|
email: dmozzherin@gmail.com
|
99
99
|
executables: []
|
@@ -127,7 +127,7 @@ homepage: https://github.com/GlobalNamesArchitecture/biodiversity
|
|
127
127
|
licenses:
|
128
128
|
- MIT
|
129
129
|
metadata: {}
|
130
|
-
post_install_message:
|
130
|
+
post_install_message:
|
131
131
|
rdoc_options: []
|
132
132
|
require_paths:
|
133
133
|
- lib
|
@@ -135,16 +135,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
138
|
+
version: '2.6'
|
139
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
140
|
requirements:
|
141
141
|
- - ">="
|
142
142
|
- !ruby/object:Gem::Version
|
143
143
|
version: '0'
|
144
144
|
requirements: []
|
145
|
-
|
146
|
-
|
147
|
-
signing_key:
|
145
|
+
rubygems_version: 3.2.3
|
146
|
+
signing_key:
|
148
147
|
specification_version: 4
|
149
148
|
summary: Parser of scientific names
|
150
149
|
test_files: []
|