idigbio_client 0.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 +7 -0
- data/.gitignore +9 -0
- data/.rspec +3 -0
- data/.rubocop.yml +12 -0
- data/.travis.yml +11 -0
- data/CHANGELOG.md +8 -0
- data/Gemfile +4 -0
- data/LICENSE +20 -0
- data/README.md +188 -0
- data/Rakefile +11 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/exe/idigbio +31 -0
- data/idigbio_client.gemspec +29 -0
- data/lib/idigbio_client.rb +47 -0
- data/lib/idigbio_client/helper.rb +53 -0
- data/lib/idigbio_client/search.rb +61 -0
- data/lib/idigbio_client/version.rb +8 -0
- metadata +160 -0
checksums.yaml
ADDED
@@ -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
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
data/.travis.yml
ADDED
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
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.
|
data/README.md
ADDED
@@ -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
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -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
|
data/bin/setup
ADDED
data/exe/idigbio
ADDED
@@ -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
|
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: []
|