shutl_resource 1.1.0 → 1.1.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.
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
|
3
|
+
module Faraday
|
4
|
+
class Middleware
|
5
|
+
class DefaultLogger < Faraday::Middleware
|
6
|
+
extend Forwardable
|
7
|
+
|
8
|
+
def_delegators :@logger, :debug, :info, :warn, :error, :fatal
|
9
|
+
|
10
|
+
def initialize(app, options = {})
|
11
|
+
@app = app
|
12
|
+
@logger = options.fetch(:logger) {
|
13
|
+
require 'logger'
|
14
|
+
::Logger.new($stderr)
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
def call(env)
|
19
|
+
start_time = Time.now
|
20
|
+
info request_info(env)
|
21
|
+
debug request_debug(env)
|
22
|
+
|
23
|
+
@app.call(env).on_complete do
|
24
|
+
end_time = Time.now
|
25
|
+
response_time = end_time - start_time
|
26
|
+
info response_info(env, response_time)
|
27
|
+
debug response_debug(env)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def request_info(env)
|
34
|
+
"Started %s request to: %s" % [ env[:method].to_s.upcase, env[:url] ]
|
35
|
+
end
|
36
|
+
|
37
|
+
def response_info(env, response_time)
|
38
|
+
"Response from %s; Status: %d; Time: %.1fms" % [ env[:url], env[:status], (response_time * 1_000.0) ]
|
39
|
+
end
|
40
|
+
|
41
|
+
def request_debug(env)
|
42
|
+
debug_message("Request", env[:request_headers], env[:body])
|
43
|
+
end
|
44
|
+
|
45
|
+
def response_debug(env)
|
46
|
+
debug_message("Response", env[:response_headers], env[:body])
|
47
|
+
end
|
48
|
+
|
49
|
+
def debug_message(name, headers, body)
|
50
|
+
<<-MESSAGE.gsub(/^ +([^ ])/m, '\\1')
|
51
|
+
#{name} Headers:
|
52
|
+
----------------
|
53
|
+
#{format_headers(headers)}
|
54
|
+
|
55
|
+
#{name} Body:
|
56
|
+
-------------
|
57
|
+
#{body}
|
58
|
+
MESSAGE
|
59
|
+
end
|
60
|
+
|
61
|
+
def format_headers(headers)
|
62
|
+
length = headers.map {|k,v| k.to_s.size }.max
|
63
|
+
headers.map { |name, value| "#{name.to_s.ljust(length)} : #{value}" }.join("\n")
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -10,12 +10,10 @@ module Shutl::Resource
|
|
10
10
|
faraday.request :url_encoded # form-encode POST params
|
11
11
|
faraday.response :json
|
12
12
|
|
13
|
-
# faraday.ssl[:ca_file] = ENV["SSL_CERT_FILE"]
|
14
|
-
|
15
13
|
faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
|
16
14
|
|
17
15
|
if Shutl::Resource.logger
|
18
|
-
faraday.use :
|
16
|
+
faraday.use :default_logger, logger: Shutl::Resource.logger
|
19
17
|
end
|
20
18
|
end
|
21
19
|
end
|
@@ -75,7 +73,7 @@ module Shutl::Resource
|
|
75
73
|
perform_action(
|
76
74
|
instance,
|
77
75
|
:delete,
|
78
|
-
{},
|
76
|
+
{}.to_json,
|
79
77
|
headers_with_auth(options),
|
80
78
|
failure_message
|
81
79
|
).success?
|
data/lib/shutl_resource.rb
CHANGED
@@ -3,15 +3,18 @@ end
|
|
3
3
|
|
4
4
|
require 'faraday'
|
5
5
|
require 'faraday_middleware'
|
6
|
-
require "faraday/conductivity"
|
7
6
|
|
8
7
|
require 'shutl_auth'
|
9
8
|
require 'shutl/resource/version'
|
10
9
|
require 'shutl/resource/configuration'
|
10
|
+
require 'shutl/resource/default_logger'
|
11
11
|
require 'shutl/resource/rest'
|
12
12
|
require 'shutl/resource/rest_class_methods'
|
13
13
|
require 'shutl/resource/errors'
|
14
14
|
|
15
|
+
Faraday::Middleware.register_middleware :default_logger => :DefaultLogger
|
16
|
+
|
17
|
+
|
15
18
|
module Shutl::Resource
|
16
19
|
extend self
|
17
20
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shutl_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -192,6 +192,7 @@ files:
|
|
192
192
|
- README.md
|
193
193
|
- Rakefile
|
194
194
|
- lib/shutl/resource/configuration.rb
|
195
|
+
- lib/shutl/resource/default_logger.rb
|
195
196
|
- lib/shutl/resource/errors.rb
|
196
197
|
- lib/shutl/resource/rest.rb
|
197
198
|
- lib/shutl/resource/rest_class_methods.rb
|