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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8e1a5a67bcea7c0e234726d7702c4224b109a7852899a2d3b84d25b38ee9ad84
4
- data.tar.gz: 69e7781d05858faa63ed40b4d964499e0718bec3b6fecc9e5620879bd72acf34
3
+ metadata.gz: b9df90a14b8fcc999def9b89b58ea277e37749eca303f858ebaee03159bb60d8
4
+ data.tar.gz: b6f8ed59091c85d12fb660a608444f94c2974c4f7720e7b085b5c02265cad296
5
5
  SHA512:
6
- metadata.gz: be191bc9156447da5883c7a910b83012422869bbe7fdb6950833e2090b1ad33fb521dd5196376fba821d2991857a5c0adcc06b80f5752b7434c428a449d662b1
7
- data.tar.gz: 4bc7244b2d4c24146aa19f191c78e9645779298cfb67a18904aaddae3c0baa866035ecfed82827bc2e78cde54e8ee4fd9dccdedd76f8a43d222f06212a07ce35
6
+ metadata.gz: b2c749612aed3f60f3fc3041a4685a7f45651ba438d7058687433a8b039443487b3e2e9ff90cf9a976cab5b183bac513ae611d238ceed2353e3ad491f963e81c
7
+ data.tar.gz: 2765731a3d3a9dfd5bb346246ce8afe741bf9a0b74e9c50bced34d3f82da9ce5e1a56c6d671373b6c0973e4afc63f913bc7badf2f7073f059a2c38aeebfc817c
@@ -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
@@ -1 +1 @@
1
- 2.5.7
1
+ 3.0.0
@@ -1,6 +1,7 @@
1
1
  rvm:
2
- - 2.5
3
2
  - 2.6
3
+ - 2.7
4
+ - 3.0
4
5
  before_install: "gem update bundler"
5
6
  branches:
6
7
  only:
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ 5.0.0 -- changed GNparser to v 1.0.0
2
+
3
+ 4.0.3 -- fix memory leak in parse_ary method
4
+
1
5
  4.0.2 -- add MS Windows libraries
2
6
 
3
7
  4.0.1 -- fix for simple output
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2008-2018 Dmitry Mozzherin
3
+ Copyright (c) 2008-2020 Dmitry Mozzherin
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining
6
6
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  Biodiversity
2
2
  ============
3
3
 
4
- [![DOI](https://zenodo.org/badge/19435/GlobalNamesArchitecture/biodiversity.svg)](https://zenodo.org/badge/latestdoi/19435/GlobalNamesArchitecture/biodiversity)
4
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3569596.svg)](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
- Copyright (c) 2008-2019 Dmitry Mozzherin. See [LICENSE][license]
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
@@ -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.11'
21
+ gem.add_runtime_dependency 'ffi', '~> 1.14'
21
22
 
22
- gem.add_development_dependency 'bundler', '~> 2.0'
23
- gem.add_development_dependency 'byebug', '~> 11.0'
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.9'
26
- gem.add_development_dependency 'rubocop', '~> 0.76'
26
+ gem.add_development_dependency 'rspec', '~> 3.10'
27
+ gem.add_development_dependency 'rubocop', '~> 1.8'
27
28
  end
@@ -1,6 +1,6 @@
1
1
  /* Code generated by cmd/cgo; DO NOT EDIT. */
2
2
 
3
- /* package gitlab.com/gogna/gnparser/binding */
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, and parses
78
- // the name-string to either JSON, or pipe-separated values, depending on
79
- // the desired format. Format can take values of 'simple', 'compact', 'pretty'.
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
- extern char* ParseToString(char* p0, char* p1);
85
+ // FreeMemory takes a string pointer and frees its memory.
86
+ extern void FreeMemory(char* p);
82
87
 
83
- // ParseAryToStrings function takes an array of names, parsing format and a
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'.
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
  }
Binary file
@@ -1,6 +1,6 @@
1
1
  /* Code generated by cmd/cgo; DO NOT EDIT. */
2
2
 
3
- /* package gitlab.com/gogna/gnparser/binding */
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, and parses
78
- // the name-string to either JSON, or pipe-separated values, depending on
79
- // the desired format. Format can take values of 'simple', 'compact', 'pretty'.
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
- // ParseAryToStrings function takes an array of names, parsing format and a
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 ParseAryToStrings(char** p0, int p1, char* p2, char*** p3);
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
  }
Binary file
@@ -1,6 +1,6 @@
1
1
  /* Code generated by cmd/cgo; DO NOT EDIT. */
2
2
 
3
- /* package gitlab.com/gogna/gnparser/binding */
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, and parses
78
- // the name-string to either JSON, or pipe-separated values, depending on
79
- // the desired format. Format can take values of 'simple', 'compact', 'pretty'.
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
- extern char* ParseToString(char* p0, char* p1);
85
+ // FreeMemory takes a string pointer and frees its memory.
86
+ extern void FreeMemory(char* p);
82
87
 
83
- // ParseAryToStrings function takes an array of names, parsing format and a
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'.
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
  }
Binary file
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'ffi'
4
4
  require 'json'
5
+ require 'csv'
5
6
  require_relative 'biodiversity/version'
6
7
  require_relative 'biodiversity/parser'
7
8
 
@@ -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
- attach_function(:parse_go, :ParseToString, %i[string string], :string)
29
- attach_function(:parse_ary_go, :ParseAryToStrings,
30
- %i[pointer int string pointer], :void)
28
+ callback(:parser_callback, %i[string], :void)
31
29
 
32
- def self.parse(name, simple = false)
33
- format = simple ? 'simple' : 'compact'
34
- parsed = parse_go(name, format)
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 = false)
39
- format = simple ? 'simple' : 'compact'
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
- out_var.read_pointer
48
- .get_array_of_string(0, ary.length)
49
- .each_with_object([]) do |prsd, a|
50
- a << output(prsd, simple)
51
- end
52
- ensure
53
- out_var.read_pointer.get_array_of_pointer(0, ary.length).each do |p|
54
- CLib.free(p)
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
- parsed = parsed.split('|')
62
- {
63
- id: parsed[0],
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
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Biodiversity module provides a namespace for scientific name parser.
4
4
  module Biodiversity
5
- VERSION = '4.0.2'
5
+ VERSION = '5.1.0'
6
6
 
7
7
  def self.version
8
8
  VERSION
@@ -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[:canonicalName][:simple]).to eq 'Homo sapiens'
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[:canonicalName][:simple]).to eq 'Homo sapiens'
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[:canonicalName][:simple]).to eq 'Homo sapiens'
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(['Homo sapiens Linn.', 'Pardosa moesta'], true)
31
- expect(parsed[0][:canonicalName][:simple]).to eq 'Homo sapiens'
32
- expect(parsed[1][:canonicalName][:simple]).to eq 'Pardosa moesta'
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][:canonicalName][:simple]).to eq 'Homo sapiens'
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.0.2
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: 2019-11-18 00:00:00.000000000 Z
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.11'
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.11'
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.0'
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.0'
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.0'
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.0'
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.9'
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.9'
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: '0.76'
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: '0.76'
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: '0'
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
- rubyforge_project:
146
- rubygems_version: 2.7.6.2
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: []