rollbar 0.10.2 → 0.10.3
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/.travis.yml +0 -2
 - data/CHANGELOG.md +5 -1
 - data/lib/rollbar.rb +2 -1
 - data/lib/rollbar/request_data_extractor.rb +12 -18
 - data/lib/rollbar/version.rb +1 -1
 - data/spec/controllers/home_controller_spec.rb +15 -2
 - data/spec/dummyapp/config/routes.rb +1 -1
 - data/spec/requests/home_spec.rb +10 -7
 - metadata +2 -2
 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,6 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Change Log
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            **0.10. 
     | 
| 
      
 3 
     | 
    
         
            +
            **0.10.3**
         
     | 
| 
      
 4 
     | 
    
         
            +
            - Rework how request params are extracted so that json params are properly extracted in rails 4.0
         
     | 
| 
      
 5 
     | 
    
         
            +
            - Fix rollbar:test rake task
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            **0.10.2**
         
     | 
| 
       4 
8 
     | 
    
         
             
            - Require hooks at configuration time instead of gem load time
         
     | 
| 
       5 
9 
     | 
    
         | 
| 
       6 
10 
     | 
    
         
             
            **0.10.1**
         
     | 
    
        data/lib/rollbar.rb
    CHANGED
    
    | 
         @@ -12,6 +12,8 @@ require 'rollbar/configuration' 
     | 
|
| 
       12 
12 
     | 
    
         
             
            require 'rollbar/request_data_extractor'
         
     | 
| 
       13 
13 
     | 
    
         
             
            require 'rollbar/exception_reporter'
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
      
 15 
     | 
    
         
            +
            require 'rollbar/railtie' if defined?(Rails)
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       15 
17 
     | 
    
         
             
            module Rollbar
         
     | 
| 
       16 
18 
     | 
    
         
             
              class << self
         
     | 
| 
       17 
19 
     | 
    
         
             
                attr_writer :configuration
         
     | 
| 
         @@ -146,7 +148,6 @@ module Rollbar 
     | 
|
| 
       146 
148 
     | 
    
         
             
                  require 'rollbar/goalie' if defined?(Goalie)
         
     | 
| 
       147 
149 
     | 
    
         
             
                  require 'rollbar/rack' if defined?(Rack)
         
     | 
| 
       148 
150 
     | 
    
         
             
                  require 'rollbar/rake' if defined?(Rake)
         
     | 
| 
       149 
     | 
    
         
            -
                  require 'rollbar/railtie' if defined?(Rails)
         
     | 
| 
       150 
151 
     | 
    
         
             
                  require 'rollbar/better_errors' if defined?(BetterErrors)
         
     | 
| 
       151 
152 
     | 
    
         
             
                end
         
     | 
| 
       152 
153 
     | 
    
         | 
| 
         @@ -14,19 +14,13 @@ module Rollbar 
     | 
|
| 
       14 
14 
     | 
    
         
             
                  rack_req = Rack::Request.new(env)
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
                  sensitive_params = sensitive_params_list(env)
         
     | 
| 
       17 
     | 
    
         
            -
                  request_params = rollbar_request_params(env)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  request_params = rollbar_filtered_params(sensitive_params, rollbar_request_params(env))
         
     | 
| 
       18 
18 
     | 
    
         
             
                  get_params = rollbar_filtered_params(sensitive_params, rollbar_get_params(rack_req))
         
     | 
| 
       19 
19 
     | 
    
         
             
                  post_params = rollbar_filtered_params(sensitive_params, rollbar_post_params(rack_req))
         
     | 
| 
       20 
20 
     | 
    
         
             
                  cookies = rollbar_filtered_params(sensitive_params, rollbar_request_cookies(rack_req))
         
     | 
| 
       21 
21 
     | 
    
         
             
                  session = rollbar_filtered_params(sensitive_params, env['rack.session.options'])
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
                  params =  
     | 
| 
       24 
     | 
    
         
            -
                  
         
     | 
| 
       25 
     | 
    
         
            -
                  # parse any json params
         
     | 
| 
       26 
     | 
    
         
            -
                  if env['CONTENT_TYPE'] =~ %r{application/json}i
         
     | 
| 
       27 
     | 
    
         
            -
                    json_params = JSON.parse(env['rack.input'].read) rescue {}
         
     | 
| 
       28 
     | 
    
         
            -
                    params = params.merge(json_params)
         
     | 
