shutl_resource 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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