angus-remote 0.0.8 → 0.0.9
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 +15 -0
- data/lib/angus/remote/builder.rb +2 -11
- data/lib/angus/remote/client.rb +3 -1
- data/lib/angus/remote/service_directory.rb +32 -7
- data/lib/angus/remote/settings.rb +2 -0
- data/lib/angus/remote/version.rb +1 -1
- data/spec/angus/remote/service_directory_spec.rb +27 -3
- metadata +29 -55
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MjE0YTVkY2ZmYzYxNjZjMWU5MTFmMTRhYTk2ODRiNzRhNDlkOGFiNg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MzM4NTVkMzljY2QwN2Q3MTJiOWMwODI1MWNmYjJhYWI0ODVlYTMzNA==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NWVhYWFjMWY2NzA2NGI1Nzc5ZTEzNDBiNzVmOTYwYzhlMTdkOGJjOGFmMGZl
|
10
|
+
ZTM2MTg5MTdjOGIyZjc2NmU5YTUxMTg4ODAzZjIwYWJiMTYwZjM4OTJjNjhk
|
11
|
+
MzhkMzQ1ZGFjZWUzNzU1NTI1NDQzMDY2YzZiYWQyZjVmMTRjY2M=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZDYwZWJiNDY2YzI2MjYzYjQ3NWI4OGNlZTBkOTMyZWZkODY0NjMwYzI4Nzc3
|
14
|
+
YzZhZjZlZmFiYjYzMTRmMmNhNTgyMDQwNTI1NzRmMTMxYzdhMzNiNTZmNGU4
|
15
|
+
Yzg4NjRjOWI3ZjEzOWZiYWE5NjMyNGYyOTU5NDQ0OTliYmJiOGM=
|
data/lib/angus/remote/builder.rb
CHANGED
@@ -2,14 +2,13 @@ require 'uri'
|
|
2
2
|
|
3
3
|
require_relative 'client'
|
4
4
|
require_relative 'response/builder'
|
5
|
+
require_relative 'settings'
|
5
6
|
|
6
7
|
module Angus
|
7
8
|
module Remote
|
8
9
|
|
9
10
|
module Builder
|
10
11
|
|
11
|
-
DEFAULT_TIMEOUT = 60
|
12
|
-
|
13
12
|
# Builds a client for a specific service.
|
14
13
|
#
|
15
14
|
# @param [String] code_name The service's name known to the service directory
|
@@ -42,7 +41,7 @@ module Angus
|
|
42
41
|
code_name, service_definition)
|
43
42
|
end
|
44
43
|
|
45
|
-
remote_service_class.new(api_url,
|
44
|
+
remote_service_class.new(api_url, Settings.default_timeout, options)
|
46
45
|
end
|
47
46
|
|
48
47
|
def self.define_operation(client_class, namespace, operation, service_code_name,
|
@@ -192,14 +191,6 @@ module Angus
|
|
192
191
|
encoded
|
193
192
|
end
|
194
193
|
|
195
|
-
def self.default_timeout
|
196
|
-
@default_timeout || DEFAULT_TIMEOUT
|
197
|
-
end
|
198
|
-
|
199
|
-
def self.default_timeout=(default_timeout)
|
200
|
-
@default_timeout = default_timeout
|
201
|
-
end
|
202
|
-
|
203
194
|
end
|
204
195
|
|
205
196
|
end
|
data/lib/angus/remote/client.rb
CHANGED
@@ -22,8 +22,10 @@ module Angus
|
|
22
22
|
:force_retry => false,
|
23
23
|
:url => api_url,
|
24
24
|
|
25
|
+
:keep_alive => timeout,
|
25
26
|
:read_timeout => timeout,
|
26
|
-
:open_timeout => timeout
|
27
|
+
:open_timeout => timeout,
|
28
|
+
:idle_timeout => timeout
|
27
29
|
)
|
28
30
|
|
29
31
|
@api_base_path = @connection.default_path
|
@@ -13,12 +13,17 @@ module Angus
|
|
13
13
|
|
14
14
|
module ServiceDirectory
|
15
15
|
|
16
|
-
# Path to the configuration file that has the information about the
|
17
|
-
# doc_url and api_url
|
18
|
-
SERVICES_CONFIGURATION_FILE = 'config/services.yml'
|
19
|
-
|
20
16
|
# Builds and returns a Client object for the service and version received
|
21
|
-
def self.lookup(
|
17
|
+
def self.lookup(*args)
|
18
|
+
if args.length == 1
|
19
|
+
definition = args.first
|
20
|
+
code_name = definition.delete(:code_name)
|
21
|
+
version = definition.delete(:version)
|
22
|
+
set_service_configuration(code_name, version, definition)
|
23
|
+
else
|
24
|
+
code_name, version = args
|
25
|
+
end
|
26
|
+
|
22
27
|
version ||= service_version(code_name)
|
23
28
|
|
24
29
|
@clients_cache ||= {}
|
@@ -252,14 +257,34 @@ module Angus
|
|
252
257
|
#
|
253
258
|
# @raise [ServiceConfigurationNotFound] When no configuration for the given service
|
254
259
|
def self.service_configuration(code_name)
|
255
|
-
@services_configuration ||=
|
260
|
+
@services_configuration ||= load_services_configuration_file
|
256
261
|
|
257
262
|
@services_configuration[code_name] or
|
258
263
|
raise ServiceConfigurationNotFound.new(code_name)
|
259
264
|
end
|
260
265
|
private_class_method :service_configuration
|
261
266
|
|
262
|
-
|
267
|
+
def self.set_service_configuration(code_name, version, configuration)
|
268
|
+
@services_configuration ||= load_services_configuration_file
|
269
|
+
@services_configuration[code_name] ||= {}
|
263
270
|
|
271
|
+
@services_configuration[code_name]["v#{version}"] = configuration.inject({}) do |config, entry|
|
272
|
+
k, v = entry
|
273
|
+
config.merge!({ k.to_s => v })
|
274
|
+
end
|
275
|
+
end
|
276
|
+
private_class_method :set_service_configuration
|
277
|
+
|
278
|
+
def self.load_services_configuration_file
|
279
|
+
return {} unless File.exists?(Settings.configuration_file)
|
280
|
+
configuration = YAML.load_file(Settings.configuration_file)
|
281
|
+
|
282
|
+
configuration = {} unless configuration.is_a?(Hash)
|
283
|
+
|
284
|
+
configuration
|
285
|
+
end
|
286
|
+
private_class_method :load_services_configuration_file
|
287
|
+
|
288
|
+
end
|
264
289
|
end
|
265
290
|
end
|
@@ -19,9 +19,11 @@ module Angus
|
|
19
19
|
end
|
20
20
|
|
21
21
|
DEFAULT_TIMEOUT = 60
|
22
|
+
DEFAULT_CONFIGURATION_FILE = 'config/services.yml'
|
22
23
|
|
23
24
|
add_option(:default_timeout, DEFAULT_TIMEOUT)
|
24
25
|
add_option(:redis, {})
|
26
|
+
add_option(:configuration_file, DEFAULT_CONFIGURATION_FILE)
|
25
27
|
|
26
28
|
end
|
27
29
|
|
data/lib/angus/remote/version.rb
CHANGED
@@ -8,8 +8,8 @@ describe Angus::Remote::ServiceDirectory do
|
|
8
8
|
|
9
9
|
let(:code_name) { 'vpos' }
|
10
10
|
let(:version) { '0.1' }
|
11
|
-
let(:doc_url) { 'some_url/doc' }
|
12
|
-
let(:api_url) { 'some_url/api' }
|
11
|
+
let(:doc_url) { 'http://example.com/some_url/doc' }
|
12
|
+
let(:api_url) { 'http://example.com/some_url/api' }
|
13
13
|
|
14
14
|
before do
|
15
15
|
Angus::Remote::ServiceDirectory.stub(:service_configuration => { "v#{version}" => {
|
@@ -17,9 +17,33 @@ describe Angus::Remote::ServiceDirectory do
|
|
17
17
|
})
|
18
18
|
end
|
19
19
|
|
20
|
+
describe '.lookup' do
|
21
|
+
|
22
|
+
context 'when a definition hash is given' do
|
23
|
+
before do
|
24
|
+
service_directory.stub(:fetch_remote_service_definition => {})
|
25
|
+
service_definition = Angus::SDoc::Definitions::Service.new
|
26
|
+
Angus::SDoc::DefinitionsReader.stub(:build_service_definition => service_definition)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'returns the service definition' do
|
30
|
+
service_directory.lookup(
|
31
|
+
{ :code_name => code_name, :version => version, :doc_url => version, :api_url => version}
|
32
|
+
).should be_kind_of(Angus::Remote::Client)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'when the code name and version are given' do
|
37
|
+
it 'returns the service definition' do
|
38
|
+
service_directory.lookup(code_name, version).should be_kind_of(Angus::Remote::Client)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
20
44
|
describe '.get_service_definition' do
|
21
45
|
|
22
|
-
let(:service_definition){
|
46
|
+
let(:service_definition) { Angus::SDoc::Definitions::Service.new }
|
23
47
|
|
24
48
|
context 'when a file url' do
|
25
49
|
let(:doc_url) { 'file://path/to/doc' }
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: angus-remote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.9
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Adrian Gomez
|
@@ -10,34 +9,31 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2014-06-02 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: angus-sdoc
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ~>
|
21
19
|
- !ruby/object:Gem::Version
|
22
20
|
version: '0.0'
|
23
21
|
- - ! '>='
|
24
22
|
- !ruby/object:Gem::Version
|
25
|
-
version: 0.0.
|
23
|
+
version: 0.0.6
|
26
24
|
type: :runtime
|
27
25
|
prerelease: false
|
28
26
|
version_requirements: !ruby/object:Gem::Requirement
|
29
|
-
none: false
|
30
27
|
requirements:
|
31
28
|
- - ~>
|
32
29
|
- !ruby/object:Gem::Version
|
33
30
|
version: '0.0'
|
34
31
|
- - ! '>='
|
35
32
|
- !ruby/object:Gem::Version
|
36
|
-
version: 0.0.
|
33
|
+
version: 0.0.6
|
37
34
|
- !ruby/object:Gem::Dependency
|
38
35
|
name: persistent_http
|
39
36
|
requirement: !ruby/object:Gem::Requirement
|
40
|
-
none: false
|
41
37
|
requirements:
|
42
38
|
- - ~>
|
43
39
|
- !ruby/object:Gem::Version
|
@@ -45,7 +41,6 @@ dependencies:
|
|
45
41
|
type: :runtime
|
46
42
|
prerelease: false
|
47
43
|
version_requirements: !ruby/object:Gem::Requirement
|
48
|
-
none: false
|
49
44
|
requirements:
|
50
45
|
- - ~>
|
51
46
|
- !ruby/object:Gem::Version
|
@@ -53,7 +48,6 @@ dependencies:
|
|
53
48
|
- !ruby/object:Gem::Dependency
|
54
49
|
name: multipart-post
|
55
50
|
requirement: !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
51
|
requirements:
|
58
52
|
- - ~>
|
59
53
|
- !ruby/object:Gem::Version
|
@@ -61,7 +55,6 @@ dependencies:
|
|
61
55
|
type: :runtime
|
62
56
|
prerelease: false
|
63
57
|
version_requirements: !ruby/object:Gem::Requirement
|
64
|
-
none: false
|
65
58
|
requirements:
|
66
59
|
- - ~>
|
67
60
|
- !ruby/object:Gem::Version
|
@@ -69,7 +62,6 @@ dependencies:
|
|
69
62
|
- !ruby/object:Gem::Dependency
|
70
63
|
name: redis
|
71
64
|
requirement: !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
65
|
requirements:
|
74
66
|
- - ! '>='
|
75
67
|
- !ruby/object:Gem::Version
|
@@ -77,7 +69,6 @@ dependencies:
|
|
77
69
|
type: :runtime
|
78
70
|
prerelease: false
|
79
71
|
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
none: false
|
81
72
|
requirements:
|
82
73
|
- - ! '>='
|
83
74
|
- !ruby/object:Gem::Version
|
@@ -85,7 +76,6 @@ dependencies:
|
|
85
76
|
- !ruby/object:Gem::Dependency
|
86
77
|
name: rake
|
87
78
|
requirement: !ruby/object:Gem::Requirement
|
88
|
-
none: false
|
89
79
|
requirements:
|
90
80
|
- - ! '>='
|
91
81
|
- !ruby/object:Gem::Version
|
@@ -93,7 +83,6 @@ dependencies:
|
|
93
83
|
type: :development
|
94
84
|
prerelease: false
|
95
85
|
version_requirements: !ruby/object:Gem::Requirement
|
96
|
-
none: false
|
97
86
|
requirements:
|
98
87
|
- - ! '>='
|
99
88
|
- !ruby/object:Gem::Version
|
@@ -101,7 +90,6 @@ dependencies:
|
|
101
90
|
- !ruby/object:Gem::Dependency
|
102
91
|
name: fakefs
|
103
92
|
requirement: !ruby/object:Gem::Requirement
|
104
|
-
none: false
|
105
93
|
requirements:
|
106
94
|
- - ~>
|
107
95
|
- !ruby/object:Gem::Version
|
@@ -109,7 +97,6 @@ dependencies:
|
|
109
97
|
type: :development
|
110
98
|
prerelease: false
|
111
99
|
version_requirements: !ruby/object:Gem::Requirement
|
112
|
-
none: false
|
113
100
|
requirements:
|
114
101
|
- - ~>
|
115
102
|
- !ruby/object:Gem::Version
|
@@ -117,7 +104,6 @@ dependencies:
|
|
117
104
|
- !ruby/object:Gem::Dependency
|
118
105
|
name: rspec
|
119
106
|
requirement: !ruby/object:Gem::Requirement
|
120
|
-
none: false
|
121
107
|
requirements:
|
122
108
|
- - ~>
|
123
109
|
- !ruby/object:Gem::Version
|
@@ -125,7 +111,6 @@ dependencies:
|
|
125
111
|
type: :development
|
126
112
|
prerelease: false
|
127
113
|
version_requirements: !ruby/object:Gem::Requirement
|
128
|
-
none: false
|
129
114
|
requirements:
|
130
115
|
- - ~>
|
131
116
|
- !ruby/object:Gem::Version
|
@@ -133,7 +118,6 @@ dependencies:
|
|
133
118
|
- !ruby/object:Gem::Dependency
|
134
119
|
name: mock_redis
|
135
120
|
requirement: !ruby/object:Gem::Requirement
|
136
|
-
none: false
|
137
121
|
requirements:
|
138
122
|
- - ! '>='
|
139
123
|
- !ruby/object:Gem::Version
|
@@ -141,7 +125,6 @@ dependencies:
|
|
141
125
|
type: :development
|
142
126
|
prerelease: false
|
143
127
|
version_requirements: !ruby/object:Gem::Requirement
|
144
|
-
none: false
|
145
128
|
requirements:
|
146
129
|
- - ! '>='
|
147
130
|
- !ruby/object:Gem::Version
|
@@ -149,7 +132,6 @@ dependencies:
|
|
149
132
|
- !ruby/object:Gem::Dependency
|
150
133
|
name: simplecov
|
151
134
|
requirement: !ruby/object:Gem::Requirement
|
152
|
-
none: false
|
153
135
|
requirements:
|
154
136
|
- - ~>
|
155
137
|
- !ruby/object:Gem::Version
|
@@ -157,7 +139,6 @@ dependencies:
|
|
157
139
|
type: :development
|
158
140
|
prerelease: false
|
159
141
|
version_requirements: !ruby/object:Gem::Requirement
|
160
|
-
none: false
|
161
142
|
requirements:
|
162
143
|
- - ~>
|
163
144
|
- !ruby/object:Gem::Version
|
@@ -165,7 +146,6 @@ dependencies:
|
|
165
146
|
- !ruby/object:Gem::Dependency
|
166
147
|
name: simplecov-rcov
|
167
148
|
requirement: !ruby/object:Gem::Requirement
|
168
|
-
none: false
|
169
149
|
requirements:
|
170
150
|
- - ~>
|
171
151
|
- !ruby/object:Gem::Version
|
@@ -173,7 +153,6 @@ dependencies:
|
|
173
153
|
type: :development
|
174
154
|
prerelease: false
|
175
155
|
version_requirements: !ruby/object:Gem::Requirement
|
176
|
-
none: false
|
177
156
|
requirements:
|
178
157
|
- - ~>
|
179
158
|
- !ruby/object:Gem::Version
|
@@ -181,7 +160,6 @@ dependencies:
|
|
181
160
|
- !ruby/object:Gem::Dependency
|
182
161
|
name: simplecov-rcov-text
|
183
162
|
requirement: !ruby/object:Gem::Requirement
|
184
|
-
none: false
|
185
163
|
requirements:
|
186
164
|
- - ~>
|
187
165
|
- !ruby/object:Gem::Version
|
@@ -189,7 +167,6 @@ dependencies:
|
|
189
167
|
type: :development
|
190
168
|
prerelease: false
|
191
169
|
version_requirements: !ruby/object:Gem::Requirement
|
192
|
-
none: false
|
193
170
|
requirements:
|
194
171
|
- - ~>
|
195
172
|
- !ruby/object:Gem::Version
|
@@ -197,7 +174,6 @@ dependencies:
|
|
197
174
|
- !ruby/object:Gem::Dependency
|
198
175
|
name: ci_reporter
|
199
176
|
requirement: !ruby/object:Gem::Requirement
|
200
|
-
none: false
|
201
177
|
requirements:
|
202
178
|
- - ~>
|
203
179
|
- !ruby/object:Gem::Version
|
@@ -205,7 +181,6 @@ dependencies:
|
|
205
181
|
type: :development
|
206
182
|
prerelease: false
|
207
183
|
version_requirements: !ruby/object:Gem::Requirement
|
208
|
-
none: false
|
209
184
|
requirements:
|
210
185
|
- - ~>
|
211
186
|
- !ruby/object:Gem::Version
|
@@ -221,62 +196,61 @@ extensions: []
|
|
221
196
|
extra_rdoc_files: []
|
222
197
|
files:
|
223
198
|
- lib/angus-remote.rb
|
224
|
-
- lib/angus/
|
225
|
-
- lib/angus/
|
226
|
-
- lib/angus/remote/
|
227
|
-
- lib/angus/remote/
|
228
|
-
- lib/angus/remote/
|
199
|
+
- lib/angus/authentication/client.rb
|
200
|
+
- lib/angus/authentication/redis_client.rb
|
201
|
+
- lib/angus/remote/builder.rb
|
202
|
+
- lib/angus/remote/client.rb
|
203
|
+
- lib/angus/remote/exceptions.rb
|
204
|
+
- lib/angus/remote/http/multipart.rb
|
229
205
|
- lib/angus/remote/http/multipart_methods/multipart_base.rb
|
230
206
|
- lib/angus/remote/http/multipart_methods/multipart_post.rb
|
231
|
-
- lib/angus/remote/http/
|
207
|
+
- lib/angus/remote/http/multipart_methods/multipart_put.rb
|
208
|
+
- lib/angus/remote/http/query_params.rb
|
232
209
|
- lib/angus/remote/message.rb
|
233
|
-
- lib/angus/remote/
|
234
|
-
- lib/angus/remote/builder.rb
|
210
|
+
- lib/angus/remote/proxy_client.rb
|
235
211
|
- lib/angus/remote/proxy_client_utils.rb
|
212
|
+
- lib/angus/remote/remote_response.rb
|
213
|
+
- lib/angus/remote/representation.rb
|
236
214
|
- lib/angus/remote/response/builder.rb
|
237
|
-
- lib/angus/remote/response/serializer.rb
|
238
215
|
- lib/angus/remote/response/hash.rb
|
216
|
+
- lib/angus/remote/response/serializer.rb
|
239
217
|
- lib/angus/remote/service_directory.rb
|
240
|
-
- lib/angus/remote/
|
241
|
-
- lib/angus/remote/exceptions.rb
|
242
|
-
- lib/angus/remote/client.rb
|
243
|
-
- lib/angus/remote/proxy_client.rb
|
218
|
+
- lib/angus/remote/settings.rb
|
244
219
|
- lib/angus/remote/utils.rb
|
245
|
-
- lib/angus/
|
246
|
-
- lib/angus/
|
247
|
-
- spec/angus/remote/
|
248
|
-
- spec/angus/remote/
|
249
|
-
- spec/angus/remote/http/query_params_spec.rb
|
250
|
-
- spec/angus/remote/http/multipart_spec.rb
|
220
|
+
- lib/angus/remote/version.rb
|
221
|
+
- lib/angus/unmarshalling.rb
|
222
|
+
- spec/angus/remote/builder_spec.rb
|
223
|
+
- spec/angus/remote/client_spec.rb
|
251
224
|
- spec/angus/remote/http/multipart_methods/multipart_base_spec.rb
|
252
|
-
- spec/angus/remote/
|
225
|
+
- spec/angus/remote/http/multipart_spec.rb
|
226
|
+
- spec/angus/remote/http/query_params_spec.rb
|
227
|
+
- spec/angus/remote/proxy_client_utils_spec.rb
|
253
228
|
- spec/angus/remote/response/builder_spec.rb
|
254
|
-
- spec/angus/remote/
|
255
|
-
- spec/angus/remote/
|
229
|
+
- spec/angus/remote/service_directory_spec.rb
|
230
|
+
- spec/angus/remote/utils_spec.rb
|
256
231
|
homepage: http://mooveit.github.io/angus-remote
|
257
232
|
licenses:
|
258
233
|
- MIT
|
234
|
+
metadata: {}
|
259
235
|
post_install_message:
|
260
236
|
rdoc_options: []
|
261
237
|
require_paths:
|
262
238
|
- lib
|
263
239
|
required_ruby_version: !ruby/object:Gem::Requirement
|
264
|
-
none: false
|
265
240
|
requirements:
|
266
241
|
- - ! '>='
|
267
242
|
- !ruby/object:Gem::Version
|
268
243
|
version: '0'
|
269
244
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
270
|
-
none: false
|
271
245
|
requirements:
|
272
246
|
- - ! '>='
|
273
247
|
- !ruby/object:Gem::Version
|
274
248
|
version: '0'
|
275
249
|
requirements: []
|
276
250
|
rubyforge_project:
|
277
|
-
rubygems_version:
|
251
|
+
rubygems_version: 2.2.2
|
278
252
|
signing_key:
|
279
|
-
specification_version:
|
253
|
+
specification_version: 4
|
280
254
|
summary: Client for building service objects.
|
281
255
|
test_files:
|
282
256
|
- spec/angus/remote/service_directory_spec.rb
|