angus-remote 0.0.15 → 0.0.16
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 +8 -8
- data/lib/angus/remote/response/hash.rb +3 -1
- data/lib/angus/remote/version.rb +1 -1
- data/spec/angus/remote/response/hash_spec.rb +56 -0
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzliNzg0N2I4NTU1NzhlOGQyODJhMTQ0NjljNjNhYzc0NmU1NzExMw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YWEyMDlmMmZmZDMwNDFkMjA0ZjMwM2ZiOTE3OGU4MDJmMjk1YzljNw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NTM3ZmI0OTRiODViMjNiZmMzZTIzNjJlMTVlNDZhNjQzNjU3NjBhZjI4NTUy
|
10
|
+
ZGNjMTFkZGJkNDVkZTdlNzIyMjVkYTkwY2ZhY2YyOTBhMDYwNWFkNGE1YTU5
|
11
|
+
MmQ1M2NmYWM0NDBhNjA0NjNiMjhhNDJhM2RkNWU1ZGVjZTU2NTc=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MThhM2RlNjBkYjcyNTc3Njk5ZTkxYjllNDNlZTAxNTRlMTUwMjBmZjNiMmRh
|
14
|
+
NTBhMDM3YWZkNjA0ZTFlOGM3OGNmZWEzMDVlYTc2ZDUwZDExNWUzN2JjYjRk
|
15
|
+
NTQ1NGQxYmUwMGYzZmVmYzdjOTEzZGEyZTJmYTgyZmY5MWU1MDc=
|
@@ -17,13 +17,15 @@ module Angus
|
|
17
17
|
|
18
18
|
elements.each do |name, value|
|
19
19
|
if value.is_a?(Angus::Remote::Response::Hash)
|
20
|
-
value.to_hash
|
20
|
+
hash[name] = value.to_hash
|
21
21
|
elsif value.is_a?(Array)
|
22
22
|
hash[name] = build_hash_from_array(value)
|
23
23
|
else
|
24
24
|
hash[name] = value
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
hash
|
27
29
|
end
|
28
30
|
|
29
31
|
private
|
data/lib/angus/remote/version.rb
CHANGED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'angus/remote/response/hash'
|
4
|
+
|
5
|
+
describe Angus::Remote::Response::Hash do
|
6
|
+
|
7
|
+
let(:response_class) do
|
8
|
+
Class.new do
|
9
|
+
include Angus::Remote::Response::Hash
|
10
|
+
|
11
|
+
def initialize(elements)
|
12
|
+
@elements = elements
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
subject(:response) { response_class.new(elements) }
|
19
|
+
|
20
|
+
describe '#to_hash' do
|
21
|
+
|
22
|
+
context 'when a elements has a single level' do
|
23
|
+
let(:elements) { { :id => rand(1_000), :customer_fields => %w[a b c] } }
|
24
|
+
|
25
|
+
it 'returns the flat elements' do
|
26
|
+
expect(response.to_hash).to eq(elements)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'when a nested responses elements as a hash' do
|
31
|
+
let(:brand_elements) { { :id => rand(1_000), :name => 'Acme' } }
|
32
|
+
let(:elements) { { :id => rand(1_000), :brand => response_class.new(brand_elements) } }
|
33
|
+
|
34
|
+
it 'returns the flat elements' do
|
35
|
+
expect(response.to_hash).to include(:brand => brand_elements)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'when a nested responses elements as an array' do
|
40
|
+
let(:division_elements) { { :id => rand(1_000), :name => 'Acme Division' } }
|
41
|
+
let(:commission_elements) { { :id => rand(1_000), :name => 'Acme Commission',
|
42
|
+
:divisions => [response_class.new(division_elements)] } }
|
43
|
+
|
44
|
+
let(:elements) { { :id => rand(1_000),
|
45
|
+
:commissions => [[commission_elements[:id],
|
46
|
+
response_class.new(commission_elements)]] } }
|
47
|
+
|
48
|
+
it 'returns the flat elements' do
|
49
|
+
commission = commission_elements.merge(:divisions => [division_elements])
|
50
|
+
expect(response.to_hash).to include(:commissions => [[commission[:id], commission]])
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: angus-remote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrian Gomez
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-09-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: angus-sdoc
|
@@ -240,6 +240,7 @@ files:
|
|
240
240
|
- spec/angus/remote/http/query_params_spec.rb
|
241
241
|
- spec/angus/remote/proxy_client_utils_spec.rb
|
242
242
|
- spec/angus/remote/response/builder_spec.rb
|
243
|
+
- spec/angus/remote/response/hash_spec.rb
|
243
244
|
- spec/angus/remote/service_directory_spec.rb
|
244
245
|
- spec/angus/remote/utils_spec.rb
|
245
246
|
homepage: http://mooveit.github.io/angus-remote
|
@@ -267,12 +268,13 @@ signing_key:
|
|
267
268
|
specification_version: 4
|
268
269
|
summary: Client for building service objects.
|
269
270
|
test_files:
|
270
|
-
- spec/angus/remote/service_directory_spec.rb
|
271
271
|
- spec/angus/remote/proxy_client_utils_spec.rb
|
272
|
-
- spec/angus/remote/
|
272
|
+
- spec/angus/remote/client_spec.rb
|
273
|
+
- spec/angus/remote/builder_spec.rb
|
274
|
+
- spec/angus/remote/utils_spec.rb
|
273
275
|
- spec/angus/remote/http/multipart_spec.rb
|
276
|
+
- spec/angus/remote/http/query_params_spec.rb
|
274
277
|
- spec/angus/remote/http/multipart_methods/multipart_base_spec.rb
|
275
|
-
- spec/angus/remote/
|
278
|
+
- spec/angus/remote/service_directory_spec.rb
|
276
279
|
- spec/angus/remote/response/builder_spec.rb
|
277
|
-
- spec/angus/remote/
|
278
|
-
- spec/angus/remote/builder_spec.rb
|
280
|
+
- spec/angus/remote/response/hash_spec.rb
|