ddy_remote_resource 1.1.1 → 1.2.2
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 +4 -4
- data/.gitignore +1 -0
- data/.ruby-version +1 -1
- data/.travis.yml +1 -1
- data/lib/remote_resource/errors.rb +7 -0
- data/lib/remote_resource/request.rb +32 -19
- data/lib/remote_resource/response.rb +9 -1
- data/lib/remote_resource/version.rb +1 -1
- data/remote_resource.gemspec +7 -7
- data/spec/integration/create_spec.rb +3 -3
- data/spec/integration/save_spec.rb +4 -4
- data/spec/lib/remote_resource/request_spec.rb +54 -6
- data/spec/lib/remote_resource/version_spec.rb +1 -1
- metadata +15 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b75b31568bd5a246694f34d65c20226e97c2620f7afd6f11750af62ed594b458
|
4
|
+
data.tar.gz: 3bdce3777b2ea4fc6a72371ec9e117a3f41bd304316cd0f8eb064e8fa3c0fa8e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0c20de26d1ae69f00878158fa2730fffa0cf43a1b6981a55faec3e435950009700fee9d600160698b45b235d9ffa42c8ee8848bb8e5a8eaab6935461976d554
|
7
|
+
data.tar.gz: 9cd8475b745edad03b039567d5353b7a7b5077ad4d2721bd91b6b114a35d4a44554d417b060f3a069e20fa911232e5ec080183c1328f09e4e2ea1301713d3025
|
data/.gitignore
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.3
|
1
|
+
2.5.3
|
data/.travis.yml
CHANGED
@@ -42,6 +42,12 @@ module RemoteResource
|
|
42
42
|
@response.code
|
43
43
|
end
|
44
44
|
|
45
|
+
# The return code can contain additional information when response_code=0
|
46
|
+
# see https://curl.se/libcurl/c/libcurl-errors.html for the full list
|
47
|
+
def return_code
|
48
|
+
@response.return_code
|
49
|
+
end
|
50
|
+
|
45
51
|
def response_body
|
46
52
|
@response.body # TODO: Filter sensitive information using: RemoteResource::Util.filter_params
|
47
53
|
end
|
@@ -53,6 +59,7 @@ module RemoteResource
|
|
53
59
|
def to_s
|
54
60
|
message = "HTTP request failed for #{resource_klass}"
|
55
61
|
message << " with response_code=#{response_code}" if response_code.present?
|
62
|
+
message << " with return_code=#{return_code}" if return_code.present? && response_code.zero?
|
56
63
|
message << " with http_action=#{http_action}"
|
57
64
|
message << " with request_url=#{request_url}"
|
58
65
|
message
|
@@ -14,6 +14,9 @@ module RemoteResource
|
|
14
14
|
|
15
15
|
DEFAULT_EXTENSION = '.json'.freeze
|
16
16
|
|
17
|
+
DEFAULT_CONNECT_TIMEOUT = 30
|
18
|
+
DEFAULT_READ_TIMEOUT = 120
|
19
|
+
|
17
20
|
attr_reader :resource, :resource_klass, :http_action, :attributes
|
18
21
|
|
19
22
|
def initialize(resource, http_action, attributes = {}, connection_options = {})
|
@@ -41,7 +44,7 @@ module RemoteResource
|
|
41
44
|
def perform
|
42
45
|
SUPPORTED_HTTP_METHODS.include?(http_action) || raise(RemoteResource::HTTPMethodUnsupported, "Requested HTTP method=#{http_action.to_s} is NOT supported, the HTTP action MUST be a supported HTTP action=#{SUPPORTED_HTTP_METHODS.join(', ')}")
|
43
46
|
|
44
|
-
connection_response = connection.public_send(http_action, request_url, params: query, body: body, headers: headers)
|
47
|
+
connection_response = connection.public_send(http_action, request_url, params: query, body: body, headers: headers, **timeout_options)
|
45
48
|
response = RemoteResource::Response.new(connection_response, connection_options.merge(request: self, connection_request: connection_response.request))
|
46
49
|
|
47
50
|
if response.success? || response.unprocessable_entity?
|
@@ -118,47 +121,57 @@ module RemoteResource
|
|
118
121
|
headers
|
119
122
|
end
|
120
123
|
|
124
|
+
def timeout_options
|
125
|
+
connecttimeout = connection_options[:connecttimeout].presence || DEFAULT_CONNECT_TIMEOUT
|
126
|
+
timeout = connection_options[:timeout].presence || DEFAULT_READ_TIMEOUT
|
127
|
+
|
128
|
+
{ connecttimeout: connecttimeout, timeout: timeout }
|
129
|
+
end
|
130
|
+
|
121
131
|
private
|
122
132
|
|
123
133
|
def raise_http_error(request, response)
|
134
|
+
# Special case if a request has a time out, as Typhoeus does not set a 408 response_code
|
135
|
+
raise RemoteResource::HTTPRequestTimeout.new(request, response) if response.timed_out?
|
136
|
+
|
124
137
|
case response.try(:response_code)
|
125
138
|
when 301, 302, 303, 307 then
|
126
139
|
raise RemoteResource::HTTPRedirectionError.new(request, response)
|
127
|
-
when 400
|
140
|
+
when 400
|
128
141
|
raise RemoteResource::HTTPBadRequest.new(request, response)
|
129
|
-
when 401
|
142
|
+
when 401
|
130
143
|
raise RemoteResource::HTTPUnauthorized.new(request, response)
|
131
|
-
when 403
|
144
|
+
when 403
|
132
145
|
raise RemoteResource::HTTPForbidden.new(request, response)
|
133
|
-
when 404
|
146
|
+
when 404
|
134
147
|
raise RemoteResource::HTTPNotFound.new(request, response)
|
135
|
-
when 405
|
148
|
+
when 405
|
136
149
|
raise RemoteResource::HTTPMethodNotAllowed.new(request, response)
|
137
|
-
when 406
|
150
|
+
when 406
|
138
151
|
raise RemoteResource::HTTPNotAcceptable.new(request, response)
|
139
|
-
when 408
|
152
|
+
when 408
|
140
153
|
raise RemoteResource::HTTPRequestTimeout.new(request, response)
|
141
|
-
when 409
|
154
|
+
when 409
|
142
155
|
raise RemoteResource::HTTPConflict.new(request, response)
|
143
|
-
when 410
|
156
|
+
when 410
|
144
157
|
raise RemoteResource::HTTPGone.new(request, response)
|
145
|
-
when 418
|
158
|
+
when 418
|
146
159
|
raise RemoteResource::HTTPTeapot.new(request, response)
|
147
|
-
when 444
|
160
|
+
when 444
|
148
161
|
raise RemoteResource::HTTPNoResponse.new(request, response)
|
149
|
-
when 494
|
162
|
+
when 494
|
150
163
|
raise RemoteResource::HTTPRequestHeaderTooLarge.new(request, response)
|
151
|
-
when 495
|
164
|
+
when 495
|
152
165
|
raise RemoteResource::HTTPCertError.new(request, response)
|
153
|
-
when 496
|
166
|
+
when 496
|
154
167
|
raise RemoteResource::HTTPNoCert.new(request, response)
|
155
|
-
when 497
|
168
|
+
when 497
|
156
169
|
raise RemoteResource::HTTPToHTTPS.new(request, response)
|
157
|
-
when 499
|
170
|
+
when 499
|
158
171
|
raise RemoteResource::HTTPClientClosedRequest.new(request, response)
|
159
|
-
when 400..499
|
172
|
+
when 400..499
|
160
173
|
raise RemoteResource::HTTPClientError.new(request, response)
|
161
|
-
when 500..599
|
174
|
+
when 500..599
|
162
175
|
raise RemoteResource::HTTPServerError.new(request, response)
|
163
176
|
else
|
164
177
|
raise RemoteResource::HTTPError.new(request, response)
|
@@ -16,6 +16,10 @@ module RemoteResource
|
|
16
16
|
@connection_response.success?
|
17
17
|
end
|
18
18
|
|
19
|
+
def timed_out?
|
20
|
+
@connection_response.timed_out?
|
21
|
+
end
|
22
|
+
|
19
23
|
def unprocessable_entity?
|
20
24
|
response_code == 422
|
21
25
|
end
|
@@ -24,7 +28,11 @@ module RemoteResource
|
|
24
28
|
@response_code ||= @connection_response.response_code
|
25
29
|
end
|
26
30
|
|
27
|
-
|
31
|
+
alias code response_code
|
32
|
+
|
33
|
+
def return_code
|
34
|
+
@return_code ||= @connection_response.return_code
|
35
|
+
end
|
28
36
|
|
29
37
|
def headers
|
30
38
|
@headers ||= @connection_response.headers
|
data/remote_resource.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'remote_resource/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'ddy_remote_resource'
|
8
8
|
spec.version = RemoteResource::VERSION
|
9
|
-
spec.authors = ['Jan van der Pas']
|
10
|
-
spec.email = ['
|
9
|
+
spec.authors = ['Digidentity', 'Jan van der Pas']
|
10
|
+
spec.email = ['development@digidentity.com']
|
11
11
|
spec.summary = %q{RemoteResource, a gem to use resources with REST services.}
|
12
12
|
spec.description = %q{RemoteResource, a gem to use resources with REST services. A replacement for ActiveResource gem.}
|
13
13
|
spec.homepage = ''
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency 'bundler'
|
21
|
+
spec.add_development_dependency 'bundler'
|
22
22
|
spec.add_development_dependency 'rake', '~> 10.4'
|
23
23
|
spec.add_development_dependency 'rspec', '~> 3.1'
|
24
24
|
spec.add_development_dependency 'pry', '~> 0.10'
|
@@ -27,11 +27,11 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency 'guard-rspec', '~> 4.7'
|
28
28
|
spec.add_development_dependency 'terminal-notifier-guard', '~> 1.6'
|
29
29
|
|
30
|
-
spec.add_runtime_dependency 'activesupport', '>= 4.1', '<
|
31
|
-
spec.add_runtime_dependency 'activemodel', '>= 4.1', '<
|
30
|
+
spec.add_runtime_dependency 'activesupport', '>= 4.1', '< 7'
|
31
|
+
spec.add_runtime_dependency 'activemodel', '>= 4.1', '< 7'
|
32
32
|
spec.add_runtime_dependency 'virtus', '~> 1.0', '>= 1.0.4'
|
33
33
|
spec.add_runtime_dependency 'mime-types', '~> 3.0'
|
34
|
-
spec.add_runtime_dependency 'ethon'
|
35
|
-
spec.add_runtime_dependency 'typhoeus', '
|
34
|
+
spec.add_runtime_dependency 'ethon'
|
35
|
+
spec.add_runtime_dependency 'typhoeus', '>= 0.7'
|
36
36
|
spec.add_runtime_dependency 'request_store', '~> 1.4.1'
|
37
37
|
end
|
@@ -44,7 +44,7 @@ RSpec.describe '.create' do
|
|
44
44
|
|
45
45
|
let!(:expected_request) do
|
46
46
|
mock_request = stub_request(:post, 'https://www.example.com/posts.json')
|
47
|
-
mock_request.with(query: nil, body:
|
47
|
+
mock_request.with(query: nil, body: expected_request_body.to_json, headers: expected_default_headers)
|
48
48
|
mock_request.to_return(status: 201, body: JSON.generate(response_body))
|
49
49
|
mock_request
|
50
50
|
end
|
@@ -81,7 +81,7 @@ RSpec.describe '.create' do
|
|
81
81
|
|
82
82
|
let!(:expected_request) do
|
83
83
|
mock_request = stub_request(:post, 'https://www.example.com/posts.json')
|
84
|
-
mock_request.with(query: nil, body:
|
84
|
+
mock_request.with(query: nil, body: expected_request_body.to_json, headers: expected_default_headers.merge({ 'X-Pseudonym' => 'pseudonym' }))
|
85
85
|
mock_request.to_return(status: 201, body: JSON.generate(response_body))
|
86
86
|
mock_request
|
87
87
|
end
|
@@ -114,7 +114,7 @@ RSpec.describe '.create' do
|
|
114
114
|
|
115
115
|
let!(:expected_request) do
|
116
116
|
mock_request = stub_request(:post, 'https://www.example.com/posts.json')
|
117
|
-
mock_request.with(query: nil, body:
|
117
|
+
mock_request.with(query: nil, body: expected_request_body.to_json, headers: expected_default_headers)
|
118
118
|
mock_request.to_return(status: 422, body: JSON.generate(response_body))
|
119
119
|
mock_request
|
120
120
|
end
|
@@ -48,7 +48,7 @@ RSpec.describe '#save' do
|
|
48
48
|
describe 'default behaviour' do
|
49
49
|
let!(:expected_request) do
|
50
50
|
mock_request = stub_request(:patch, 'https://www.example.com/posts/12.json')
|
51
|
-
mock_request.with(query: nil, body:
|
51
|
+
mock_request.with(query: nil, body: expected_request_body.to_json, headers: expected_default_headers)
|
52
52
|
mock_request.to_return(status: 200, body: JSON.generate(response_body))
|
53
53
|
mock_request
|
54
54
|
end
|
@@ -77,7 +77,7 @@ RSpec.describe '#save' do
|
|
77
77
|
describe 'with connection_options[:headers]' do
|
78
78
|
let!(:expected_request) do
|
79
79
|
mock_request = stub_request(:patch, 'https://www.example.com/posts/12.json')
|
80
|
-
mock_request.with(query: nil, body:
|
80
|
+
mock_request.with(query: nil, body: expected_request_body.to_json, headers: expected_default_headers.merge({ 'X-Pseudonym' => 'pseudonym' }))
|
81
81
|
mock_request.to_return(status: 200, body: JSON.generate(response_body))
|
82
82
|
mock_request
|
83
83
|
end
|
@@ -111,7 +111,7 @@ RSpec.describe '#save' do
|
|
111
111
|
|
112
112
|
let!(:expected_request) do
|
113
113
|
mock_request = stub_request(:patch, 'https://www.example.com/posts/12.json')
|
114
|
-
mock_request.with(query: nil, body:
|
114
|
+
mock_request.with(query: nil, body: expected_request_body.to_json, headers: expected_default_headers)
|
115
115
|
mock_request.to_return(status: 422, body: JSON.generate(response_body))
|
116
116
|
mock_request
|
117
117
|
end
|
@@ -148,7 +148,7 @@ RSpec.describe '#save' do
|
|
148
148
|
describe 'with a 500 response' do
|
149
149
|
let!(:expected_request) do
|
150
150
|
mock_request = stub_request(:patch, 'https://www.example.com/posts/12.json')
|
151
|
-
mock_request.with(query: nil, body:
|
151
|
+
mock_request.with(query: nil, body: expected_request_body.to_json, headers: expected_default_headers.merge({ 'X-Pseudonym' => 'pseudonym' }))
|
152
152
|
mock_request.to_return(status: 500)
|
153
153
|
mock_request
|
154
154
|
end
|
@@ -168,7 +168,9 @@ RSpec.describe RemoteResource::Request do
|
|
168
168
|
let(:expected_connection_options) { request.connection_options }
|
169
169
|
|
170
170
|
it 'makes a GET request with the connection_options[:params] as query' do
|
171
|
-
expect(connection).to receive(:get).with(expected_request_url, params: expected_params,
|
171
|
+
expect(connection).to receive(:get).with(expected_request_url, params: expected_params,
|
172
|
+
body: expected_body, headers: expected_headers,
|
173
|
+
connecttimeout: 30, timeout: 120).and_call_original
|
172
174
|
request.perform
|
173
175
|
end
|
174
176
|
|
@@ -191,7 +193,9 @@ RSpec.describe RemoteResource::Request do
|
|
191
193
|
let(:expected_connection_options) { request.connection_options }
|
192
194
|
|
193
195
|
it 'makes a PUT request with the attributes as body' do
|
194
|
-
expect(connection).to receive(:put).with(expected_request_url, params: expected_params,
|
196
|
+
expect(connection).to receive(:put).with(expected_request_url, params: expected_params,
|
197
|
+
body: expected_body, headers: expected_headers,
|
198
|
+
connecttimeout: 30, timeout: 120).and_call_original
|
195
199
|
request.perform
|
196
200
|
end
|
197
201
|
|
@@ -214,7 +218,9 @@ RSpec.describe RemoteResource::Request do
|
|
214
218
|
let(:expected_connection_options) { request.connection_options }
|
215
219
|
|
216
220
|
it 'makes a PATCH request with the attributes as body' do
|
217
|
-
expect(connection).to receive(:patch).with(expected_request_url, params: expected_params,
|
221
|
+
expect(connection).to receive(:patch).with(expected_request_url, params: expected_params,
|
222
|
+
body: expected_body, headers: expected_headers,
|
223
|
+
connecttimeout: 30, timeout: 120).and_call_original
|
218
224
|
request.perform
|
219
225
|
end
|
220
226
|
|
@@ -237,7 +243,9 @@ RSpec.describe RemoteResource::Request do
|
|
237
243
|
let(:expected_connection_options) { request.connection_options }
|
238
244
|
|
239
245
|
it 'makes a POST request with the attributes as body' do
|
240
|
-
expect(connection).to receive(:post).with(expected_request_url, params: expected_params,
|
246
|
+
expect(connection).to receive(:post).with(expected_request_url, params: expected_params,
|
247
|
+
body: expected_body, headers: expected_headers,
|
248
|
+
connecttimeout: 30, timeout: 120).and_call_original
|
241
249
|
request.perform
|
242
250
|
end
|
243
251
|
|
@@ -260,7 +268,9 @@ RSpec.describe RemoteResource::Request do
|
|
260
268
|
let(:expected_connection_options) { request.connection_options }
|
261
269
|
|
262
270
|
it 'makes a DELETE request with the connection_options[:params] as query' do
|
263
|
-
expect(connection).to receive(:delete).with(expected_request_url, params: expected_params,
|
271
|
+
expect(connection).to receive(:delete).with(expected_request_url, params: expected_params,
|
272
|
+
body: expected_body, headers: expected_headers,
|
273
|
+
connecttimeout: 30, timeout: 120).and_call_original
|
264
274
|
request.perform
|
265
275
|
end
|
266
276
|
|
@@ -586,10 +596,37 @@ RSpec.describe RemoteResource::Request do
|
|
586
596
|
end
|
587
597
|
end
|
588
598
|
|
599
|
+
describe '#timeout_options' do
|
600
|
+
it 'is not given by default' do
|
601
|
+
expect(request.connection_options).not_to include :connecttimeout, :timeout
|
602
|
+
end
|
603
|
+
|
604
|
+
context 'with custom timeouts' do
|
605
|
+
let(:connection_options) do
|
606
|
+
{ connecttimeout: 1, timeout: 2 }
|
607
|
+
end
|
608
|
+
|
609
|
+
it 'sets the timeouts from connection_options' do
|
610
|
+
aggregate_failures do
|
611
|
+
expect(request.connection_options[:connecttimeout]).to eq 1
|
612
|
+
expect(request.connection_options[:timeout]).to eq 2
|
613
|
+
end
|
614
|
+
end
|
615
|
+
end
|
616
|
+
end
|
617
|
+
|
589
618
|
describe '#raise_http_error' do
|
590
|
-
let(:connection_response) { instance_double(Typhoeus::Response, request: instance_double(Typhoeus::Request)) }
|
619
|
+
let(:connection_response) { instance_double(Typhoeus::Response, request: instance_double(Typhoeus::Request), timed_out?: false) }
|
591
620
|
let(:response) { RemoteResource::Response.new(connection_response, connection_options) }
|
592
621
|
|
622
|
+
context 'when the response has timed out' do
|
623
|
+
let(:connection_response) { instance_double(Typhoeus::Response, request: instance_double(Typhoeus::Request), timed_out?: true) }
|
624
|
+
|
625
|
+
it 'raises a RemoteResource::HTTPRequestTimeout' do
|
626
|
+
expect { request.send(:raise_http_error, request, response) }.to raise_error RemoteResource::HTTPRequestTimeout
|
627
|
+
end
|
628
|
+
end
|
629
|
+
|
593
630
|
context 'when the response code is 301, 302, 303 or 307' do
|
594
631
|
response_codes = [301, 302, 303, 307]
|
595
632
|
response_codes.each do |response_code|
|
@@ -645,6 +682,17 @@ RSpec.describe RemoteResource::Request do
|
|
645
682
|
end
|
646
683
|
end
|
647
684
|
|
685
|
+
context 'when the response code is 0 and no other error is raised' do
|
686
|
+
it 'raises a RemoteResource::HTTPError with correct error message' do
|
687
|
+
allow(response).to receive(:response_code) { 0 }
|
688
|
+
allow(connection_response).to receive(:return_code) { :ssl_connect }
|
689
|
+
allow(connection_response).to receive(:response_code) { 0 }
|
690
|
+
|
691
|
+
error_message = 'HTTP request failed for RemoteResource::RequestDummy with response_code=0 with return_code=ssl_connect with http_action=get with request_url=http://www.foobar.com/request_dummy.json'
|
692
|
+
expect { request.send(:raise_http_error, request, response) }.to raise_error RemoteResource::HTTPError, error_message
|
693
|
+
end
|
694
|
+
end
|
695
|
+
|
648
696
|
context 'when the response code is nothing and no other error is raised' do
|
649
697
|
it 'raises a RemoteResource::HTTPError' do
|
650
698
|
allow(response).to receive(:response_code) { nil }
|
metadata
CHANGED
@@ -1,29 +1,30 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddy_remote_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
+
- Digidentity
|
7
8
|
- Jan van der Pas
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2021-11-10 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
- - "
|
18
|
+
- - ">="
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
+
version: '0'
|
20
21
|
type: :development
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
|
-
- - "
|
25
|
+
- - ">="
|
25
26
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
27
|
+
version: '0'
|
27
28
|
- !ruby/object:Gem::Dependency
|
28
29
|
name: rake
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,7 +118,7 @@ dependencies:
|
|
117
118
|
version: '4.1'
|
118
119
|
- - "<"
|
119
120
|
- !ruby/object:Gem::Version
|
120
|
-
version: '
|
121
|
+
version: '7'
|
121
122
|
type: :runtime
|
122
123
|
prerelease: false
|
123
124
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -127,7 +128,7 @@ dependencies:
|
|
127
128
|
version: '4.1'
|
128
129
|
- - "<"
|
129
130
|
- !ruby/object:Gem::Version
|
130
|
-
version: '
|
131
|
+
version: '7'
|
131
132
|
- !ruby/object:Gem::Dependency
|
132
133
|
name: activemodel
|
133
134
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,7 +138,7 @@ dependencies:
|
|
137
138
|
version: '4.1'
|
138
139
|
- - "<"
|
139
140
|
- !ruby/object:Gem::Version
|
140
|
-
version: '
|
141
|
+
version: '7'
|
141
142
|
type: :runtime
|
142
143
|
prerelease: false
|
143
144
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -147,7 +148,7 @@ dependencies:
|
|
147
148
|
version: '4.1'
|
148
149
|
- - "<"
|
149
150
|
- !ruby/object:Gem::Version
|
150
|
-
version: '
|
151
|
+
version: '7'
|
151
152
|
- !ruby/object:Gem::Dependency
|
152
153
|
name: virtus
|
153
154
|
requirement: !ruby/object:Gem::Requirement
|
@@ -186,30 +187,21 @@ dependencies:
|
|
186
187
|
name: ethon
|
187
188
|
requirement: !ruby/object:Gem::Requirement
|
188
189
|
requirements:
|
189
|
-
- - "~>"
|
190
|
-
- !ruby/object:Gem::Version
|
191
|
-
version: '0.7'
|
192
190
|
- - ">="
|
193
191
|
- !ruby/object:Gem::Version
|
194
|
-
version: 0
|
192
|
+
version: '0'
|
195
193
|
type: :runtime
|
196
194
|
prerelease: false
|
197
195
|
version_requirements: !ruby/object:Gem::Requirement
|
198
196
|
requirements:
|
199
|
-
- - "~>"
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '0.7'
|
202
197
|
- - ">="
|
203
198
|
- !ruby/object:Gem::Version
|
204
|
-
version: 0
|
199
|
+
version: '0'
|
205
200
|
- !ruby/object:Gem::Dependency
|
206
201
|
name: typhoeus
|
207
202
|
requirement: !ruby/object:Gem::Requirement
|
208
203
|
requirements:
|
209
204
|
- - ">="
|
210
|
-
- !ruby/object:Gem::Version
|
211
|
-
version: 0.7.0
|
212
|
-
- - "~>"
|
213
205
|
- !ruby/object:Gem::Version
|
214
206
|
version: '0.7'
|
215
207
|
type: :runtime
|
@@ -217,9 +209,6 @@ dependencies:
|
|
217
209
|
version_requirements: !ruby/object:Gem::Requirement
|
218
210
|
requirements:
|
219
211
|
- - ">="
|
220
|
-
- !ruby/object:Gem::Version
|
221
|
-
version: 0.7.0
|
222
|
-
- - "~>"
|
223
212
|
- !ruby/object:Gem::Version
|
224
213
|
version: '0.7'
|
225
214
|
- !ruby/object:Gem::Dependency
|
@@ -239,7 +228,7 @@ dependencies:
|
|
239
228
|
description: RemoteResource, a gem to use resources with REST services. A replacement
|
240
229
|
for ActiveResource gem.
|
241
230
|
email:
|
242
|
-
-
|
231
|
+
- development@digidentity.com
|
243
232
|
executables: []
|
244
233
|
extensions: []
|
245
234
|
extra_rdoc_files: []
|
@@ -319,8 +308,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
319
308
|
- !ruby/object:Gem::Version
|
320
309
|
version: '0'
|
321
310
|
requirements: []
|
322
|
-
|
323
|
-
rubygems_version: 2.7.10
|
311
|
+
rubygems_version: 3.2.15
|
324
312
|
signing_key:
|
325
313
|
specification_version: 4
|
326
314
|
summary: RemoteResource, a gem to use resources with REST services.
|