api-blueprint 0.7.2 → 0.8.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dbe8141b2203fbf4750fdca07e4f59e4e2523a2e
4
- data.tar.gz: 552ae98914367172699bba691641ec34e05b7fd2
3
+ metadata.gz: 107d220ee5caf5652b5aa9d19e6cf48d9650873f
4
+ data.tar.gz: ddde847693510961973b9c9463373b6a92ae6104
5
5
  SHA512:
6
- metadata.gz: 1e5da3422084f8da9be57ef451929a1a2667a0e1b62c3f31bf283ce3ef900f7c75e7b5f001e623ecb7d0363eb3ecd23e45d2e7f735b97884bd6a6aefca231eed
7
- data.tar.gz: d6863b6922dccb2a4847d8c543f25c19e070c126bb610b8511bdf2eb16904744b3975db4e1e3eab5b86974467b1489db011b7b77d387e7b1f17345d26e8db6e5
6
+ metadata.gz: 8eb0d1ccdf38f848f47d6a6a23d651f405cdd73c44b545565d03741c9a31443a3afb7d7cfa7d741991d05cc0873ebd8186ae659f99150899311f42d106037f82
7
+ data.tar.gz: c60d05fc38eeb6039a31c6e18ab79d9080c55bfd5ae288cd7222f4feea145522a70d68cb7d4bb17f6c5b547ae2a4176cb4f850f9737f3fcbfb178ce04e32dd76
@@ -3,6 +3,7 @@ require 'dry-struct'
3
3
  require 'dry-initializer'
4
4
  require 'faraday'
5
5
  require 'faraday_middleware'
6
+ require 'faraday/detailed_logger'
6
7
  require 'active_model'
7
8
  require 'addressable'
8
9
  require 'active_support'
@@ -21,6 +22,10 @@ require 'api-blueprint/runner'
21
22
  require 'api-blueprint/collection'
22
23
 
23
24
  module ApiBlueprint
25
+ extend Dry::Configurable
26
+
27
+ setting :logger, nil
28
+
24
29
  class ResponseError < StandardError
25
30
  attr_reader :status, :headers, :body
26
31
  def initialize(env)
@@ -43,7 +43,11 @@ module ApiBlueprint
43
43
  Faraday.new do |conn|
44
44
  conn.use ApiBlueprint::ResponseMiddleware
45
45
  conn.response :json, content_type: /\bjson$/
46
- conn.response :logger if log_responses
46
+ conn.use :instrumentation, name: "api-blueprint.request"
47
+
48
+ if enable_response_logging?
49
+ conn.response :detailed_logger, ApiBlueprint.config.logger, "API-BLUEPRINT"
50
+ end
47
51
 
48
52
  conn.adapter Faraday.default_adapter
49
53
  conn.headers = {
@@ -96,5 +100,13 @@ module ApiBlueprint
96
100
  obj.errors.add field.to_sym, messages
97
101
  end
98
102
 
103
+ def enable_response_logging?
104
+ if defined?(Rails) && Rails.env.production?
105
+ log_responses && ENV["ENABLE_PRODUCTION_RESPONSE_LOGGING"]
106
+ else
107
+ log_responses
108
+ end
109
+ end
110
+
99
111
  end
100
112
  end
@@ -1,3 +1,3 @@
1
1
  module ApiBlueprint
2
- VERSION = '0.7.2'
2
+ VERSION = '0.8.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api-blueprint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damien Timewell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-16 00:00:00.000000000 Z
11
+ date: 2018-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-types
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: faraday-detailed_logger
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: activemodel
99
113
  requirement: !ruby/object:Gem::Requirement