api_hammer 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b342d8c401e21b4f1de5a9bca122654c97029575
4
- data.tar.gz: 43ebdf3104bb5f99a077b1f5a6865175be99ae0b
3
+ metadata.gz: ce63ff50e3e052b9baa6a9f6f6c45e9a5a7f2ed5
4
+ data.tar.gz: 7f0e9b25392ce4a3e8ee142fba08046c6162915b
5
5
  SHA512:
6
- metadata.gz: 354e49d66f033993d760bb2e465e8166330ec28be9f2bc7cf2d1c385fb887b3c5a06e744f60be19cbb3ed52c84024c41d6603004860628b50ecc37b6f3b94b88
7
- data.tar.gz: 38e03dedd7c08c876b1f91cb7fd3b68da53b3dc045e71787d753a653d0952c10d884a6f36d7ca993e9de533b2fc19cd5462daba5131c4847250b2fb2324cfb6c
6
+ metadata.gz: 6e34d35e48b004a332d754bf4ca95b41841ba2aba0a4071e4f583b4d311855f045d7444fc5e30a91fa751cf7aefb1e245289be6932bd283cb2bba0aba04058aa
7
+ data.tar.gz: e3763513e988b90137f7160a023faf59ebe03f1a84d37ae148da4aa7cb988c8716b4c14a01e4469317dcec4daa9eb0082aa1722cf836c071c0ca75c9b2c56e0a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ # v0.6.0
2
+ - ApiHammer::RailsOrSidekiqLogger
3
+
1
4
  # v0.5.0
2
5
  - rack request logger logs all request and response headers
3
6
  - fix id / uuid / guid logging in rack request logger
@@ -4,13 +4,6 @@ require 'term/ansicolor'
4
4
  require 'json'
5
5
  require 'strscan'
6
6
 
7
- if Faraday.respond_to?(:register_middleware)
8
- Faraday.register_middleware(:request, :api_hammer_request_logger => proc { ApiHammer::Faraday::RequestLogger })
9
- end
10
- if Faraday::Request.respond_to?(:register_middleware)
11
- Faraday::Request.register_middleware(:api_hammer_request_logger => proc { ApiHammer::Faraday::RequestLogger })
12
- end
13
-
14
7
  module ApiHammer
15
8
  # parses attributes out of content type header
16
9
  class ContentTypeAttrs
@@ -51,7 +44,7 @@ module ApiHammer
51
44
  end
52
45
  end
53
46
 
54
- class Faraday
47
+ module Faraday
55
48
  # Faraday middleware for logging.
56
49
  #
57
50
  # two lines:
@@ -0,0 +1,43 @@
1
+ module ApiHammer
2
+ # switch a logger between Rails.logger and sidekiq's logger
3
+ #
4
+ # Sidekiq.configure_server do |config|
5
+ # ...
6
+ #
7
+ # config.server_middleware do |chain|
8
+ # chain.add ApiHammer::RailsOrSidekiqLoggerMiddleware
9
+ # end
10
+ # end
11
+ class RailsOrSidekiqLoggerMiddleware
12
+ def call(worker, msg, queue, &block)
13
+ ApiHammer::RailsOrSidekiqLogger.with_logger(worker.logger, &block)
14
+ end
15
+ end
16
+
17
+ # include in a class to define #logger which will switch between Sidekiq and Rails
18
+ # using RailsOrSidekiqLoggerMiddleware
19
+ #
20
+ # class Foo
21
+ # include ApiHammer::RailsOrSidekiqLogger
22
+ # end
23
+ #
24
+ module RailsOrSidekiqLogger
25
+ LOGGER_KEY = 'api_hammer_rails_or_sidekiq_logger'
26
+ def with_logger(logger)
27
+ orig_logger = Thread.current[LOGGER_KEY]
28
+ begin
29
+ Thread.current[LOGGER_KEY] = logger
30
+ yield
31
+ ensure
32
+ Thread.current[LOGGER_KEY] = orig_logger
33
+ end
34
+ end
35
+
36
+ def logger
37
+ logger = Thread.current[LOGGER_KEY] || ::Rails.logger
38
+ logger.respond_to?(:tagged) ? logger : ::ActiveSupport::TaggedLogging.new(logger)
39
+ end
40
+
41
+ extend self
42
+ end
43
+ end
@@ -1,3 +1,3 @@
1
1
  module ApiHammer
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
data/lib/api_hammer.rb CHANGED
@@ -2,8 +2,23 @@ require 'api_hammer/version'
2
2
 
3
3
  module ApiHammer
4
4
  autoload :Rails, 'api_hammer/rails'
5
- autoload :RequestLogger, 'api_hammer/request_logger.rb'
6
- autoload :ShowTextExceptions, 'api_hammer/show_text_exceptions.rb'
7
- autoload :TrailingNewline, 'api_hammer/trailing_newline.rb'
8
- autoload :Weblink, 'api_hammer/weblink.rb'
5
+ autoload :RequestLogger, 'api_hammer/request_logger'
6
+ autoload :ShowTextExceptions, 'api_hammer/show_text_exceptions'
7
+ autoload :TrailingNewline, 'api_hammer/trailing_newline'
8
+ autoload :Weblink, 'api_hammer/weblink'
9
+ autoload :RailsOrSidekiqLoggerMiddleware, 'api_hammer/rails_or_sidekiq_logger'
10
+ autoload :RailsOrSidekiqLogger, 'api_hammer/rails_or_sidekiq_logger'
11
+ autoload :FaradayOutputter, 'api_hammer/faraday/outputter'
12
+ autoload :FaradayCurlVOutputter, 'api_hammer/faraday/outputter'
13
+ module Faraday
14
+ autoload :RequestLogger, 'api_hammer/faraday/request_logger'
15
+ end
16
+ end
17
+
18
+ require 'faraday'
19
+ if Faraday.respond_to?(:register_middleware)
20
+ Faraday.register_middleware(:request, :api_hammer_request_logger => proc { ApiHammer::Faraday::RequestLogger })
21
+ end
22
+ if Faraday::Request.respond_to?(:register_middleware)
23
+ Faraday::Request.register_middleware(:api_hammer_request_logger => proc { ApiHammer::Faraday::RequestLogger })
9
24
  end
@@ -4,7 +4,6 @@ proc { |p| $:.unshift(p) unless $:.any? { |lp| File.expand_path(lp) == p } }.cal
4
4
  require 'helper'
5
5
  require 'logger'
6
6
  require 'stringio'
7
- require 'api_hammer/faraday/request_logger'
8
7
 
9
8
  describe ApiHammer::RequestLogger do
10
9
  let(:logio) { StringIO.new }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_hammer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-04 00:00:00.000000000 Z
11
+ date: 2014-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -244,6 +244,7 @@ files:
244
244
  - lib/api_hammer/halt.rb
245
245
  - lib/api_hammer/public_instance_exec.rb
246
246
  - lib/api_hammer/rails.rb
247
+ - lib/api_hammer/rails_or_sidekiq_logger.rb
247
248
  - lib/api_hammer/rails_request_logging.rb
248
249
  - lib/api_hammer/request_logger.rb
249
250
  - lib/api_hammer/show_text_exceptions.rb