ddy_remote_resource 1.2.0 → 1.2.3
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 +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.
|