thrillcall-api 0.1.0 → 0.1.1
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/lib/thrillcall-api.rb +24 -22
- data/lib/thrillcall-api/result.rb +22 -22
- data/lib/thrillcall-api/version.rb +1 -1
- metadata +49 -84
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 793a971e76c9cd13149ceaaf7824e1b0efeadfaf
|
4
|
+
data.tar.gz: 593ff4d5f5d967e7c265b572b75c437860399f81
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c35f9a08d52b4537721d632b826195f36bc2efb192b674d0e76a553aae9f561a54cb6c12a8dd1456fe3f0a48e6f24702185dc05f215d5f23df564391574bc762
|
7
|
+
data.tar.gz: 14729005883456a0330bbd5b67991a991f9466c5837f8f3d5416b6b9d442af24cda83481755a382df3aab7aa66aa2358b9d2117df82ca504d6c97d3509061ae4
|
data/lib/thrillcall-api.rb
CHANGED
@@ -4,30 +4,32 @@ require "#{File.expand_path("../thrillcall-api/exceptions", __FILE__)}"
|
|
4
4
|
require "#{File.expand_path("../thrillcall-api/result", __FILE__)}"
|
5
5
|
require "#{File.expand_path("../thrillcall-api/version", __FILE__)}"
|
6
6
|
require 'net/http'
|
7
|
+
require 'open-uri'
|
7
8
|
require 'retriable'
|
9
|
+
require 'retriable/core_ext/kernel'
|
8
10
|
|
9
11
|
module ThrillcallAPI
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
13
|
+
RETRY_EXCEPTIONS = {
|
14
|
+
Errno::ECONNREFUSED => nil,
|
15
|
+
Errno::ECONNRESET => nil,
|
16
|
+
Errno::EHOSTUNREACH => nil,
|
17
|
+
Errno::EHOSTDOWN => nil,
|
18
|
+
Errno::EINVAL => nil,
|
19
|
+
Net::HTTPBadResponse => nil,
|
20
|
+
Net::HTTPRequestTimeOut => nil,
|
21
|
+
Net::HTTPServerError => nil, # 5xx
|
22
|
+
Net::HTTPInternalServerError => nil, # 500
|
23
|
+
Net::HTTPNotImplemented => nil, # 501
|
24
|
+
Net::HTTPBadGateway => nil, # 502
|
25
|
+
Net::HTTPServiceUnavailable => nil, # 503
|
26
|
+
Net::HTTPGatewayTimeOut => nil, # 504
|
27
|
+
Net::HTTPVersionNotSupported => nil, # 505
|
28
|
+
OpenURI::HTTPError => /5[0-9][0-9]|400/,
|
29
|
+
Timeout::Error => nil,
|
30
|
+
EOFError => nil,
|
31
|
+
SocketError => nil
|
32
|
+
}
|
31
33
|
|
32
34
|
class << self
|
33
35
|
attr_accessor :cur_api_key, :base, :result, :conn
|
@@ -43,7 +45,7 @@ module ThrillcallAPI
|
|
43
45
|
|
44
46
|
opts = default_options.merge(options)
|
45
47
|
|
46
|
-
@retry_exceptions = opts[:retry_exceptions] ||
|
48
|
+
@retry_exceptions = opts[:retry_exceptions] || RETRY_EXCEPTIONS
|
47
49
|
@retry_tries = opts[:retry_tries] || 5
|
48
50
|
@retry_timeout = opts[:timeout] || 10
|
49
51
|
|
@@ -101,7 +103,7 @@ module ThrillcallAPI
|
|
101
103
|
req.url endpoint, params.merge(:api_key => @cur_api_key)
|
102
104
|
end
|
103
105
|
end
|
104
|
-
JSON.parse(r.body)
|
106
|
+
return JSON.parse(r.body)
|
105
107
|
end
|
106
108
|
|
107
109
|
def post(endpoint, params, method = :post)
|
@@ -7,11 +7,11 @@ module ThrillcallAPI
|
|
7
7
|
class Result
|
8
8
|
attr_accessor :ran, :request_keys, :options, :set_methods, :http_method
|
9
9
|
attr_reader :data
|
10
|
-
|
10
|
+
|
11
11
|
def initialize
|
12
12
|
reset
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
def reset
|
16
16
|
if @set_methods
|
17
17
|
unset_methods
|
@@ -24,7 +24,7 @@ module ThrillcallAPI
|
|
24
24
|
@set_methods = []
|
25
25
|
@http_method = :get
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
# Removes any dynamically defined methods
|
29
29
|
def unset_methods
|
30
30
|
@set_methods.each do |s|
|
@@ -32,15 +32,15 @@ module ThrillcallAPI
|
|
32
32
|
undef_method s
|
33
33
|
end
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
@set_methods = []
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
# Dynamically defines any methods available to data.
|
40
40
|
# i.e. it puts on a "#{data.class}" costume
|
41
41
|
def reassign(data)
|
42
42
|
unset_methods
|
43
|
-
|
43
|
+
|
44
44
|
data.public_methods.each do |meth|
|
45
45
|
@set_methods << meth
|
46
46
|
(class << self; self; end).class_eval do
|
@@ -50,18 +50,18 @@ module ThrillcallAPI
|
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
# Append the name of the method and any args to the current
|
55
55
|
# request being built
|
56
56
|
def append(key, *args)
|
57
|
-
|
57
|
+
|
58
58
|
# If this is called but we've already fetched data, reset
|
59
59
|
if @ran
|
60
60
|
reset
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
@request_keys << key
|
64
|
-
|
64
|
+
|
65
65
|
if args
|
66
66
|
if args.is_a? Array
|
67
67
|
args = args.flatten
|
@@ -81,7 +81,7 @@ module ThrillcallAPI
|
|
81
81
|
end
|
82
82
|
end
|
83
83
|
end
|
84
|
-
|
84
|
+
|
85
85
|
def run(method, *args, &block)
|
86
86
|
# Fetch data if necessary. This will also "put on the
|
87
87
|
# data.class costume" and allow the method to respond to a
|
@@ -89,24 +89,24 @@ module ThrillcallAPI
|
|
89
89
|
if !@ran
|
90
90
|
fetch_data
|
91
91
|
end
|
92
|
-
|
92
|
+
|
93
93
|
# Send the requested method out to the newly defined method
|
94
94
|
self.send(method, *args, &block)
|
95
95
|
end
|
96
|
-
|
96
|
+
|
97
97
|
def fetch_data
|
98
98
|
url = URI.escape(@request_keys.join("/"))
|
99
|
-
|
99
|
+
|
100
100
|
@data = ThrillcallAPI.send(@http_method, url, @options)
|
101
|
-
|
101
|
+
|
102
102
|
# Now we define the instance methods present in the data object
|
103
103
|
# so that we can use this object *as if* we are using the data
|
104
104
|
# object directly and we don't encounter method_missing
|
105
105
|
reassign(@data)
|
106
|
-
|
106
|
+
|
107
107
|
@ran = true
|
108
108
|
end
|
109
|
-
|
109
|
+
|
110
110
|
def post(args = {}, method = :post)
|
111
111
|
if @ran
|
112
112
|
raise ArgumentError, "This request has already been made!"
|
@@ -117,13 +117,13 @@ module ThrillcallAPI
|
|
117
117
|
end
|
118
118
|
@data
|
119
119
|
end
|
120
|
-
|
120
|
+
|
121
121
|
def put(args = {})
|
122
122
|
post(args, :put)
|
123
123
|
end
|
124
|
-
|
124
|
+
|
125
125
|
def method_missing(method, *args, &block)
|
126
|
-
|
126
|
+
|
127
127
|
if @ran
|
128
128
|
# NoMethodError
|
129
129
|
super
|
@@ -141,6 +141,6 @@ module ThrillcallAPI
|
|
141
141
|
end
|
142
142
|
end
|
143
143
|
end
|
144
|
-
|
144
|
+
|
145
145
|
end
|
146
|
-
end
|
146
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thrillcall-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Dan Healy
|
@@ -11,248 +10,218 @@ authors:
|
|
11
10
|
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date:
|
13
|
+
date: 2017-09-15 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: bundler
|
18
17
|
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
18
|
requirements:
|
21
|
-
- -
|
19
|
+
- - ">="
|
22
20
|
- !ruby/object:Gem::Version
|
23
21
|
version: 1.0.0
|
24
22
|
type: :development
|
25
23
|
prerelease: false
|
26
24
|
version_requirements: !ruby/object:Gem::Requirement
|
27
|
-
none: false
|
28
25
|
requirements:
|
29
|
-
- -
|
26
|
+
- - ">="
|
30
27
|
- !ruby/object:Gem::Version
|
31
28
|
version: 1.0.0
|
32
29
|
- !ruby/object:Gem::Dependency
|
33
30
|
name: rake
|
34
31
|
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
32
|
requirements:
|
37
|
-
- - ~>
|
33
|
+
- - "~>"
|
38
34
|
- !ruby/object:Gem::Version
|
39
35
|
version: 0.9.2.2
|
40
36
|
type: :development
|
41
37
|
prerelease: false
|
42
38
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
39
|
requirements:
|
45
|
-
- - ~>
|
40
|
+
- - "~>"
|
46
41
|
- !ruby/object:Gem::Version
|
47
42
|
version: 0.9.2.2
|
48
43
|
- !ruby/object:Gem::Dependency
|
49
44
|
name: rspec
|
50
45
|
requirement: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
46
|
requirements:
|
53
|
-
- - ~>
|
47
|
+
- - "~>"
|
54
48
|
- !ruby/object:Gem::Version
|
55
49
|
version: 2.7.0
|
56
50
|
type: :development
|
57
51
|
prerelease: false
|
58
52
|
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
53
|
requirements:
|
61
|
-
- - ~>
|
54
|
+
- - "~>"
|
62
55
|
- !ruby/object:Gem::Version
|
63
56
|
version: 2.7.0
|
64
57
|
- !ruby/object:Gem::Dependency
|
65
58
|
name: ZenTest
|
66
59
|
requirement: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
60
|
requirements:
|
69
|
-
- - ~>
|
61
|
+
- - "~>"
|
70
62
|
- !ruby/object:Gem::Version
|
71
|
-
version: 4.
|
63
|
+
version: 4.11.0
|
72
64
|
type: :development
|
73
65
|
prerelease: false
|
74
66
|
version_requirements: !ruby/object:Gem::Requirement
|
75
|
-
none: false
|
76
67
|
requirements:
|
77
|
-
- - ~>
|
68
|
+
- - "~>"
|
78
69
|
- !ruby/object:Gem::Version
|
79
|
-
version: 4.
|
70
|
+
version: 4.11.0
|
80
71
|
- !ruby/object:Gem::Dependency
|
81
72
|
name: autotest
|
82
73
|
requirement: !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
74
|
requirements:
|
85
|
-
- - ~>
|
75
|
+
- - "~>"
|
86
76
|
- !ruby/object:Gem::Version
|
87
77
|
version: 4.4.6
|
88
78
|
type: :development
|
89
79
|
prerelease: false
|
90
80
|
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
none: false
|
92
81
|
requirements:
|
93
|
-
- - ~>
|
82
|
+
- - "~>"
|
94
83
|
- !ruby/object:Gem::Version
|
95
84
|
version: 4.4.6
|
96
85
|
- !ruby/object:Gem::Dependency
|
97
86
|
name: autotest-growl
|
98
87
|
requirement: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
88
|
requirements:
|
101
|
-
- - ~>
|
89
|
+
- - "~>"
|
102
90
|
- !ruby/object:Gem::Version
|
103
91
|
version: 0.2.16
|
104
92
|
type: :development
|
105
93
|
prerelease: false
|
106
94
|
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
none: false
|
108
95
|
requirements:
|
109
|
-
- - ~>
|
96
|
+
- - "~>"
|
110
97
|
- !ruby/object:Gem::Version
|
111
98
|
version: 0.2.16
|
112
99
|
- !ruby/object:Gem::Dependency
|
113
100
|
name: autotest-fsevent
|
114
101
|
requirement: !ruby/object:Gem::Requirement
|
115
|
-
none: false
|
116
102
|
requirements:
|
117
|
-
- - ~>
|
103
|
+
- - "~>"
|
118
104
|
- !ruby/object:Gem::Version
|
119
|
-
version: 0.2.
|
105
|
+
version: 0.2.12
|
120
106
|
type: :development
|
121
107
|
prerelease: false
|
122
108
|
version_requirements: !ruby/object:Gem::Requirement
|
123
|
-
none: false
|
124
109
|
requirements:
|
125
|
-
- - ~>
|
110
|
+
- - "~>"
|
126
111
|
- !ruby/object:Gem::Version
|
127
|
-
version: 0.2.
|
112
|
+
version: 0.2.12
|
128
113
|
- !ruby/object:Gem::Dependency
|
129
114
|
name: awesome_print
|
130
115
|
requirement: !ruby/object:Gem::Requirement
|
131
|
-
none: false
|
132
116
|
requirements:
|
133
|
-
- - ~>
|
117
|
+
- - "~>"
|
134
118
|
- !ruby/object:Gem::Version
|
135
119
|
version: 1.0.1
|
136
120
|
type: :development
|
137
121
|
prerelease: false
|
138
122
|
version_requirements: !ruby/object:Gem::Requirement
|
139
|
-
none: false
|
140
123
|
requirements:
|
141
|
-
- - ~>
|
124
|
+
- - "~>"
|
142
125
|
- !ruby/object:Gem::Version
|
143
126
|
version: 1.0.1
|
144
127
|
- !ruby/object:Gem::Dependency
|
145
128
|
name: redcarpet
|
146
129
|
requirement: !ruby/object:Gem::Requirement
|
147
|
-
none: false
|
148
130
|
requirements:
|
149
|
-
- - ~>
|
131
|
+
- - "~>"
|
150
132
|
- !ruby/object:Gem::Version
|
151
133
|
version: 1.17.2
|
152
134
|
type: :development
|
153
135
|
prerelease: false
|
154
136
|
version_requirements: !ruby/object:Gem::Requirement
|
155
|
-
none: false
|
156
137
|
requirements:
|
157
|
-
- - ~>
|
138
|
+
- - "~>"
|
158
139
|
- !ruby/object:Gem::Version
|
159
140
|
version: 1.17.2
|
160
141
|
- !ruby/object:Gem::Dependency
|
161
142
|
name: nokogiri
|
162
143
|
requirement: !ruby/object:Gem::Requirement
|
163
|
-
none: false
|
164
144
|
requirements:
|
165
|
-
- - ~>
|
145
|
+
- - "~>"
|
166
146
|
- !ruby/object:Gem::Version
|
167
|
-
version: 1.
|
147
|
+
version: 1.8.0
|
168
148
|
type: :development
|
169
149
|
prerelease: false
|
170
150
|
version_requirements: !ruby/object:Gem::Requirement
|
171
|
-
none: false
|
172
151
|
requirements:
|
173
|
-
- - ~>
|
152
|
+
- - "~>"
|
174
153
|
- !ruby/object:Gem::Version
|
175
|
-
version: 1.
|
154
|
+
version: 1.8.0
|
176
155
|
- !ruby/object:Gem::Dependency
|
177
|
-
name:
|
156
|
+
name: pygments.rb
|
178
157
|
requirement: !ruby/object:Gem::Requirement
|
179
|
-
none: false
|
180
158
|
requirements:
|
181
|
-
- - ~>
|
159
|
+
- - "~>"
|
182
160
|
- !ruby/object:Gem::Version
|
183
|
-
version: 1.
|
161
|
+
version: 1.2.0
|
184
162
|
type: :development
|
185
163
|
prerelease: false
|
186
164
|
version_requirements: !ruby/object:Gem::Requirement
|
187
|
-
none: false
|
188
165
|
requirements:
|
189
|
-
- - ~>
|
166
|
+
- - "~>"
|
190
167
|
- !ruby/object:Gem::Version
|
191
|
-
version: 1.
|
168
|
+
version: 1.2.0
|
192
169
|
- !ruby/object:Gem::Dependency
|
193
170
|
name: faker
|
194
171
|
requirement: !ruby/object:Gem::Requirement
|
195
|
-
none: false
|
196
172
|
requirements:
|
197
|
-
- - ~>
|
173
|
+
- - "~>"
|
198
174
|
- !ruby/object:Gem::Version
|
199
175
|
version: 0.9.5
|
200
176
|
type: :development
|
201
177
|
prerelease: false
|
202
178
|
version_requirements: !ruby/object:Gem::Requirement
|
203
|
-
none: false
|
204
179
|
requirements:
|
205
|
-
- - ~>
|
180
|
+
- - "~>"
|
206
181
|
- !ruby/object:Gem::Version
|
207
182
|
version: 0.9.5
|
208
183
|
- !ruby/object:Gem::Dependency
|
209
184
|
name: tzinfo
|
210
185
|
requirement: !ruby/object:Gem::Requirement
|
211
|
-
none: false
|
212
186
|
requirements:
|
213
|
-
- - ~>
|
187
|
+
- - "~>"
|
214
188
|
- !ruby/object:Gem::Version
|
215
189
|
version: 0.3.31
|
216
190
|
type: :development
|
217
191
|
prerelease: false
|
218
192
|
version_requirements: !ruby/object:Gem::Requirement
|
219
|
-
none: false
|
220
193
|
requirements:
|
221
|
-
- - ~>
|
194
|
+
- - "~>"
|
222
195
|
- !ruby/object:Gem::Version
|
223
196
|
version: 0.3.31
|
224
197
|
- !ruby/object:Gem::Dependency
|
225
198
|
name: faraday
|
226
199
|
requirement: !ruby/object:Gem::Requirement
|
227
|
-
none: false
|
228
200
|
requirements:
|
229
|
-
- - ~>
|
201
|
+
- - "~>"
|
230
202
|
- !ruby/object:Gem::Version
|
231
203
|
version: 0.8.7
|
232
204
|
type: :runtime
|
233
205
|
prerelease: false
|
234
206
|
version_requirements: !ruby/object:Gem::Requirement
|
235
|
-
none: false
|
236
207
|
requirements:
|
237
|
-
- - ~>
|
208
|
+
- - "~>"
|
238
209
|
- !ruby/object:Gem::Version
|
239
210
|
version: 0.8.7
|
240
211
|
- !ruby/object:Gem::Dependency
|
241
212
|
name: retriable
|
242
213
|
requirement: !ruby/object:Gem::Requirement
|
243
|
-
none: false
|
244
214
|
requirements:
|
245
|
-
- - ~>
|
215
|
+
- - "~>"
|
246
216
|
- !ruby/object:Gem::Version
|
247
|
-
version: 1.
|
217
|
+
version: 3.1.1
|
248
218
|
type: :runtime
|
249
219
|
prerelease: false
|
250
220
|
version_requirements: !ruby/object:Gem::Requirement
|
251
|
-
none: false
|
252
221
|
requirements:
|
253
|
-
- - ~>
|
222
|
+
- - "~>"
|
254
223
|
- !ruby/object:Gem::Version
|
255
|
-
version: 1.
|
224
|
+
version: 3.1.1
|
256
225
|
description: Simple wrapper around http://thrillcall.com's API
|
257
226
|
email:
|
258
227
|
- github@thrillcall.com
|
@@ -260,35 +229,31 @@ executables: []
|
|
260
229
|
extensions: []
|
261
230
|
extra_rdoc_files: []
|
262
231
|
files:
|
232
|
+
- lib/thrillcall-api.rb
|
263
233
|
- lib/thrillcall-api/exceptions.rb
|
264
234
|
- lib/thrillcall-api/result.rb
|
265
235
|
- lib/thrillcall-api/version.rb
|
266
|
-
- lib/thrillcall-api.rb
|
267
236
|
homepage: https://github.com/thrillcall/thrillcall-api
|
268
237
|
licenses: []
|
238
|
+
metadata: {}
|
269
239
|
post_install_message:
|
270
240
|
rdoc_options: []
|
271
241
|
require_paths:
|
272
242
|
- lib
|
273
243
|
required_ruby_version: !ruby/object:Gem::Requirement
|
274
|
-
none: false
|
275
244
|
requirements:
|
276
|
-
- -
|
245
|
+
- - ">="
|
277
246
|
- !ruby/object:Gem::Version
|
278
247
|
version: '0'
|
279
|
-
segments:
|
280
|
-
- 0
|
281
|
-
hash: -14664519067324063
|
282
248
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
283
|
-
none: false
|
284
249
|
requirements:
|
285
|
-
- -
|
250
|
+
- - ">="
|
286
251
|
- !ruby/object:Gem::Version
|
287
252
|
version: 1.3.6
|
288
253
|
requirements: []
|
289
254
|
rubyforge_project: thrillcall-api
|
290
|
-
rubygems_version:
|
255
|
+
rubygems_version: 2.6.13
|
291
256
|
signing_key:
|
292
|
-
specification_version:
|
257
|
+
specification_version: 4
|
293
258
|
summary: Simple wrapper around http://thrillcall.com's API
|
294
259
|
test_files: []
|