runcible 2.8.0 → 2.8.1
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/lib/runcible/base.rb +20 -22
- data/lib/runcible/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1752f5317fd0820a9fc61bb2979bc3530ef4c767
|
4
|
+
data.tar.gz: ff37b83265fa1a199b684d3115f212ab6823f2cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 380df650cafb5fecb9b64696934c5cc83a1e092743857b917fd3dd1f17b102187ee42578c008522d473a2f0994ff91ea65991a29321688275333618ebb111bc9
|
7
|
+
data.tar.gz: acad017aa4ccff2a4c7744fcbc4f1b0d9c7eaaa4c5bd3333f62a51200bc02858a3b12072d34de379682f0ab72900d86a03a0535addb555acb2ae3b19f838b951
|
data/lib/runcible/base.rb
CHANGED
@@ -5,9 +5,12 @@ require 'thread'
|
|
5
5
|
|
6
6
|
module Runcible
|
7
7
|
class Base
|
8
|
+
attr_accessor :logs
|
9
|
+
|
8
10
|
def initialize(config = {})
|
9
11
|
@mutex = Mutex.new
|
10
12
|
@config = config
|
13
|
+
@logs = []
|
11
14
|
end
|
12
15
|
|
13
16
|
def lazy_config=(a_block)
|
@@ -28,11 +31,11 @@ module Runcible
|
|
28
31
|
|
29
32
|
# rubocop:disable Metrics/AbcSize:
|
30
33
|
def call(method, path, options = {})
|
34
|
+
self.logs = []
|
31
35
|
clone_config = self.config.clone
|
32
36
|
#on occation path will already have prefix (sync cancel)
|
33
37
|
path = clone_config[:api_path] + path unless path.start_with?(clone_config[:api_path])
|
34
38
|
|
35
|
-
RestClient.log = []
|
36
39
|
headers = clone_config[:headers].clone
|
37
40
|
|
38
41
|
get_params = options[:params] if options[:params]
|
@@ -65,21 +68,29 @@ module Runcible
|
|
65
68
|
args << generate_payload(options) if [:post, :put].include?(method)
|
66
69
|
args << headers
|
67
70
|
|
71
|
+
self.logs << ([method.upcase, URI.join(client.url, path)] + args[1..-1]).join(': ')
|
68
72
|
response = get_response(client, path, *args)
|
69
|
-
process_response(response)
|
70
|
-
|
73
|
+
processed = process_response(response)
|
74
|
+
self.logs << "Response: #{response.code}: #{response.body}"
|
75
|
+
log_info
|
76
|
+
processed
|
71
77
|
rescue RestClient::ResourceNotFound => e
|
78
|
+
self.logs << exception_to_log(e)
|
72
79
|
log_info
|
73
80
|
raise e
|
74
81
|
rescue => e
|
82
|
+
self.logs << exception_to_log(e)
|
75
83
|
log_exception
|
76
84
|
raise e
|
77
85
|
end
|
78
86
|
|
87
|
+
def exception_to_log(exception, body = exception.try(:response).try(:body))
|
88
|
+
"#{exception.message}: #{body}"
|
89
|
+
end
|
90
|
+
|
79
91
|
def get_response(client, path, *args)
|
80
92
|
client[path].send(*args) do |response, _request, _result, &_block|
|
81
93
|
resp = response.return!
|
82
|
-
log_debug
|
83
94
|
return resp
|
84
95
|
end
|
85
96
|
end
|
@@ -135,8 +146,8 @@ module Runcible
|
|
135
146
|
end
|
136
147
|
end
|
137
148
|
response = Runcible::Response.new(body, response)
|
138
|
-
rescue JSON::ParserError
|
139
|
-
|
149
|
+
rescue JSON::ParserError => e
|
150
|
+
self.logs << "Unable to parse JSON: #{e.message}"
|
140
151
|
end
|
141
152
|
|
142
153
|
return response
|
@@ -188,28 +199,15 @@ module Runcible
|
|
188
199
|
end
|
189
200
|
|
190
201
|
def log_debug
|
191
|
-
if self.config[:logging][:debug]
|
192
|
-
log_message = generate_log_message
|
193
|
-
self.config[:logging][:logger].debug(log_message)
|
194
|
-
end
|
202
|
+
self.config[:logging][:logger].debug(self.logs.join("\n")) if self.config[:logging][:debug]
|
195
203
|
end
|
196
204
|
|
197
205
|
def log_exception
|
198
|
-
if self.config[:logging][:exception]
|
199
|
-
log_message = generate_log_message
|
200
|
-
self.config[:logging][:logger].error(log_message)
|
201
|
-
end
|
206
|
+
self.config[:logging][:logger].error(self.logs.join("\n")) if self.config[:logging][:exception]
|
202
207
|
end
|
203
208
|
|
204
209
|
def log_info
|
205
|
-
if self.config[:logging][:info]
|
206
|
-
log_message = generate_log_message
|
207
|
-
self.config[:logging][:logger].info(log_message)
|
208
|
-
end
|
209
|
-
end
|
210
|
-
|
211
|
-
def generate_log_message
|
212
|
-
RestClient.log.join('\n')
|
210
|
+
self.config[:logging][:logger].info(self.logs.join("\n")) if self.config[:logging][:info]
|
213
211
|
end
|
214
212
|
|
215
213
|
def logger
|
data/lib/runcible/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: runcible
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.8.
|
4
|
+
version: 2.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric D Helms, Justin Sherrill
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -206,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
206
206
|
version: '0'
|
207
207
|
requirements: []
|
208
208
|
rubyforge_project:
|
209
|
-
rubygems_version: 2.6.14
|
209
|
+
rubygems_version: 2.6.14
|
210
210
|
signing_key:
|
211
211
|
specification_version: 4
|
212
212
|
summary: ''
|