bubbles-rest-client 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.gitignore +3 -0
- data/README.md +4 -276
- data/bubbles.gemspec +2 -2
- data/lib/bubbles/config.rb +61 -27
- data/lib/bubbles/rest_client_resources.rb +2 -2
- data/lib/bubbles/version.rb +1 -1
- metadata +10 -10
- data/Gemfile.lock +0 -89
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f077a290f6996a9d6b17eaed8ad1cb4218dc63d1303ac98dd3ac7100e77a03a
|
4
|
+
data.tar.gz: b6737cdf8435852167b508fe3a3b231ab2c98cb0f87489c1111c498d1eac2af1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a899787ccb3ebcca5fc4bc6407e33d9c9fb96c478864f7eaf1b64c75b8d4bfd96ee638c3da6125f30bd1c81cbfd360a14962cbde03b2fd4f9f73c1f51eccb206
|
7
|
+
data.tar.gz: 70e5a4dbf61c052fb0a0af1a6cf8590132aeaea66aee30f30b99d66a968d34a02606c490782d6cdcf0b0fa14f98d3dfaf15ed88b15f00350638a9b8dca810d89
|
data/.github/FUNDING.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
github: jwir3
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -25,15 +25,6 @@ What this does is allow you to focus on your _handling_ of the REST responses, r
|
|
25
25
|
|
26
26
|
_bubbles_ is a Gem that seeks to provide this same behavior.
|
27
27
|
|
28
|
-
## :warning: Limitations
|
29
|
-
**Please read this section before using!**
|
30
|
-
|
31
|
-
Currently, bubbles has a number of limitations that make it likely not suitable for use in a production environment. Each of these is tracked by an issue on our [issues page](https://github.com/FoamFactory/bubbles/issues).
|
32
|
-
|
33
|
-
- Some request methods (specifically `DELETE`) do not currently allow unauthenticated access. In other words, it is not possible to perform a `DELETE` request on your API without passing an authorization token. (FoamFactory/bubbles#16)
|
34
|
-
|
35
|
-
If you're interested in working on any of the issues above, please feel free to submit a pull request and a member of our team will review that pull request within a couple of days.
|
36
|
-
|
37
28
|
## Usage
|
38
29
|
If you're using Rails, it's suggested to have a `config/initializers/bubbles.rb` configuration file where you can easily configure your endpoints and environments. If you're not using Rails, then you can put this configuration just about anywhere, provided it's executed before where you want to use it.
|
39
30
|
|
@@ -52,15 +43,15 @@ Bubbles.configure do |config|
|
|
52
43
|
}
|
53
44
|
]
|
54
45
|
|
55
|
-
config.
|
46
|
+
config.environments = [{
|
56
47
|
:scheme => 'http',
|
57
48
|
:host => '0.0.0.0',
|
58
49
|
:port => '1234'
|
59
|
-
}
|
50
|
+
}]
|
60
51
|
end
|
61
52
|
```
|
62
53
|
|
63
|
-
The `config.endpoints` section is where you configure which endpoints you want to support. The `config.
|
54
|
+
The `config.endpoints` section is where you configure which endpoints you want to support. The `config.environments` defines the environments, or remote configurations, for accessing the endpoint on specific remote destinations.
|
64
55
|
|
65
56
|
Now, you can use this endpoint with:
|
66
57
|
```ruby
|
@@ -79,267 +70,4 @@ end
|
|
79
70
|
```
|
80
71
|
|
81
72
|
## Detailed Documentation
|
82
|
-
|
83
|
-
```ruby
|
84
|
-
Bubbles.configure do |config|
|
85
|
-
# You can add configuration for Bubbles here using config.endpoints and config.environment
|
86
|
-
end
|
87
|
-
```
|
88
|
-
|
89
|
-
This configuration block can be run at any time, but is typically set up in the initializer section of an app's startup. If desired, configuration can happen separately. That is, you can initialize environments within your initializer file and then initialize endpoints within another section of the application. Just note that when endpoints are defined, it overwrites _all_ endpoints of a configuration, not just the ones you choose to change.
|
90
|
-
|
91
|
-
### Environments
|
92
|
-
> :construction: Environment names used to be hardcoded into Bubbles. You can now access the current environment using `Bubbles::Resources.new.environment`. This section is left in the documentation for future reference, as we will eventually be adding back named environments (see FoamFactory/bubbles#23 for tracking information).
|
93
|
-
|
94
|
-
Three environments are currently available to be set up within bubbles. These are:
|
95
|
-
- `local_environment` : Designed to be used for a local API for development testing.
|
96
|
-
- `staging_environment` : Designed to be used for a remote API for second-stage testing or production-like deployment.
|
97
|
-
- `production_environment` : Designed to be used for a production environment.
|
98
|
-
|
99
|
-
While the names are hardcoded, the environments can be used for anything - you could easily use a `local_environment` to store the information for one of your production servers.
|
100
|
-
|
101
|
-
#### Configuration of Environments
|
102
|
-
Environments are configured as part of the _bubbles configuration block_ and can have the following parameters:
|
103
|
-
|
104
|
-
- `scheme`: The scheme for accessing endpoints on this host. Should be one of `http` or `https`. Defaults to `http`.
|
105
|
-
- `host`: A domain name or IP address for the remote host to access for the environment. Defaults to `127.0.0.1`.
|
106
|
-
- `port`: The port to use to access the remote host. Defaults to `1234`.
|
107
|
-
- `api_key`: The API key to send along with requests for a given environment, if an API key is required. This is optional, and defaults to `nil`.
|
108
|
-
- `headers`: A `Hash` of key-value pairs that contain additional headers to pass to every call to this endpoint. Defaults to `{}`.
|
109
|
-
|
110
|
-
You can configure all three environments at once in the _bubbles configuration block_:
|
111
|
-
```ruby
|
112
|
-
Bubbles.configure do |config|
|
113
|
-
config.environment = {
|
114
|
-
:scheme => 'http',
|
115
|
-
:host => '0.0.0.0',
|
116
|
-
:port => '1234'
|
117
|
-
}
|
118
|
-
|
119
|
-
# Note: This is deprecated for the time being. See (FoamFactory/bubbles/#23).
|
120
|
-
# config.staging_environment = {
|
121
|
-
# :scheme => 'http',
|
122
|
-
# :host => 'stage.api.foamfactory.com',
|
123
|
-
# :port => '80'
|
124
|
-
# }
|
125
|
-
|
126
|
-
# Note: This is deprecated for the time being. See (FoamFactory/bubbles/#23).
|
127
|
-
# config.production_environment = {
|
128
|
-
# :scheme => 'https',
|
129
|
-
# :host => 'api.foamfactory.com',
|
130
|
-
# :port => '443'
|
131
|
-
# }
|
132
|
-
end
|
133
|
-
```
|
134
|
-
|
135
|
-
If you choose a scheme of `http` and leave off the `port` configuration variable, it will default to `80`. Similarly, `https` will default to a port of `443`.
|
136
|
-
|
137
|
-
#### Configuration of Endpoints
|
138
|
-
Endpoints are the meat and potatoes of REST interaction. By indicating a _method_, _uri_, _body_, and _headers_, you are effectively making a function call on a remote server.
|
139
|
-
|
140
|
-
_Endpoints_ are specified as an array of objects within the _bubbles configuration block_:
|
141
|
-
|
142
|
-
```ruby
|
143
|
-
config.endpoints = [
|
144
|
-
# Individual endpoint definitions go here
|
145
|
-
]
|
146
|
-
```
|
147
|
-
|
148
|
-
When processing each of these endpoint definitions, a method is created on instances of `RestEnvironment` that allows you to call the method in question. For example, an endpoint defined as:
|
149
|
-
```ruby
|
150
|
-
{
|
151
|
-
:method => :get,
|
152
|
-
:location => :version,
|
153
|
-
:authenticated => false,
|
154
|
-
:api_key_required => false
|
155
|
-
}
|
156
|
-
```
|
157
|
-
|
158
|
-
will create a method on instances of `RestEnvironment` called `version`, which will execute the appropriate REST call (via `RestClient`) and return a `RestClient::Response` object.
|
159
|
-
|
160
|
-
Each _endpoint_ object can have the following attributes:
|
161
|
-
|
162
|
-
| Name | Description | Required? | Default |
|
163
|
-
| :--- | :------------------ | :-------: | :-----: |
|
164
|
-
| `method`| The HTTP method to use to access the API for this endpoint. Must be one of `GET`, `POST`, `PUT`, `PATCH`, `DELETE`, or `HEAD`. | Yes | N/A |
|
165
|
-
| `location`| The path to access the endpoint. This is placed after the `host:port` section to build the URI. It may have URI parameters in the form of `{paramName}`. If a URI parameter is specified within the `location`, a `uri_params` hash will be expected to be passed to the calling method to replace the placeholder values. | Yes | N/A |
|
166
|
-
| `name` | The name to give the method created to make this REST call. | No | The value of the `location` parameter, with slashes (`/`) replaced with underscores (`_`). |
|
167
|
-
| `authorization` | Whether or not this endpoint requires authentication prior to executing the call. If true, then an `authorization_token` will be added to the method as a parameter to be passed when the method is called. This parameter will be placed in an `Authorization` header when the REST call is executed. | No | `false` |
|
168
|
-
| `api_key_required` | Whether or not an API key is required. If `true`, a parameter will be added to the method created to execute the REST API call named `api_key`. The value of this parameter will be set as the value of the `X-Api-Key` header when making the REST API call. | No | `false` |
|
169
|
-
| `return_type` | Must be one of: `[full_response, body_as_object, body_as_string]`. This specifies what type of response is expected from the `Endpoint`. A value of `full_response` will return the full `RestClient::Response` object to the client. A value of `body_as_string` will return the `RestClient::Response.body` value as a `String`. A value of `body_as_object` will take the `RestClient::Response.body` parameter and parse it as an `OpenStruct` object, and return the result of this parsing operation. | No | `body_as_string` |
|
170
|
-
| `encode_authorization` | Whether the `data` passed as part of the request should be re-encoded as an `Authorization: Basic` header (and Base64 encoded). Typically, this is only used for initial username/password authentication. | No | `false` |
|
171
|
-
| `headers` | A `Hash` of key-value pairs specifying additional headers (the `key` specifies the name of the header, and the `value` specifies the value) that should be passed with each call to this `Endpoint`. Defaults to `{}`.
|
172
|
-
|
173
|
-
### Examples
|
174
|
-
These examples are taken almost directly from our [test suite](https://github.com/FoamFactory/bubbles/blob/master/spec/bubbles/resources_spec.rb). For more detailed examples, please refer to our specifications located in the `/spec` directory.
|
175
|
-
|
176
|
-
#### GET the version of the software (unauthenticated, no API key required)
|
177
|
-
**Configuration**:
|
178
|
-
|
179
|
-
```ruby
|
180
|
-
require 'bubbles'
|
181
|
-
|
182
|
-
Bubbles.configure do |config|
|
183
|
-
config.endpoints = [
|
184
|
-
{
|
185
|
-
:method => :get,
|
186
|
-
:location => :version,
|
187
|
-
:authenticated => false,
|
188
|
-
:api_key_required => false,
|
189
|
-
:return_type => :body_as_object
|
190
|
-
}
|
191
|
-
]
|
192
|
-
|
193
|
-
config.environment = {
|
194
|
-
:scheme => 'http',
|
195
|
-
:host => '0.0.0.0',
|
196
|
-
:port => '1234'
|
197
|
-
}
|
198
|
-
end
|
199
|
-
```
|
200
|
-
|
201
|
-
**Usage**:
|
202
|
-
```ruby
|
203
|
-
it 'should return an object containing the version information from the API' do
|
204
|
-
resources = Bubbles::Resources.new
|
205
|
-
environment = resources.environment
|
206
|
-
|
207
|
-
response = environment.version
|
208
|
-
expect(response).to_not be_nil
|
209
|
-
expect(response.name).to eq('My Sweet API')
|
210
|
-
expect(response.versionName).to eq('0.0.1')
|
211
|
-
end
|
212
|
-
```
|
213
|
-
|
214
|
-
#### GET a specific user by id (authentication required)
|
215
|
-
**Configuration**:
|
216
|
-
```ruby
|
217
|
-
Bubbles.configure do |config|
|
218
|
-
config.endpoints = [
|
219
|
-
{
|
220
|
-
:method => :get,
|
221
|
-
:location => 'users/{id}',
|
222
|
-
:authenticated => true,
|
223
|
-
:name => :get_user,
|
224
|
-
:return_type => :body_as_object
|
225
|
-
}
|
226
|
-
]
|
227
|
-
|
228
|
-
config.environment = {
|
229
|
-
:scheme => 'http',
|
230
|
-
:host => '127.0.0.1',
|
231
|
-
:port => '9002'
|
232
|
-
}
|
233
|
-
end
|
234
|
-
```
|
235
|
-
|
236
|
-
**Usage**:
|
237
|
-
```ruby
|
238
|
-
it 'should return an object containing a user with id = 4' do
|
239
|
-
environment = Bubbles::Resources.new.environment
|
240
|
-
user = environment.get_user(@auth_token, {:id => 4})
|
241
|
-
expect(user).to_not be_nil
|
242
|
-
|
243
|
-
expect(user.id).to eq(4)
|
244
|
-
end
|
245
|
-
```
|
246
|
-
|
247
|
-
#### POST a login (i.e. retrieve an authorization token)
|
248
|
-
**Configuration**:
|
249
|
-
```ruby
|
250
|
-
Bubbles.configure do |config|
|
251
|
-
config.endpoints = [
|
252
|
-
{
|
253
|
-
:method => :post,
|
254
|
-
:location => :login,
|
255
|
-
:authenticated => false,
|
256
|
-
:api_key_required => true,
|
257
|
-
:encode_authorization => [:username, :password],
|
258
|
-
:return_type => :body_as_object
|
259
|
-
}
|
260
|
-
]
|
261
|
-
|
262
|
-
config.environment = {
|
263
|
-
:scheme => 'http',
|
264
|
-
:host => '127.0.0.1',
|
265
|
-
:port => '9002',
|
266
|
-
:api_key => 'someapikey'
|
267
|
-
}
|
268
|
-
end
|
269
|
-
```
|
270
|
-
|
271
|
-
**Usage**:
|
272
|
-
```ruby
|
273
|
-
it 'should return a user data structure with a valid authorization token' do
|
274
|
-
environment = Bubbles::Resources.new.environment
|
275
|
-
|
276
|
-
data = { :username => 'myusername', :password => 'mypassword' }
|
277
|
-
login_object = environment.login data
|
278
|
-
|
279
|
-
auth_token = login_object.auth_token
|
280
|
-
|
281
|
-
expect(auth_token).to_not be_nil
|
282
|
-
end
|
283
|
-
```
|
284
|
-
|
285
|
-
#### DELETE a user by id
|
286
|
-
**Configuration**:
|
287
|
-
```ruby
|
288
|
-
Bubbles.configure do |config|
|
289
|
-
config.endpoints = [
|
290
|
-
{
|
291
|
-
:method => :delete,
|
292
|
-
:location => 'users/{id}',
|
293
|
-
:authenticated => true,
|
294
|
-
:name => 'delete_user_by_id',
|
295
|
-
:return_type => :body_as_object
|
296
|
-
}
|
297
|
-
]
|
298
|
-
|
299
|
-
config.environment = {
|
300
|
-
:scheme => 'http',
|
301
|
-
:host => '127.0.0.1',
|
302
|
-
:port => '9002'
|
303
|
-
}
|
304
|
-
```
|
305
|
-
|
306
|
-
**Usage**:
|
307
|
-
```ruby
|
308
|
-
it 'should successfully delete the given user' do
|
309
|
-
environment = Bubbles::Resources.new.environment
|
310
|
-
response = environment.delete_user_by_id @auth_token, {:id => 2}
|
311
|
-
expect(response.success).to eq(true)
|
312
|
-
end
|
313
|
-
```
|
314
|
-
|
315
|
-
#### PATCH a user's information by providing a body containing information to update
|
316
|
-
**Configuration**:
|
317
|
-
```ruby
|
318
|
-
Bubbles.configure do |config|
|
319
|
-
config.endpoints = [
|
320
|
-
{
|
321
|
-
:method => :patch,
|
322
|
-
:location => 'users/{id}',
|
323
|
-
:authenticated => true,
|
324
|
-
:name => 'update_user',
|
325
|
-
:return_type => :body_as_object
|
326
|
-
}
|
327
|
-
]
|
328
|
-
|
329
|
-
config.environment = {
|
330
|
-
:scheme => 'http',
|
331
|
-
:host => '127.0.0.1',
|
332
|
-
:port => '9002'
|
333
|
-
}
|
334
|
-
```
|
335
|
-
|
336
|
-
**Usage**:
|
337
|
-
```ruby
|
338
|
-
it 'should update information for the specified user' do
|
339
|
-
environment = Bubbles::Resources.new.environment
|
340
|
-
response = environment.update_user @auth_token, {:id => 4}, {:user => {:email => 'kleinhammer@somewhere.com' } }
|
341
|
-
|
342
|
-
expect(response.id).to eq(4)
|
343
|
-
expect(response.email).to eq('kleinhammer@somewhere.com')
|
344
|
-
end
|
345
|
-
```
|
73
|
+
For more examples and detailed documentation, please see [the Bubbles GitHub page](http://foamfactory.github.io/bubbles).
|
data/bubbles.gemspec
CHANGED
@@ -32,8 +32,8 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
33
33
|
spec.require_paths = ["lib"]
|
34
34
|
|
35
|
-
spec.add_development_dependency "bundler", "~> 2.
|
36
|
-
spec.add_development_dependency "rake", "
|
35
|
+
spec.add_development_dependency "bundler", "~> 2.1.4"
|
36
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
37
37
|
spec.add_development_dependency "minitest", "~> 5.0"
|
38
38
|
spec.add_development_dependency "minitest-reporters", "~> 1.1"
|
39
39
|
spec.add_development_dependency "simplecov", "~> 0.16"
|
data/lib/bubbles/config.rb
CHANGED
@@ -10,7 +10,7 @@ module Bubbles
|
|
10
10
|
##
|
11
11
|
# Configure the Bubbles instance.
|
12
12
|
#
|
13
|
-
# Use this method if you want to configure the Bubbles instance, typically during
|
13
|
+
# Use this method if you want to configure the Bubbles instance, typically during initialization of your Gem or
|
14
14
|
# application.
|
15
15
|
#
|
16
16
|
# @example In app/config/initializers/bubbles.rb
|
@@ -39,50 +39,84 @@ module Bubbles
|
|
39
39
|
#
|
40
40
|
class Configuration
|
41
41
|
def initialize
|
42
|
-
@
|
43
|
-
@environment_host = '127.0.0.1'
|
44
|
-
@environment_port = '1234'
|
45
|
-
@environment_api_key = nil
|
46
|
-
@environment_api_key_name = 'X-API-Key'
|
47
|
-
|
42
|
+
@environments = Hash.new
|
48
43
|
@endpoints = Hash.new
|
49
44
|
end
|
50
45
|
|
51
46
|
##
|
52
|
-
# Retrieve the {RestEnvironment} object defined as part of this Configuration.
|
47
|
+
# Retrieve the {RestEnvironment} object defined as part of this Configuration having a specified name.
|
48
|
+
#
|
49
|
+
# @param [String] environment_name The name of the {RestEnvironment} to retrieve.
|
50
|
+
#
|
51
|
+
# The +environment_name+ is +nil+ by default, which will return the default configuration, if only one exists.
|
53
52
|
#
|
54
|
-
#
|
53
|
+
# @return [RestEnvironment] A new +RestEnvironment+ having the configuration that was created with key
|
54
|
+
# +environment_name+. Note that +RestEnvironment+s are essentially immutable once they are created, so
|
55
|
+
# an existing object will _never_ be returned.
|
55
56
|
#
|
56
|
-
def environment
|
57
|
-
|
58
|
-
|
57
|
+
def environment(environment_name = nil)
|
58
|
+
if environment_name.nil?
|
59
|
+
if @environments.length > 1
|
60
|
+
raise 'You must specify an environment_name parameter because more than one environment is defined'
|
61
|
+
end
|
62
|
+
|
63
|
+
env_hash = @environments[nil]
|
64
|
+
else
|
65
|
+
env_hash = @environments[environment_name]
|
66
|
+
end
|
67
|
+
|
68
|
+
if env_hash.nil?
|
69
|
+
if environment_name.nil?
|
70
|
+
raise 'No default environment specified'
|
71
|
+
end
|
72
|
+
|
73
|
+
raise 'No environment specified having name {}', environment_name
|
74
|
+
end
|
75
|
+
|
76
|
+
RestEnvironment.new(env_hash[:scheme], env_hash[:host], env_hash[:port], env_hash[:api_key],
|
77
|
+
env_hash[:api_key_name])
|
59
78
|
end
|
60
79
|
|
61
80
|
##
|
62
|
-
# Set the
|
81
|
+
# Set the environments that can be used.
|
63
82
|
#
|
64
|
-
# @param [
|
83
|
+
# @param [Array] environments The environments, as an array with each entry a +Hash+.
|
84
|
+
#
|
85
|
+
# One or more environments may be specified, but if more than one environment is specified, it is required that each
|
86
|
+
# environment have a +:environment_name:+ parameter to differentiate it from other environments.
|
65
87
|
#
|
66
88
|
# @example In app/config/environments/staging.rb:
|
67
89
|
# Bubbles.configure do |config|
|
68
|
-
# config.
|
90
|
+
# config.environments = [{
|
69
91
|
# :scheme => 'https',
|
70
92
|
# :host => 'stage.api.somehost.com',
|
71
93
|
# :port => '443',
|
72
94
|
# :api_key => 'something',
|
73
95
|
# :api_key_name => 'X-API-Key' # Optional
|
74
|
-
# }
|
96
|
+
# }]
|
75
97
|
# end
|
76
98
|
#
|
77
|
-
def
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
99
|
+
def environments=(environments)
|
100
|
+
default = nil
|
101
|
+
environments.each do |environment|
|
102
|
+
if environments.length > 1 && environment[:environment_name].nil?
|
103
|
+
message = 'More than one environment was specified and at least one of the environments does not have an ' \
|
104
|
+
':environment_name field. Verify all environments have an :environment_name.'
|
105
|
+
|
106
|
+
raise message
|
107
|
+
end
|
108
|
+
|
109
|
+
@environments = {}
|
110
|
+
env_api_key = 'X-API-Key'
|
111
|
+
env_api_key = environment[:api_key_name] if environment.key? :api_key_name
|
112
|
+
|
113
|
+
@environments[environment[:environment_name]] = {
|
114
|
+
scheme: environment[:scheme],
|
115
|
+
host: environment[:host],
|
116
|
+
port: environment[:port],
|
117
|
+
api_key: environment[:api_key],
|
118
|
+
api_key_name: env_api_key
|
119
|
+
}
|
86
120
|
end
|
87
121
|
end
|
88
122
|
|
@@ -173,8 +207,8 @@ module Bubbles
|
|
173
207
|
if endpoint.encode_authorization_header?
|
174
208
|
auth_value = RestClientResources.get_encoded_authorization(endpoint, data)
|
175
209
|
composite_headers = RestClientResources.build_composite_headers(endpoint.additional_headers, {
|
176
|
-
|
177
|
-
|
210
|
+
Authorization: 'Basic ' + Base64.strict_encode64(auth_value)
|
211
|
+
})
|
178
212
|
end
|
179
213
|
|
180
214
|
RestClientResources.execute_post_unauthenticated self, endpoint, data, composite_headers, self.get_api_key_if_needed(endpoint), self.api_key_name
|
data/lib/bubbles/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bubbles-rest-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Johnson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-10-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.
|
19
|
+
version: 2.1.4
|
20
20
|
type: :development
|
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: 2.
|
26
|
+
version: 2.1.4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 12.3.3
|
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:
|
40
|
+
version: 12.3.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -172,12 +172,12 @@ executables: []
|
|
172
172
|
extensions: []
|
173
173
|
extra_rdoc_files: []
|
174
174
|
files:
|
175
|
+
- ".github/FUNDING.yml"
|
175
176
|
- ".gitignore"
|
176
177
|
- ".travis.yml"
|
177
178
|
- CODE_OF_CONDUCT.md
|
178
179
|
- CONTRIBUTING.md
|
179
180
|
- Gemfile
|
180
|
-
- Gemfile.lock
|
181
181
|
- LICENSE
|
182
182
|
- README.md
|
183
183
|
- Rakefile
|
@@ -210,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
210
|
- !ruby/object:Gem::Version
|
211
211
|
version: '0'
|
212
212
|
requirements: []
|
213
|
-
rubygems_version: 3.0.
|
213
|
+
rubygems_version: 3.0.8
|
214
214
|
signing_key:
|
215
215
|
specification_version: 4
|
216
216
|
summary: A gem for easily defining client REST interfaces in Ruby
|
data/Gemfile.lock
DELETED
@@ -1,89 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
bubbles-rest-client (0.5.0)
|
5
|
-
addressable (~> 2.5)
|
6
|
-
rest-client (~> 2.0)
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: https://rubygems.org/
|
10
|
-
specs:
|
11
|
-
addressable (2.5.2)
|
12
|
-
public_suffix (>= 2.0.2, < 4.0)
|
13
|
-
ansi (1.5.0)
|
14
|
-
builder (3.2.3)
|
15
|
-
crack (0.4.3)
|
16
|
-
safe_yaml (~> 1.0.0)
|
17
|
-
diff-lcs (1.3)
|
18
|
-
docile (1.3.1)
|
19
|
-
domain_name (0.5.20190701)
|
20
|
-
unf (>= 0.0.5, < 1.0.0)
|
21
|
-
hashdiff (1.0.0)
|
22
|
-
http-accept (1.7.0)
|
23
|
-
http-cookie (1.0.3)
|
24
|
-
domain_name (~> 0.5)
|
25
|
-
json (2.0.2)
|
26
|
-
mime-types (3.3)
|
27
|
-
mime-types-data (~> 3.2015)
|
28
|
-
mime-types-data (3.2019.0904)
|
29
|
-
minitest (5.11.3)
|
30
|
-
minitest-reporters (1.1.19)
|
31
|
-
ansi
|
32
|
-
builder
|
33
|
-
minitest (>= 5.0)
|
34
|
-
ruby-progressbar
|
35
|
-
netrc (0.11.0)
|
36
|
-
os (1.0.1)
|
37
|
-
public_suffix (3.0.3)
|
38
|
-
rake (10.5.0)
|
39
|
-
rest-client (2.1.0)
|
40
|
-
http-accept (>= 1.7.0, < 2.0)
|
41
|
-
http-cookie (>= 1.0.2, < 2.0)
|
42
|
-
mime-types (>= 1.16, < 4.0)
|
43
|
-
netrc (~> 0.8)
|
44
|
-
rspec (3.8.0)
|
45
|
-
rspec-core (~> 3.8.0)
|
46
|
-
rspec-expectations (~> 3.8.0)
|
47
|
-
rspec-mocks (~> 3.8.0)
|
48
|
-
rspec-core (3.8.0)
|
49
|
-
rspec-support (~> 3.8.0)
|
50
|
-
rspec-expectations (3.8.2)
|
51
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
52
|
-
rspec-support (~> 3.8.0)
|
53
|
-
rspec-mocks (3.8.0)
|
54
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
55
|
-
rspec-support (~> 3.8.0)
|
56
|
-
rspec-support (3.8.0)
|
57
|
-
ruby-progressbar (1.9.0)
|
58
|
-
safe_yaml (1.0.5)
|
59
|
-
simplecov (0.16.1)
|
60
|
-
docile (~> 1.1)
|
61
|
-
json (>= 1.8, < 3)
|
62
|
-
simplecov-html (~> 0.10.0)
|
63
|
-
simplecov-html (0.10.2)
|
64
|
-
unf (0.1.4)
|
65
|
-
unf_ext
|
66
|
-
unf_ext (0.0.7.6)
|
67
|
-
vcr (3.0.3)
|
68
|
-
webmock (3.6.0)
|
69
|
-
addressable (>= 2.3.6)
|
70
|
-
crack (>= 0.3.2)
|
71
|
-
hashdiff (>= 0.4.0, < 2.0.0)
|
72
|
-
|
73
|
-
PLATFORMS
|
74
|
-
ruby
|
75
|
-
|
76
|
-
DEPENDENCIES
|
77
|
-
bubbles-rest-client!
|
78
|
-
bundler (~> 2.0.0)
|
79
|
-
minitest (~> 5.0)
|
80
|
-
minitest-reporters (~> 1.1)
|
81
|
-
os
|
82
|
-
rake (~> 10.0)
|
83
|
-
rspec (~> 3.8)
|
84
|
-
simplecov (~> 0.16)
|
85
|
-
vcr (~> 3.0)
|
86
|
-
webmock (~> 3.5)
|
87
|
-
|
88
|
-
BUNDLED WITH
|
89
|
-
2.0.2
|