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
         
     |