| 
       29 
     | 
    
         
            -
                  end
         
     | 
| 
      
 23 
     | 
    
         
            +
                  params = request_params.merge(get_params).merge(post_params)
         
     | 
| 
       30 
24 
     | 
    
         | 
| 
       31 
25 
     | 
    
         
             
                  {
         
     | 
| 
       32 
26 
     | 
    
         
             
                    :params => params,
         
     | 
| 
         @@ -66,16 +60,7 @@ module Rollbar 
     | 
|
| 
       66 
60 
     | 
    
         
             
                def rollbar_user_ip(env)
         
     | 
| 
       67 
61 
     | 
    
         
             
                  (env['action_dispatch.remote_ip'] || env['HTTP_X_REAL_IP'] || env['HTTP_X_FORWARDED_FOR'] || env['REMOTE_ADDR']).to_s
         
     | 
| 
       68 
62 
     | 
    
         
             
                end
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
                def rollbar_request_params(env)
         
     | 
| 
       71 
     | 
    
         
            -
                  route = ::Rails.application.routes.recognize_path(env['PATH_INFO']) rescue {}
         
     | 
| 
       72 
     | 
    
         
            -
                  {
         
     | 
| 
       73 
     | 
    
         
            -
                    :controller => route[:controller],
         
     | 
| 
       74 
     | 
    
         
            -
                    :action => route[:action],
         
     | 
| 
       75 
     | 
    
         
            -
                    :format => route[:format],
         
     | 
| 
       76 
     | 
    
         
            -
                  }
         
     | 
| 
       77 
     | 
    
         
            -
                end
         
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
      
 63 
     | 
    
         
            +
                
         
     | 
| 
       79 
64 
     | 
    
         
             
                def rollbar_get_params(rack_req)
         
     | 
| 
       80 
65 
     | 
    
         
             
                  rack_req.GET
         
     | 
| 
       81 
66 
     | 
    
         
             
                rescue
         
     | 
| 
         @@ -87,6 +72,15 @@ module Rollbar 
     | 
|
| 
       87 
72 
     | 
    
         
             
                rescue
         
     | 
| 
       88 
73 
     | 
    
         
             
                  {}
         
     | 
| 
       89 
74 
     | 
    
         
             
                end
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
                def rollbar_request_params(env)
         
     | 
| 
      
 77 
     | 
    
         
            +
                  route = ::Rails.application.routes.recognize_path(env['PATH_INFO']) rescue {}
         
     | 
| 
      
 78 
     | 
    
         
            +
                  {
         
     | 
| 
      
 79 
     | 
    
         
            +
                    :controller => route[:controller],
         
     | 
| 
      
 80 
     | 
    
         
            +
                    :action => route[:action],
         
     | 
| 
      
 81 
     | 
    
         
            +
                    :format => route[:format],
         
     | 
| 
      
 82 
     | 
    
         
            +
                  }.merge(env['action_dispatch.request.parameters'] || {})
         
     | 
| 
      
 83 
     | 
    
         
            +
                end
         
     | 
| 
       90 
84 
     | 
    
         | 
| 
       91 
85 
     | 
    
         
             
                def rollbar_request_cookies(rack_req)
         
     | 
| 
       92 
86 
     | 
    
         
             
                  rack_req.cookies
         
     | 
    
        data/lib/rollbar/version.rb
    CHANGED
    
    
| 
         @@ -196,6 +196,7 @@ describe HomeController do 
     | 
|
| 
       196 
196 
     | 
    
         | 
| 
       197 
197 
     | 
    
         
             
                it "should raise a NameError and have JSON POST params" do
         
     | 
| 
       198 
198 
     | 
    
         
             
                  logger_mock.should_receive(:info).with('[Rollbar] Success')
         
     | 
| 
      
 199 
     | 
    
         
            +
                  @request.env["HTTP_ACCEPT"] = "application/json"
         
     | 
| 
       199 
200 
     | 
    
         | 
| 
       200 
201 
     | 
    
         
             
                  params = {:jsonparam => 'jsonval'}.to_json
         
     | 
| 
       201 
202 
     | 
    
         
             
                  post 'report_exception', params, {'CONTENT_TYPE' => 'application/json'}
         
     | 
| 
         @@ -214,11 +215,23 @@ describe HomeController do 
     | 
|
| 
       214 
215 
     | 
    
         | 
| 
       215 
216 
     | 
    
         
             
                context 'show_exceptions' do
         
     | 
| 
       216 
217 
     | 
    
         
             
                  before(:each) do
         
     | 
| 
       217 
     | 
    
         
            -
                    Dummy::Application.env_config 
     | 
| 
      
 218 
     | 
    
         
            +
                    if Dummy::Application.respond_to? :env_config
         
     | 
| 
      
 219 
     | 
    
         
            +
                      config = Dummy::Application.env_config
         
     | 
| 
      
 220 
     | 
    
         
            +
                    else
         
     | 
| 
      
 221 
     | 
    
         
            +
                      config = Dummy::Application.env_defaults
         
     | 
| 
      
 222 
     | 
    
         
            +
                    end
         
     | 
| 
      
 223 
     | 
    
         
            +
                    
         
     | 
| 
      
 224 
     | 
    
         
            +
                    config['action_dispatch.show_exceptions'] = true
         
     | 
| 
       218 
225 
     | 
    
         
             
                  end
         
     | 
| 
       219 
226 
     | 
    
         | 
| 
       220 
227 
     | 
    
         
             
                  after(:each) do
         
     | 
| 
       221 
     | 
    
         
            -
                    Dummy::Application.env_config 
     | 
| 
      
 228 
     | 
    
         
            +
                    if Dummy::Application.respond_to? :env_config
         
     | 
| 
      
 229 
     | 
    
         
            +
                      config = Dummy::Application.env_config
         
     | 
| 
      
 230 
     | 
    
         
            +
                    else
         
     | 
| 
      
 231 
     | 
    
         
            +
                      config = Dummy::Application.env_defaults
         
     | 
| 
      
 232 
     | 
    
         
            +
                    end
         
     | 
| 
      
 233 
     | 
    
         
            +
                    
         
     | 
| 
      
 234 
     | 
    
         
            +
                    config['action_dispatch.show_exceptions'] = false
         
     | 
| 
       222 
235 
     | 
    
         
             
                  end
         
     | 
| 
       223 
236 
     | 
    
         | 
| 
       224 
237 
     | 
    
         
             
                  it "middleware should catch the exception and only report to rollbar once" do
         
     | 
| 
         @@ -5,6 +5,6 @@ Dummy::Application.routes.draw do 
     | 
|
| 
       5 
5 
     | 
    
         
             
              end
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              get "/cause_exception" => "home#cause_exception"
         
     | 
| 
       8 
     | 
    
         
            -
              match "/report_exception" => "home#report_exception", :via=> [:get, : 
     | 
| 
      
 8 
     | 
    
         
            +
              match "/report_exception" => "home#report_exception", :via => [:get, :post, :put]
         
     | 
| 
       9 
9 
     | 
    
         
             
              get "/current_user" => "home#current_user"
         
     | 
| 
       10 
10 
     | 
    
         
             
            end
         
     | 
    
        data/spec/requests/home_spec.rb
    CHANGED
    
    | 
         @@ -16,13 +16,16 @@ describe HomeController do 
     | 
|
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
              context "with broken request" do
         
     | 
| 
       18 
18 
     | 
    
         
             
                it "should report uncaught exceptions" do
         
     | 
| 
       19 
     | 
    
         
            -
                   
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
      
 19 
     | 
    
         
            +
                  # only seems to be relevant in 3.1 and 3.2
         
     | 
| 
      
 20 
     | 
    
         
            +
                  if ::Rails::VERSION::STRING.starts_with? "3.1" or ::Rails::VERSION::STRING.starts_with? "3.2"
         
     | 
| 
      
 21 
     | 
    
         
            +
                    expect{ get 'current_user', nil, :cookie => '8%B' }.to raise_exception
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                    Rollbar.last_report.should_not be_nil
         
     | 
| 
      
 24 
     | 
    
         
            +
              
         
     | 
| 
      
 25 
     | 
    
         
            +
                    exception_info = Rollbar.last_report[:body][:trace][:exception]
         
     | 
| 
      
 26 
     | 
    
         
            +
                    exception_info[:class].should == 'ArgumentError'
         
     | 
| 
      
 27 
     | 
    
         
            +
                    exception_info[:message].should == 'invalid %-encoding (8%B)'
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
       26 
29 
     | 
    
         
             
                end
         
     | 
| 
       27 
30 
     | 
    
         
             
              end
         
     | 
| 
       28 
31 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rollbar
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.10. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.10.3
         
     | 
| 
       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-06- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2013-06-25 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: multi_json
         
     |