phenoscaperb 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 +38 -0
- data/.travis.yml +8 -0
- data/CHANGELOG.md +3 -0
- data/CONDUCT.md +25 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +71 -0
- data/LICENSE +7 -0
- data/README.md +153 -0
- data/Rakefile +42 -0
- data/bin/ph +46 -0
- data/lib/phenoscaperb.rb +33 -0
- data/lib/phenoscaperb/Genes.rb +83 -0
- data/lib/phenoscaperb/Ontotrace.rb +46 -0
- data/lib/phenoscaperb/Studies.rb +102 -0
- data/lib/phenoscaperb/Taxa.rb +115 -0
- data/lib/phenoscaperb/Terms.rb +200 -0
- data/lib/phenoscaperb/constants.rb +8 -0
- data/lib/phenoscaperb/error.rb +22 -0
- data/lib/phenoscaperb/faraday.rb +71 -0
- data/lib/phenoscaperb/helpers/configuration.rb +26 -0
- data/lib/phenoscaperb/request.rb +74 -0
- data/lib/phenoscaperb/utils.rb +43 -0
- data/lib/phenoscaperb/version.rb +3 -0
- data/phenoscaperb.gemspec +40 -0
- metadata +318 -0
@@ -0,0 +1,22 @@
|
|
1
|
+
module Phenoscape
|
2
|
+
# Custom error class for rescuing from all Phenoscape errors
|
3
|
+
class Error < StandardError; end
|
4
|
+
|
5
|
+
# Raised when Phenoscape returns the HTTP status code 400
|
6
|
+
class BadRequest < Error; end
|
7
|
+
|
8
|
+
# Raised when Phenoscape returns the HTTP status code 404
|
9
|
+
class NotFound < Error; end
|
10
|
+
|
11
|
+
# Raised when Phenoscape returns the HTTP status code 500
|
12
|
+
class InternalServerError < Error; end
|
13
|
+
|
14
|
+
# Raised when Phenoscape returns the HTTP status code 502
|
15
|
+
class BadGateway < Error; end
|
16
|
+
|
17
|
+
# Raised when Phenoscape returns the HTTP status code 503
|
18
|
+
class ServiceUnavailable < Error; end
|
19
|
+
|
20
|
+
# Raised when Phenoscape returns the HTTP status code 504
|
21
|
+
class GatewayTimeout < Error; end
|
22
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'multi_json'
|
3
|
+
|
4
|
+
# @private
|
5
|
+
module FaradayMiddleware
|
6
|
+
# @private
|
7
|
+
class RaiseHttpException < Faraday::Middleware
|
8
|
+
def call(env)
|
9
|
+
@app.call(env).on_complete do |response|
|
10
|
+
case response[:status].to_i
|
11
|
+
when 400
|
12
|
+
raise Phenoscape::BadRequest, error_message_400(response)
|
13
|
+
when 404
|
14
|
+
raise Phenoscape::NotFound, error_message_400(response)
|
15
|
+
when 500
|
16
|
+
raise Phenoscape::InternalServerError, error_message_500(response, "Something is technically wrong.")
|
17
|
+
when 502
|
18
|
+
raise Phenoscape::BadGateway, error_message_500(response, "The server returned an invalid or incomplete response.")
|
19
|
+
when 503
|
20
|
+
raise Phenoscape::ServiceUnavailable, error_message_500(response, "Crossref is rate limiting your requests.")
|
21
|
+
when 504
|
22
|
+
raise Phenoscape::GatewayTimeout, error_message_500(response, "504 Gateway Time-out")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def initialize(app)
|
28
|
+
super app
|
29
|
+
@parser = nil
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def error_message_400(response)
|
35
|
+
"\n #{response[:method].to_s.upcase} #{response[:url].to_s}\n Status #{response[:status]}#{error_body(response[:body])}"
|
36
|
+
end
|
37
|
+
|
38
|
+
def error_body(body)
|
39
|
+
if not body.nil? and not body.empty? and body.kind_of?(String)
|
40
|
+
if is_json?(body)
|
41
|
+
body = ::MultiJson.load(body)
|
42
|
+
if body['message'].nil?
|
43
|
+
body = nil
|
44
|
+
elseif body['message'].length == 1
|
45
|
+
body = body['message']
|
46
|
+
else
|
47
|
+
body = body['message'].collect { |x| x['message'] }.join('; ')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
if body.nil?
|
53
|
+
nil
|
54
|
+
else
|
55
|
+
": #{body}"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def error_message_500(response, body=nil)
|
60
|
+
"#{response[:method].to_s.upcase} #{response[:url].to_s}: #{[response[:status].to_s + ':', body].compact.join(' ')}"
|
61
|
+
end
|
62
|
+
|
63
|
+
def is_json?(string)
|
64
|
+
MultiJson.load(string)
|
65
|
+
return true
|
66
|
+
rescue MultiJson::ParseError
|
67
|
+
return false
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# taken from: https://viget.com/extend/easy-gem-configuration-variables-with-defaults
|
2
|
+
module Configuration
|
3
|
+
|
4
|
+
def configuration
|
5
|
+
yield self
|
6
|
+
end
|
7
|
+
|
8
|
+
def define_setting(name, default = nil)
|
9
|
+
class_variable_set("@@#{name}", default)
|
10
|
+
define_class_method "#{name}=" do |value|
|
11
|
+
class_variable_set("@@#{name}", value)
|
12
|
+
end
|
13
|
+
define_class_method name do
|
14
|
+
class_variable_get("@@#{name}")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def define_class_method(name, &block)
|
21
|
+
(class << self; self; end).instance_eval do
|
22
|
+
define_method name, &block
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require "faraday"
|
2
|
+
require "multi_json"
|
3
|
+
require "nokogiri"
|
4
|
+
require "phenoscaperb/error"
|
5
|
+
require "phenoscaperb/constants"
|
6
|
+
require 'phenoscaperb/utils'
|
7
|
+
require 'phenoscaperb/helpers/configuration'
|
8
|
+
|
9
|
+
##
|
10
|
+
# Phenoscape::Request
|
11
|
+
#
|
12
|
+
# Class to perform HTTP requests to the Phenoscape API
|
13
|
+
module Phenoscape
|
14
|
+
class Request #:nodoc:
|
15
|
+
|
16
|
+
attr_accessor :endpt
|
17
|
+
attr_accessor :args
|
18
|
+
attr_accessor :verbose
|
19
|
+
attr_accessor :options
|
20
|
+
attr_accessor :ret
|
21
|
+
attr_accessor :acchd
|
22
|
+
|
23
|
+
def initialize(endpt, args, verbose, options, ret, acchd = "application/json")
|
24
|
+
self.endpt = endpt
|
25
|
+
self.args = args
|
26
|
+
self.verbose = verbose
|
27
|
+
self.options = options
|
28
|
+
self.ret = ret
|
29
|
+
self.acchd = acchd
|
30
|
+
end
|
31
|
+
|
32
|
+
def perform
|
33
|
+
if verbose
|
34
|
+
conn = Faraday.new(:url => Phenoscape.base_url, :request => self.options || []) do |f|
|
35
|
+
f.response :logger
|
36
|
+
f.use FaradayMiddleware::RaiseHttpException
|
37
|
+
f.options.params_encoder = Faraday::FlatParamsEncoder
|
38
|
+
f.adapter Faraday.default_adapter
|
39
|
+
end
|
40
|
+
else
|
41
|
+
conn = Faraday.new(:url => Phenoscape.base_url, :request => self.options || []) do |f|
|
42
|
+
f.use FaradayMiddleware::RaiseHttpException
|
43
|
+
f.options.params_encoder = Faraday::FlatParamsEncoder
|
44
|
+
f.adapter Faraday.default_adapter
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
conn.headers[:user_agent] = make_ua
|
49
|
+
conn.headers["X-USER-AGENT"] = make_ua
|
50
|
+
if !self.acchd.nil?
|
51
|
+
conn.headers["Accept"] = self.acchd
|
52
|
+
end
|
53
|
+
|
54
|
+
res = conn.get self.endpt, self.args
|
55
|
+
|
56
|
+
if !res.headers['content-type'].match(/json/).nil?
|
57
|
+
out = MultiJson.load(res.body)
|
58
|
+
else
|
59
|
+
case self.ret
|
60
|
+
when "hash"
|
61
|
+
out = Nokogiri::XML(res.body).to_hash
|
62
|
+
when "text"
|
63
|
+
out = res.body
|
64
|
+
when "noko"
|
65
|
+
out = Nokogiri::XML(res.body)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
return out
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
def make_ua
|
2
|
+
requa = 'Faraday/v' + Faraday::VERSION
|
3
|
+
habua = 'Phenoscaperb/v' + Phenoscape::VERSION
|
4
|
+
return requa + ' ' + habua
|
5
|
+
end
|
6
|
+
|
7
|
+
class Hash
|
8
|
+
def tostrings
|
9
|
+
Hash[self.map{|(k,v)| [k.to_s,v]}]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class Hash
|
14
|
+
def tosymbols
|
15
|
+
Hash[self.map{|(k,v)| [k.to_sym,v]}]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def check_data(x, y)
|
20
|
+
if len2(x) == 1
|
21
|
+
testdata = [x]
|
22
|
+
else
|
23
|
+
testdata = x
|
24
|
+
end
|
25
|
+
|
26
|
+
for z in testdata
|
27
|
+
if !y.include? z
|
28
|
+
raise z + ' is not one of the choices'
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def len2(x)
|
34
|
+
if x.class == String
|
35
|
+
return [x].length
|
36
|
+
else
|
37
|
+
return x.length
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def stop(x)
|
42
|
+
raise ArgumentError, x
|
43
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'phenoscaperb/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = 'phenoscaperb'
|
8
|
+
s.version = Phenoscape::VERSION
|
9
|
+
s.platform = Gem::Platform::RUBY
|
10
|
+
s.required_ruby_version = '>= 2.0'
|
11
|
+
s.date = '2017-12-11'
|
12
|
+
s.summary = "Phenoscape Client"
|
13
|
+
s.description = "Low Level Ruby Client for the Phenoscape API"
|
14
|
+
s.authors = "Scott Chamberlain"
|
15
|
+
s.email = 'myrmecocystus@gmail.com'
|
16
|
+
s.homepage = 'https://github.com/sckott/phenoscaperb'
|
17
|
+
s.licenses = 'MIT'
|
18
|
+
|
19
|
+
s.files = `git ls-files -z`.split("\x0").reject {|f| f.match(%r{^(test|spec|features)/}) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.bindir = 'bin'
|
23
|
+
s.executables = ['ph']
|
24
|
+
|
25
|
+
s.add_development_dependency 'bundler', '~> 1.14', '>= 1.14.6'
|
26
|
+
s.add_development_dependency 'rake', '~> 12.0', '>= 12.0.0'
|
27
|
+
s.add_development_dependency 'test-unit', '~> 3.2', '>= 3.2.1'
|
28
|
+
s.add_development_dependency 'simplecov', '~> 0.14.1'
|
29
|
+
s.add_development_dependency 'codecov', '~> 0.1.10'
|
30
|
+
s.add_development_dependency 'json', '~> 2.0', '>= 2.0.3'
|
31
|
+
s.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.3'
|
32
|
+
s.add_development_dependency 'webmock', '~> 2.3', '>= 2.3.2'
|
33
|
+
|
34
|
+
s.add_runtime_dependency 'faraday', '~> 0.12.0.1'
|
35
|
+
s.add_runtime_dependency 'faraday_middleware', '~> 0.11.0.1'
|
36
|
+
s.add_runtime_dependency 'thor', '~> 0.20.0'
|
37
|
+
s.add_runtime_dependency 'nokogiri', '~> 1.8', '>= 1.8.1'
|
38
|
+
s.add_runtime_dependency 'xml-to-hash', '~> 1.0', '>= 1.0.3'
|
39
|
+
s.add_runtime_dependency 'multi_json', '~> 1.12', '>= 1.12.1'
|
40
|
+
end
|
metadata
ADDED
@@ -0,0 +1,318 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: phenoscaperb
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Scott Chamberlain
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-12-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.14'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.14.6
|
23
|
+
type: :development
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.14'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.14.6
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rake
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '12.0'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 12.0.0
|
43
|
+
type: :development
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '12.0'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 12.0.0
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: test-unit
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '3.2'
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 3.2.1
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '3.2'
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 3.2.1
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: simplecov
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 0.14.1
|
80
|
+
type: :development
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - "~>"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 0.14.1
|
87
|
+
- !ruby/object:Gem::Dependency
|
88
|
+
name: codecov
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - "~>"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.1.10
|
94
|
+
type: :development
|
95
|
+
prerelease: false
|
96
|
+
version_requirements: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - "~>"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: 0.1.10
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: json
|
103
|
+
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - "~>"
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '2.0'
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.0.3
|
111
|
+
type: :development
|
112
|
+
prerelease: false
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '2.0'
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: 2.0.3
|
121
|
+
- !ruby/object:Gem::Dependency
|
122
|
+
name: vcr
|
123
|
+
requirement: !ruby/object:Gem::Requirement
|
124
|
+
requirements:
|
125
|
+
- - "~>"
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '3.0'
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: 3.0.3
|
131
|
+
type: :development
|
132
|
+
prerelease: false
|
133
|
+
version_requirements: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '3.0'
|
138
|
+
- - ">="
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: 3.0.3
|
141
|
+
- !ruby/object:Gem::Dependency
|
142
|
+
name: webmock
|
143
|
+
requirement: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - "~>"
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '2.3'
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: 2.3.2
|
151
|
+
type: :development
|
152
|
+
prerelease: false
|
153
|
+
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - "~>"
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '2.3'
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 2.3.2
|
161
|
+
- !ruby/object:Gem::Dependency
|
162
|
+
name: faraday
|
163
|
+
requirement: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - "~>"
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: 0.12.0.1
|
168
|
+
type: :runtime
|
169
|
+
prerelease: false
|
170
|
+
version_requirements: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - "~>"
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: 0.12.0.1
|
175
|
+
- !ruby/object:Gem::Dependency
|
176
|
+
name: faraday_middleware
|
177
|
+
requirement: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - "~>"
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: 0.11.0.1
|
182
|
+
type: :runtime
|
183
|
+
prerelease: false
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - "~>"
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: 0.11.0.1
|
189
|
+
- !ruby/object:Gem::Dependency
|
190
|
+
name: thor
|
191
|
+
requirement: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - "~>"
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: 0.20.0
|
196
|
+
type: :runtime
|
197
|
+
prerelease: false
|
198
|
+
version_requirements: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - "~>"
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: 0.20.0
|
203
|
+
- !ruby/object:Gem::Dependency
|
204
|
+
name: nokogiri
|
205
|
+
requirement: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - "~>"
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '1.8'
|
210
|
+
- - ">="
|
211
|
+
- !ruby/object:Gem::Version
|
212
|
+
version: 1.8.1
|
213
|
+
type: :runtime
|
214
|
+
prerelease: false
|
215
|
+
version_requirements: !ruby/object:Gem::Requirement
|
216
|
+
requirements:
|
217
|
+
- - "~>"
|
218
|
+
- !ruby/object:Gem::Version
|
219
|
+
version: '1.8'
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: 1.8.1
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: xml-to-hash
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - "~>"
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '1.0'
|
230
|
+
- - ">="
|
231
|
+
- !ruby/object:Gem::Version
|
232
|
+
version: 1.0.3
|
233
|
+
type: :runtime
|
234
|
+
prerelease: false
|
235
|
+
version_requirements: !ruby/object:Gem::Requirement
|
236
|
+
requirements:
|
237
|
+
- - "~>"
|
238
|
+
- !ruby/object:Gem::Version
|
239
|
+
version: '1.0'
|
240
|
+
- - ">="
|
241
|
+
- !ruby/object:Gem::Version
|
242
|
+
version: 1.0.3
|
243
|
+
- !ruby/object:Gem::Dependency
|
244
|
+
name: multi_json
|
245
|
+
requirement: !ruby/object:Gem::Requirement
|
246
|
+
requirements:
|
247
|
+
- - "~>"
|
248
|
+
- !ruby/object:Gem::Version
|
249
|
+
version: '1.12'
|
250
|
+
- - ">="
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: 1.12.1
|
253
|
+
type: :runtime
|
254
|
+
prerelease: false
|
255
|
+
version_requirements: !ruby/object:Gem::Requirement
|
256
|
+
requirements:
|
257
|
+
- - "~>"
|
258
|
+
- !ruby/object:Gem::Version
|
259
|
+
version: '1.12'
|
260
|
+
- - ">="
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: 1.12.1
|
263
|
+
description: Low Level Ruby Client for the Phenoscape API
|
264
|
+
email: myrmecocystus@gmail.com
|
265
|
+
executables:
|
266
|
+
- ph
|
267
|
+
extensions: []
|
268
|
+
extra_rdoc_files: []
|
269
|
+
files:
|
270
|
+
- ".gitignore"
|
271
|
+
- ".travis.yml"
|
272
|
+
- CHANGELOG.md
|
273
|
+
- CONDUCT.md
|
274
|
+
- Gemfile
|
275
|
+
- Gemfile.lock
|
276
|
+
- LICENSE
|
277
|
+
- README.md
|
278
|
+
- Rakefile
|
279
|
+
- bin/ph
|
280
|
+
- lib/phenoscaperb.rb
|
281
|
+
- lib/phenoscaperb/Genes.rb
|
282
|
+
- lib/phenoscaperb/Ontotrace.rb
|
283
|
+
- lib/phenoscaperb/Studies.rb
|
284
|
+
- lib/phenoscaperb/Taxa.rb
|
285
|
+
- lib/phenoscaperb/Terms.rb
|
286
|
+
- lib/phenoscaperb/constants.rb
|
287
|
+
- lib/phenoscaperb/error.rb
|
288
|
+
- lib/phenoscaperb/faraday.rb
|
289
|
+
- lib/phenoscaperb/helpers/configuration.rb
|
290
|
+
- lib/phenoscaperb/request.rb
|
291
|
+
- lib/phenoscaperb/utils.rb
|
292
|
+
- lib/phenoscaperb/version.rb
|
293
|
+
- phenoscaperb.gemspec
|
294
|
+
homepage: https://github.com/sckott/phenoscaperb
|
295
|
+
licenses:
|
296
|
+
- MIT
|
297
|
+
metadata: {}
|
298
|
+
post_install_message:
|
299
|
+
rdoc_options: []
|
300
|
+
require_paths:
|
301
|
+
- lib
|
302
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - ">="
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '2.0'
|
307
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
308
|
+
requirements:
|
309
|
+
- - ">="
|
310
|
+
- !ruby/object:Gem::Version
|
311
|
+
version: '0'
|
312
|
+
requirements: []
|
313
|
+
rubyforge_project:
|
314
|
+
rubygems_version: 2.6.13
|
315
|
+
signing_key:
|
316
|
+
specification_version: 4
|
317
|
+
summary: Phenoscape Client
|
318
|
+
test_files: []
|