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 :extended_logging, logger: Shutl::Resource.logger
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?
@@ -1,5 +1,5 @@
1
1
  module Shutl
2
2
  module Resource
3
- VERSION = '1.1.0'
3
+ VERSION = '1.1.1'
4
4
  end
5
5
  end
@@ -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.0
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