ddy_remote_resource 1.2.0 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.ruby-version +1 -1
- data/.travis.yml +4 -1
- data/Gemfile +0 -2
- data/README.md +0 -3
- data/lib/remote_resource/errors.rb +7 -0
- data/lib/remote_resource/response.rb +5 -1
- data/lib/remote_resource/url_naming_determination.rb +1 -1
- data/lib/remote_resource/version.rb +1 -1
- data/remote_resource.gemspec +7 -7
- data/spec/integration/save_spec.rb +6 -6
- data/spec/lib/remote_resource/request_spec.rb +11 -0
- data/spec/lib/remote_resource/version_spec.rb +1 -1
- metadata +30 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc832463abbb4ae23f60450dd26d5ea1c0877936bec0bd73240fa5e57146500c
|
4
|
+
data.tar.gz: bce2d906670cc76c1ce5a3d078556d6bb36db600257427481c29abc4a70f2fcc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adb4cba41affef80d801a7797643f71430303ce62e1a1243ad17f2c8590ae6e83baa19c5f5bba5b237084daf9637c0c11cb159abd5e2e8a713631a6f573217af
|
7
|
+
data.tar.gz: 665c40303743c338d00423c05e0e7307ea8f617c536078ee92452e7b4f56758e2f477db96fba6f9734815d326b35da975b0cf30d303693b1057bab645203d823
|
data/.gitignore
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.6
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -11,9 +11,6 @@ To replace `ActiveResource` by providing a dynamic and customizable API interfac
|
|
11
11
|
Add this line to your application's Gemfile:
|
12
12
|
|
13
13
|
```ruby
|
14
|
-
# Use this to fetch the gem from Gitlab
|
15
|
-
gem 'remote_resource', git: 'git@lab.digidentity.eu:jvanderpas/remote_resource.git'
|
16
|
-
|
17
14
|
# Use this to fetch the gem from RubyGems.org
|
18
15
|
gem 'ddy_remote_resource', require: 'remote_resource'
|
19
16
|
```
|
@@ -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
|
@@ -28,7 +28,11 @@ module RemoteResource
|
|
28
28
|
@response_code ||= @connection_response.response_code
|
29
29
|
end
|
30
30
|
|
31
|
-
|
31
|
+
alias code response_code
|
32
|
+
|
33
|
+
def return_code
|
34
|
+
@return_code ||= @connection_response.return_code
|
35
|
+
end
|
32
36
|
|
33
37
|
def headers
|
34
38
|
@headers ||= @connection_response.headers
|
@@ -30,7 +30,7 @@ module RemoteResource
|
|
30
30
|
raise(RemoteResource::CollectionOptionKeyError, "`collection_prefix` variable `#{key}` is missing from `collection_options`") if check_collection_options
|
31
31
|
value = key
|
32
32
|
end
|
33
|
-
|
33
|
+
URI::DEFAULT_PARSER.escape(value.to_s)
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
data/remote_resource.gemspec
CHANGED
@@ -6,7 +6,7 @@ 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 = ['Digidentity', 'Jan van der Pas']
|
9
|
+
spec.authors = ['Digidentity', 'Johnny Dongelmans', 'Jan van der Pas']
|
10
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.}
|
@@ -18,20 +18,20 @@ 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'
|
25
|
-
|
25
|
+
spec.add_development_dependency 'webmock', '~> 3'
|
26
26
|
spec.add_development_dependency 'guard', '~> 2.14'
|
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', '< 8'
|
31
|
+
spec.add_runtime_dependency 'activemodel', '>= 4.1', '< 8'
|
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
|
@@ -21,8 +21,8 @@ RSpec.describe '#save' do
|
|
21
21
|
id: 12,
|
22
22
|
title: 'Lorem Ipsum',
|
23
23
|
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
24
|
-
featured: false,
|
25
24
|
created_at: Time.new(2015, 10, 4, 9, 30, 0),
|
25
|
+
featured: false
|
26
26
|
}
|
27
27
|
}
|
28
28
|
end
|
@@ -39,8 +39,8 @@ RSpec.describe '#save' do
|
|
39
39
|
data: {
|
40
40
|
title: 'Lorem Ipsum',
|
41
41
|
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
42
|
-
featured: false,
|
43
42
|
created_at: Time.new(2015, 10, 4, 9, 30, 0),
|
43
|
+
featured: false
|
44
44
|
}
|
45
45
|
}
|
46
46
|
end
|
@@ -103,8 +103,8 @@ RSpec.describe '#save' do
|
|
103
103
|
data: {
|
104
104
|
title: 'Lore',
|
105
105
|
body: '',
|
106
|
-
featured: true,
|
107
106
|
created_at: Time.new(2015, 10, 4, 9, 30, 0),
|
107
|
+
featured: true
|
108
108
|
}
|
109
109
|
}
|
110
110
|
end
|
@@ -181,8 +181,8 @@ RSpec.describe '#save' do
|
|
181
181
|
data: {
|
182
182
|
title: 'Lorem Ipsum',
|
183
183
|
body: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
184
|
-
featured: false,
|
185
184
|
created_at: nil,
|
185
|
+
featured: false
|
186
186
|
}
|
187
187
|
}
|
188
188
|
end
|
@@ -246,8 +246,8 @@ RSpec.describe '#save' do
|
|
246
246
|
data: {
|
247
247
|
title: 'Lore',
|
248
248
|
body: '',
|
249
|
-
|
250
|
-
|
249
|
+
created_at: nil,
|
250
|
+
featured: true
|
251
251
|
}
|
252
252
|
}
|
253
253
|
end
|
@@ -682,6 +682,17 @@ RSpec.describe RemoteResource::Request do
|
|
682
682
|
end
|
683
683
|
end
|
684
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
|
+
|
685
696
|
context 'when the response code is nothing and no other error is raised' do
|
686
697
|
it 'raises a RemoteResource::HTTPError' do
|
687
698
|
allow(response).to receive(:response_code) { nil }
|
metadata
CHANGED
@@ -1,30 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddy_remote_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Digidentity
|
8
|
+
- Johnny Dongelmans
|
8
9
|
- Jan van der Pas
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
+
date: 2022-07-04 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: bundler
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
17
18
|
requirements:
|
18
|
-
- - "
|
19
|
+
- - ">="
|
19
20
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
21
|
+
version: '0'
|
21
22
|
type: :development
|
22
23
|
prerelease: false
|
23
24
|
version_requirements: !ruby/object:Gem::Requirement
|
24
25
|
requirements:
|
25
|
-
- - "
|
26
|
+
- - ">="
|
26
27
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
28
|
+
version: '0'
|
28
29
|
- !ruby/object:Gem::Dependency
|
29
30
|
name: rake
|
30
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,6 +68,20 @@ dependencies:
|
|
67
68
|
- - "~>"
|
68
69
|
- !ruby/object:Gem::Version
|
69
70
|
version: '0.10'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: webmock
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '3'
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - "~>"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '3'
|
70
85
|
- !ruby/object:Gem::Dependency
|
71
86
|
name: guard
|
72
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,7 +133,7 @@ dependencies:
|
|
118
133
|
version: '4.1'
|
119
134
|
- - "<"
|
120
135
|
- !ruby/object:Gem::Version
|
121
|
-
version: '
|
136
|
+
version: '8'
|
122
137
|
type: :runtime
|
123
138
|
prerelease: false
|
124
139
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -128,7 +143,7 @@ dependencies:
|
|
128
143
|
version: '4.1'
|
129
144
|
- - "<"
|
130
145
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
146
|
+
version: '8'
|
132
147
|
- !ruby/object:Gem::Dependency
|
133
148
|
name: activemodel
|
134
149
|
requirement: !ruby/object:Gem::Requirement
|
@@ -138,7 +153,7 @@ dependencies:
|
|
138
153
|
version: '4.1'
|
139
154
|
- - "<"
|
140
155
|
- !ruby/object:Gem::Version
|
141
|
-
version: '
|
156
|
+
version: '8'
|
142
157
|
type: :runtime
|
143
158
|
prerelease: false
|
144
159
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -148,7 +163,7 @@ dependencies:
|
|
148
163
|
version: '4.1'
|
149
164
|
- - "<"
|
150
165
|
- !ruby/object:Gem::Version
|
151
|
-
version: '
|
166
|
+
version: '8'
|
152
167
|
- !ruby/object:Gem::Dependency
|
153
168
|
name: virtus
|
154
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -187,42 +202,30 @@ dependencies:
|
|
187
202
|
name: ethon
|
188
203
|
requirement: !ruby/object:Gem::Requirement
|
189
204
|
requirements:
|
190
|
-
- - "~>"
|
191
|
-
- !ruby/object:Gem::Version
|
192
|
-
version: '0.7'
|
193
205
|
- - ">="
|
194
206
|
- !ruby/object:Gem::Version
|
195
|
-
version: 0
|
207
|
+
version: '0'
|
196
208
|
type: :runtime
|
197
209
|
prerelease: false
|
198
210
|
version_requirements: !ruby/object:Gem::Requirement
|
199
211
|
requirements:
|
200
|
-
- - "~>"
|
201
|
-
- !ruby/object:Gem::Version
|
202
|
-
version: '0.7'
|
203
212
|
- - ">="
|
204
213
|
- !ruby/object:Gem::Version
|
205
|
-
version: 0
|
214
|
+
version: '0'
|
206
215
|
- !ruby/object:Gem::Dependency
|
207
216
|
name: typhoeus
|
208
217
|
requirement: !ruby/object:Gem::Requirement
|
209
218
|
requirements:
|
210
|
-
- - "~>"
|
211
|
-
- !ruby/object:Gem::Version
|
212
|
-
version: '0.7'
|
213
219
|
- - ">="
|
214
220
|
- !ruby/object:Gem::Version
|
215
|
-
version: 0.7
|
221
|
+
version: '0.7'
|
216
222
|
type: :runtime
|
217
223
|
prerelease: false
|
218
224
|
version_requirements: !ruby/object:Gem::Requirement
|
219
225
|
requirements:
|
220
|
-
- - "~>"
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: '0.7'
|
223
226
|
- - ">="
|
224
227
|
- !ruby/object:Gem::Version
|
225
|
-
version: 0.7
|
228
|
+
version: '0.7'
|
226
229
|
- !ruby/object:Gem::Dependency
|
227
230
|
name: request_store
|
228
231
|
requirement: !ruby/object:Gem::Requirement
|
@@ -320,8 +323,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
320
323
|
- !ruby/object:Gem::Version
|
321
324
|
version: '0'
|
322
325
|
requirements: []
|
323
|
-
|
324
|
-
rubygems_version: 2.7.6
|
326
|
+
rubygems_version: 3.3.15
|
325
327
|
signing_key:
|
326
328
|
specification_version: 4
|
327
329
|
summary: RemoteResource, a gem to use resources with REST services.
|