airbrake-api 4.5.1 → 4.6.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.
- data/lib/airbrake-api/client.rb +1 -10
- data/lib/airbrake-api/configuration.rb +15 -1
- data/lib/airbrake-api/version.rb +1 -1
- data/spec/airbrake_api/client_spec.rb +25 -1
- metadata +4 -4
data/lib/airbrake-api/client.rb
CHANGED
@@ -1,9 +1,5 @@
|
|
1
|
-
require 'faraday_middleware'
|
2
1
|
require 'parallel'
|
3
2
|
require 'airbrake-api/core_ext/hash'
|
4
|
-
require 'airbrake-api/middleware/scrub_response'
|
5
|
-
require 'airbrake-api/middleware/raise_server_error'
|
6
|
-
require 'airbrake-api/middleware/raise_response_error'
|
7
3
|
|
8
4
|
module AirbrakeAPI
|
9
5
|
class Client
|
@@ -171,12 +167,7 @@ module AirbrakeAPI
|
|
171
167
|
:url => account_path,
|
172
168
|
}
|
173
169
|
@connection ||= Faraday.new(default_options.deep_merge(connection_options)) do |builder|
|
174
|
-
builder.use
|
175
|
-
builder.use AirbrakeAPI::Middleware::RaiseResponseError
|
176
|
-
builder.use FaradayMiddleware::Mashify
|
177
|
-
builder.use FaradayMiddleware::ParseXml
|
178
|
-
builder.use AirbrakeAPI::Middleware::ScrubResponse
|
179
|
-
builder.use AirbrakeAPI::Middleware::RaiseServerError
|
170
|
+
middleware.each { |mw| builder.use *mw }
|
180
171
|
|
181
172
|
builder.adapter adapter
|
182
173
|
end
|
@@ -1,4 +1,8 @@
|
|
1
1
|
require 'airbrake-api/version'
|
2
|
+
require 'faraday_middleware'
|
3
|
+
require 'airbrake-api/middleware/scrub_response'
|
4
|
+
require 'airbrake-api/middleware/raise_server_error'
|
5
|
+
require 'airbrake-api/middleware/raise_response_error'
|
2
6
|
|
3
7
|
module AirbrakeAPI
|
4
8
|
module Configuration
|
@@ -8,13 +12,21 @@ module AirbrakeAPI
|
|
8
12
|
:secure,
|
9
13
|
:connection_options,
|
10
14
|
:adapter,
|
11
|
-
:user_agent
|
15
|
+
:user_agent,
|
16
|
+
:middleware]
|
12
17
|
|
13
18
|
attr_accessor *VALID_OPTIONS_KEYS
|
14
19
|
|
15
20
|
DEFAULT_ADAPTER = :net_http
|
16
21
|
DEFAULT_USER_AGENT = "AirbrakeAPI Ruby Gem #{AirbrakeAPI::VERSION}"
|
17
22
|
DEFAULT_CONNECTION_OPTIONS = {}
|
23
|
+
DEFAULT_MIDDLEWARE = [
|
24
|
+
Faraday::Request::UrlEncoded,
|
25
|
+
AirbrakeAPI::Middleware::RaiseResponseError,
|
26
|
+
FaradayMiddleware::Mashify,
|
27
|
+
FaradayMiddleware::ParseXml,
|
28
|
+
AirbrakeAPI::Middleware::ScrubResponse,
|
29
|
+
AirbrakeAPI::Middleware::RaiseServerError]
|
18
30
|
|
19
31
|
def self.extended(base)
|
20
32
|
base.reset
|
@@ -24,6 +36,7 @@ module AirbrakeAPI
|
|
24
36
|
@account = options[:account] if options.has_key?(:account)
|
25
37
|
@auth_token = options[:auth_token] if options.has_key?(:auth_token)
|
26
38
|
@secure = options[:secure] if options.has_key?(:secure)
|
39
|
+
@middleware = options[:middleware] if options.has_key?(:middleware)
|
27
40
|
yield self if block_given?
|
28
41
|
self
|
29
42
|
end
|
@@ -49,6 +62,7 @@ module AirbrakeAPI
|
|
49
62
|
@adapter = DEFAULT_ADAPTER
|
50
63
|
@user_agent = DEFAULT_USER_AGENT
|
51
64
|
@connection_options = DEFAULT_CONNECTION_OPTIONS
|
65
|
+
@middleware = DEFAULT_MIDDLEWARE
|
52
66
|
end
|
53
67
|
|
54
68
|
end
|
data/lib/airbrake-api/version.rb
CHANGED
@@ -35,7 +35,8 @@ describe AirbrakeAPI::Client do
|
|
35
35
|
:secure => true,
|
36
36
|
:connection_options => {},
|
37
37
|
:adapter => :em_http,
|
38
|
-
:user_agent => 'Airbrake API Tests'
|
38
|
+
:user_agent => 'Airbrake API Tests',
|
39
|
+
:middleware => AirbrakeAPI::Configuration::DEFAULT_MIDDLEWARE
|
39
40
|
}
|
40
41
|
end
|
41
42
|
|
@@ -61,6 +62,29 @@ describe AirbrakeAPI::Client do
|
|
61
62
|
end
|
62
63
|
end
|
63
64
|
end
|
65
|
+
|
66
|
+
context 'with customized middleware' do
|
67
|
+
let(:logdev) { StringIO.new }
|
68
|
+
# Client#connection is a private method.
|
69
|
+
# Adding logger middleware component with an argument it should receive
|
70
|
+
# when a connection is initialized
|
71
|
+
let(:logger_middleware) { [Faraday::Response::Logger, Logger.new(logdev)] }
|
72
|
+
let(:options) do
|
73
|
+
{
|
74
|
+
:account => 'myapp', :auth_token => 'abcdefg123456', :secure => false,
|
75
|
+
:middleware => AirbrakeAPI::Configuration::DEFAULT_MIDDLEWARE + [logger_middleware]
|
76
|
+
}
|
77
|
+
end
|
78
|
+
let(:api) { AirbrakeAPI::Client.new(options) }
|
79
|
+
|
80
|
+
# request something to initialize @connection with middleware
|
81
|
+
before { api.projects }
|
82
|
+
|
83
|
+
it 'splats array to initialize middleware with arguments' do
|
84
|
+
# check that the logger added above did receive the argument
|
85
|
+
expect(logdev.string).to include(api.projects_path)
|
86
|
+
end
|
87
|
+
end
|
64
88
|
end
|
65
89
|
|
66
90
|
describe 'api requests'do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: airbrake-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.6.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-11-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: hashie
|
@@ -148,7 +148,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
148
148
|
version: '0'
|
149
149
|
segments:
|
150
150
|
- 0
|
151
|
-
hash:
|
151
|
+
hash: -3943639386550054679
|
152
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
153
|
none: false
|
154
154
|
requirements:
|
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
157
|
version: '0'
|
158
158
|
segments:
|
159
159
|
- 0
|
160
|
-
hash:
|
160
|
+
hash: -3943639386550054679
|
161
161
|
requirements: []
|
162
162
|
rubyforge_project:
|
163
163
|
rubygems_version: 1.8.23
|