idigbio_client 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c93a98a42c4cd9936bbca8f3b37dfbbf052590a0
4
+ data.tar.gz: ef51fb9364dc76e6734ed92d9e21808cdf895272
5
+ SHA512:
6
+ metadata.gz: 9118912a42a83674c8e7bcbbd378a5830e6955df18da2098d688cebd4fd5b668b18bb61b3b7d4d36d8bbfbf2199d61c7ea6ebd607511d1de655f34b0c0048df4
7
+ data.tar.gz: 5d46747e2e78157907dc95230ad824366de95e36629cd5e726463207c55fe1d6514849c41ef8e256879f34e50356582d01c52e4b551cc4c061b859c7ab7e9fa6
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,12 @@
1
+ AllCops:
2
+ Exclude:
3
+ - db/**/*
4
+ - bundle_bin/**/*
5
+ Include:
6
+ - exe/idigbio
7
+ Metrics/ModuleLength:
8
+ Max: 1000
9
+ Style/StringLiterals:
10
+ EnforcedStyle: double_quotes
11
+ Style/DotPosition:
12
+ EnforcedStyle: trailing
@@ -0,0 +1,11 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9
4
+ - 2.0
5
+ - 2.1
6
+ - 2.2
7
+ script:
8
+ - bundle exec rake
9
+ branches:
10
+ only:
11
+ - master
@@ -0,0 +1,8 @@
1
+ gn_crossmap CHANGELOG
2
+ =====================
3
+
4
+ 0.1.0
5
+ -----
6
+ - [Dmitry Mozzherin][dimus] - initial version
7
+
8
+ [dimus]: https://github.com/dimus
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in idigbio_client.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2015 Marine Biological Laboratory
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,188 @@
1
+ IdigbioClient
2
+ =============
3
+
4
+ [![Gem Version][gem_badge]][gem_link]
5
+ [![Continuous Integration Status][ci_badge]][ci_link]
6
+ [![Coverage Status][cov_badge]][cov_link]
7
+ [![CodeClimate][code_badge]][code_link]
8
+ [![Dependency Status][dep_badge]][dep_link]
9
+
10
+
11
+ `idigbio_client` is a Ruby wrapper for [iDigBio API][api]
12
+
13
+
14
+ Installation
15
+ ------------
16
+
17
+ Add this line to your application's Gemfile:
18
+
19
+ ```ruby
20
+ gem 'idigbio_client'
21
+ ```
22
+
23
+ And then execute:
24
+
25
+ $ bundle
26
+
27
+ Or install it yourself as:
28
+
29
+ $ gem install idigbio_client
30
+
31
+ Usage
32
+ -----
33
+
34
+ Client functions can be grouped in 4 catetories
35
+
36
+ * [inspect][inspect] - introspective methods
37
+ * [search][search] - search by provided parameters
38
+ * [show][show] - show any one object based on its UUID
39
+ * [stats][stats] - various statistical data
40
+
41
+ ### Inspect
42
+
43
+ Methos in this section supply metainformation important for effective use
44
+ of the client.
45
+
46
+ #### Method `IdigbioClient.types`
47
+
48
+ Returns an array of types (resources) available via API.
49
+
50
+ ```ruby
51
+ require "idigbio_client"
52
+
53
+ IdigbioClient.types
54
+ ```
55
+
56
+ #### Method `IdigbioClient.fields(type)
57
+
58
+ Returns a hash with description of fields associated with a resource. Takes one
59
+ optional parameter `type`. If type is not given it returns fields to all types
60
+ in a hash.
61
+
62
+ | Parameter | Type | Description |
63
+ |------------|------------------|---------------------------------------------------------------|
64
+ | type | String or Symbol | indicates which type to query for its fields; *default* `nil` |
65
+
66
+ ```ruby
67
+ require "idigbio_client"
68
+
69
+ IdigbioClient.fields
70
+
71
+ # fields of a specific type
72
+ IdigbioClient.fields(:mediarecords)
73
+ IdigbioClient.fields("records")
74
+ ```
75
+
76
+ ### Search
77
+
78
+ #### Method `IdigbioClient.search(opts)`
79
+
80
+ Takes a hash of opts, returns a hash with results of a search.
81
+
82
+ | opts.keys | Type | Description |
83
+ |------------|------------------|----------------------------------------|
84
+ | :type | String or Symbol | resource type; *default* `:records` |
85
+ | :params | search options hash; *default* `{}` |
86
+
87
+ ##### params
88
+
89
+ | param.keys | Description |
90
+ |------------|----------------------------------------------------|
91
+ | :rq | search query hash, default `{}` |
92
+ | :limit | how many records to return in total, default `100` |
93
+ | :offset | from which record to start, default `0` |
94
+
95
+ ```ruby
96
+ require "idigbio_client"
97
+
98
+ # specimen records search
99
+ params = { rq: { genus: "acer" }, limit: 15 }
100
+ IdigbioClient.search(type: :records, params: params)
101
+
102
+ # using non-default type
103
+ IdigbioClient.search(type: :mediarecords, params: params)
104
+ ```
105
+ ### Show
106
+
107
+ #### Method: `IdigbioClient.show(uuid)`
108
+
109
+ Takes uuid, returns record associated with UUID. Record can be of any type.
110
+
111
+ | Parameters | Type | Description |
112
+ |------------|--------|-------------|
113
+ | uuid | String | UUID |
114
+
115
+
116
+ ```ruby
117
+ require "idigbio_client"
118
+
119
+ IdigbioClient.show("1c29be70-24e7-480b-aab1-61224ded0f34")
120
+ ```
121
+
122
+ ### Stats
123
+
124
+ #### Method: `IdigbioClient.count(opts)`
125
+
126
+ Returns the number of records of a specified type
127
+
128
+ | opts.keys | Type | Description |
129
+ |------------|------------------|----------------------------------------|
130
+ | :type | String or Symbol | resource type; *default* `:records` |
131
+ | :params | search options hash; *default* `{}` |
132
+
133
+ ```ruby
134
+ require "idigbio_client"
135
+
136
+ IdigbioClient.count
137
+ IdigbioClient.count(type: :recordsets)
138
+ IdigbioClient.count(type: :mediarecords, params: { rq: { genus: "acer" } })
139
+ ```
140
+
141
+ Development
142
+ -----------
143
+
144
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run
145
+ `bin/console` for an interactive prompt that will allow you to experiment.
146
+
147
+ To install this gem onto your local machine, run `bundle exec rake install`. To
148
+ release a new version, update the version number in `version.rb`, and then run
149
+ `bundle exec rake release` to create a git tag for the version, push git
150
+ commits and tags, and push the `.gem` file to
151
+ [rubygems.org][rubygems].
152
+
153
+ ## Contributing
154
+
155
+ 1. Fork it ( https://github.com/[my-github-username]/idigbio_client/fork )
156
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
157
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
158
+ 4. Push to the branch (`git push origin my-new-feature`)
159
+ 5. Create a new Pull Request
160
+
161
+ Copyright
162
+ ---------
163
+
164
+ Authors -- [Greg Traub][greg], [Dmitry Mozzherin][dimus]
165
+
166
+ Copyright (c) 2015 [Greg Traub][greg], [Dmitry Mozzherin][dimus]
167
+ See [LICENSE][license] for details.
168
+
169
+
170
+ [gem_badge]: https://badge.fury.io/rb/idigbio_client.svg
171
+ [gem_link]: http://badge.fury.io/rb/idigbio_client
172
+ [ci_badge]: https://secure.travis-ci.org/GlobalNamesArchitecture/idigbio_client.svg
173
+ [ci_link]: http://travis-ci.org/GlobalNamesArchitecture/idigbio_client
174
+ [cov_badge]: https://coveralls.io/repos/GlobalNamesArchitecture/idigbio_client/badge.svg?branch=master
175
+ [cov_link]: https://coveralls.io/r/GlobalNamesArchitecture/idigbio_client?branch=master
176
+ [code_badge]: https://codeclimate.com/github/GlobalNamesArchitecture/idigbio_client/badges/gpa.svg
177
+ [code_link]: https://codeclimate.com/github/GlobalNamesArchitecture/idigbio_client
178
+ [dep_badge]: https://gemnasium.com/GlobalNamesArchitecture/idigbio_client.png
179
+ [dep_link]: https://gemnasium.com/GlobalNamesArchitecture/idigbio_client
180
+ [api]: https://www.idigbio.org/wiki/index.php/IDigBio_API
181
+ [inspect]: #inspect
182
+ [search]: #search
183
+ [show]: #show
184
+ [stats]: #stats
185
+ [rubygems]: https://rubygems.org
186
+ [license]: https://github.com/GlobalNamesArchitecture/idigbio-ruby-client/blob/master/LICENSE
187
+ [greg]: https://github.com/gete76
188
+ [dimus]: https://github.com/dimus
@@ -0,0 +1,11 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+ require "rubocop/rake_task"
4
+
5
+ RSpec::Core::RakeTask.new(:rspec) do |rspec|
6
+ rspec.pattern = "spec/**/*_spec.rb"
7
+ end
8
+
9
+ RuboCop::RakeTask.new
10
+
11
+ task default: [:rubocop, :rspec]
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "idigbio_client"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "trollop"
4
+
5
+ SUB_COMMANDS = %w(search)
6
+ global_opts = Trollop.options do
7
+ banner "Client to iDibBio API \n" \
8
+ "Usage:\n" \
9
+ "idigbio search [opts]\n" \
10
+ "--------------------------"
11
+
12
+ stop_on SUB_COMMANDS
13
+ end
14
+
15
+ cmd = ARGV.shift
16
+ cmd_opts = case cmd
17
+ when "search"
18
+ Trollop.options do
19
+ opt(:method,
20
+ "HTTP method: get or post",
21
+ short: "-m",
22
+ default: "post")
23
+ end
24
+ else
25
+ Trollop.die "unknown subcommand #{cmd.inspect}"
26
+ end
27
+
28
+ puts "Global options: #{global_opts.inspect}"
29
+ puts "Subcommand: #{cmd.inspect}"
30
+ puts "Subcommand options: #{cmd_opts.inspect}"
31
+ puts "Remaining arguments: #{ARGV.inspect}"
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "idigbio_client/version"
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "idigbio_client"
8
+ gem.version = IdigbioClient::VERSION
9
+ gem.authors = ["Greg T.", "Dmitry Mozzherin"]
10
+ gem.email = ["dmozzherin@gmail.com"]
11
+
12
+ gem.summary = "Ruby wrapper for iDigBio API"
13
+ gem.description = "Ruby wrapper for iDigBio API"
14
+ gem.homepage = "https://github.com/GlobalNamesArchitecture/idigbio-ruby-client"
15
+
16
+ gem.files = `git ls-files -z`.split("\x0").
17
+ reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ gem.bindir = "exe"
19
+ gem.executables = gem.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ gem.require_paths = ["lib"]
21
+ gem.add_dependency "rest-client", "~> 1.8"
22
+ gem.add_dependency "trollop", "~> 2.1"
23
+
24
+ gem.add_development_dependency "bundler", "~> 1.7"
25
+ gem.add_development_dependency "rake", "~> 10.0"
26
+ gem.add_development_dependency "rspec", "~> 3.2"
27
+ gem.add_development_dependency "rubocop", "~> 0.31"
28
+ gem.add_development_dependency "coveralls", "~> 0.8"
29
+ end
@@ -0,0 +1,47 @@
1
+ require "json"
2
+ require "logger"
3
+ require "rest_client"
4
+ require "idigbio_client/version"
5
+ require "idigbio_client/helper"
6
+ require "idigbio_client/search"
7
+
8
+ # Ruby wrapper for iDigBio API
9
+ module IdigbioClient
10
+ URL = "https://beta-search.idigbio.org/v2/"
11
+ MAX_LIMIT = 100_000
12
+ DEFAULT_LIMIT = 100
13
+ HEADERS = { content_type: :json, accept: :json }
14
+ extend Helper
15
+
16
+ class << self
17
+ def search(opts)
18
+ Search.search(opts)
19
+ end
20
+
21
+ def logger
22
+ @logger ||= Logger.new($stdout)
23
+ end
24
+
25
+ def show(uuid)
26
+ query(path: "view/#{uuid}", method: :get)
27
+ end
28
+
29
+ def types
30
+ %w(records mediarecords recordsets publishers)
31
+ end
32
+
33
+ def count(opts = {})
34
+ opts = { type: "records", params: {} }.merge(opts)
35
+ type = normalize_type(opts[:type])
36
+ res = query(path: "summary/count/#{type}/", params: opts[:params])
37
+ res ? res[:itemCount] : nil
38
+ end
39
+
40
+ def fields(type = nil)
41
+ types = type ? [normalize_type(type)] : IdigbioClient.types
42
+ types.each_with_object({}) do |t, res|
43
+ res[t.to_sym] = query(path: "meta/fields/#{t}", method: :get)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,53 @@
1
+ module IdigbioClient
2
+ # Private internal methods
3
+ module Helper
4
+ def query(opts)
5
+ url, params = url_params(opts)
6
+ resp = post?(opts[:method]) ? post(url, params) : get(url, params)
7
+ resp = JSON.parse(resp.body, symbolize_names: true) if resp
8
+ sleep(0.3)
9
+ block_given? ? yield(resp) : resp
10
+ end
11
+
12
+ def url_params(opts)
13
+ opts = { method: "post" }.merge(opts)
14
+ url = URL + opts[:path]
15
+ params = HEADERS.merge(params: opts[:params].to_json)
16
+ [url, params]
17
+ end
18
+
19
+ def post?(method)
20
+ !method.to_s.match(/get/i)
21
+ end
22
+
23
+ def post(url, params)
24
+ request(:post, url, params)
25
+ end
26
+
27
+ def get(url, params)
28
+ params[:query] = params.delete(:params)
29
+ request(:get, url, params)
30
+ end
31
+
32
+ def request(method, url, params)
33
+ RestClient.send(method, url, params) do |resp, _req, _res|
34
+ resp.code == 200 ? resp : nil
35
+ end
36
+ end
37
+
38
+ def normalize_type(type)
39
+ type = type.to_s
40
+ return type if IdigbioClient.types.include?(type)
41
+ sym_types = types.map { |t| ":#{t}" }.join(", ")
42
+ fail "Unknown type :#{type}. Types: #{sym_types}"
43
+ end
44
+
45
+ def symbolize(h)
46
+ h.keys.each do |k|
47
+ sym = k.to_sym
48
+ h[sym] = h.delete(k)
49
+ symbolize(h[sym]) if h[sym].is_a? Hash
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,61 @@
1
+ module IdigbioClient
2
+ # Performs Searh over iDigBio Resources
3
+ module Search
4
+ extend IdigbioClient::Helper
5
+
6
+ class << self
7
+ def search(opts)
8
+ opts = prepare_opts(opts)
9
+ orig_offset = opts[:params][:offset]
10
+ resp = paginate(opts)
11
+ resp[:items] = resp[:items][0...(opts[:params][:limit] - orig_offset)]
12
+ block_given? ? yield(resp) : resp
13
+ end
14
+
15
+ private
16
+
17
+ def paginate(opts)
18
+ items = []
19
+ params = opts[:params]
20
+ while params[:items_to_go].nil? || params[:items_to_go] > 0
21
+ resp = IdigbioClient.query(opts)
22
+ items += resp[:items] if resp[:itemCount] > 0
23
+ adjust_params(resp, params)
24
+ end
25
+ resp[:items] = items
26
+ resp
27
+ end
28
+
29
+ def prepare_opts(opts)
30
+ symbolize(opts)
31
+ opts = { type: :records, method: :post, params: {} }.merge(opts)
32
+ opts[:params] = { rq: {}, limit: DEFAULT_LIMIT, offset: 0, fields: [],
33
+ fields_exclude: [], sort: [] }.merge(opts[:params])
34
+ opts[:path] = prepare_path(opts[:type])
35
+ opts
36
+ end
37
+
38
+ def prepare_path(type)
39
+ type = normalize_type(type)
40
+ type.gsub!("mediarecords", "media")
41
+ "search/#{type}/"
42
+ end
43
+
44
+ def adjust_params(resp, params)
45
+ logger_write(resp, params)
46
+ params[:items_to_go] ||=
47
+ [MAX_LIMIT, resp[:itemCount], params[:limit]].min - params[:offset]
48
+ params[:offset] += resp[:items].size
49
+ params[:items_to_go] -= resp[:items].size
50
+ end
51
+
52
+ def logger_write(resp, params)
53
+ s = params[:offset] + 1
54
+ e = [params[:offset] + resp[:items].size, params[:limit]].min
55
+ IdigbioClient.logger.info(
56
+ "Processed items #{s}-#{e} out of #{params[:limit]}"
57
+ )
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,8 @@
1
+ # Ruby wrapper for iDigBio API
2
+ module IdigbioClient
3
+ VERSION = "0.1.0"
4
+
5
+ def self.version
6
+ VERSION
7
+ end
8
+ end
metadata ADDED
@@ -0,0 +1,160 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: idigbio_client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Greg T.
8
+ - Dmitry Mozzherin
9
+ autorequire:
10
+ bindir: exe
11
+ cert_chain: []
12
+ date: 2015-05-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rest-client
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.8'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.8'
28
+ - !ruby/object:Gem::Dependency
29
+ name: trollop
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '2.1'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '2.1'
42
+ - !ruby/object:Gem::Dependency
43
+ name: bundler
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.7'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.7'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '10.0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '10.0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rspec
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '3.2'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '3.2'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rubocop
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '0.31'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '0.31'
98
+ - !ruby/object:Gem::Dependency
99
+ name: coveralls
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '0.8'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '0.8'
112
+ description: Ruby wrapper for iDigBio API
113
+ email:
114
+ - dmozzherin@gmail.com
115
+ executables:
116
+ - idigbio
117
+ extensions: []
118
+ extra_rdoc_files: []
119
+ files:
120
+ - ".gitignore"
121
+ - ".rspec"
122
+ - ".rubocop.yml"
123
+ - ".travis.yml"
124
+ - CHANGELOG.md
125
+ - Gemfile
126
+ - LICENSE
127
+ - README.md
128
+ - Rakefile
129
+ - bin/console
130
+ - bin/setup
131
+ - exe/idigbio
132
+ - idigbio_client.gemspec
133
+ - lib/idigbio_client.rb
134
+ - lib/idigbio_client/helper.rb
135
+ - lib/idigbio_client/search.rb
136
+ - lib/idigbio_client/version.rb
137
+ homepage: https://github.com/GlobalNamesArchitecture/idigbio-ruby-client
138
+ licenses: []
139
+ metadata: {}
140
+ post_install_message:
141
+ rdoc_options: []
142
+ require_paths:
143
+ - lib
144
+ required_ruby_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ required_rubygems_version: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ requirements: []
155
+ rubyforge_project:
156
+ rubygems_version: 2.2.3
157
+ signing_key:
158
+ specification_version: 4
159
+ summary: Ruby wrapper for iDigBio API
160
+ test_files: []