rollbar 0.10.2 → 0.10.3

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -18,8 +18,6 @@ matrix:
18
18
  - rvm: jruby-head
19
19
  - rvm: rbx-18mode
20
20
  - rvm: rbx-19mode
21
- - gemfile: gemfiles/rails30.gemfile
22
- - gemfile: gemfiles/rails40.gemfile
23
21
  exclude:
24
22
  - rvm: 1.8.7
25
23
  gemfile: gemfiles/rails40.gemfile
data/CHANGELOG.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # Change Log
2
2
 
3
- **0.10.2*
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 = get_params.merge(post_params).merge(request_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
@@ -1,3 +1,3 @@
1
1
  module Rollbar
2
- VERSION = "0.10.2"
2
+ VERSION = "0.10.3"
3
3
  end
@@ -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['action_dispatch.show_exceptions'] = true
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['action_dispatch.show_exceptions'] = false
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, :put, :post]
8
+ match "/report_exception" => "home#report_exception", :via => [:get, :post, :put]
9
9
  get "/current_user" => "home#current_user"
10
10
  end
@@ -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
- expect{ get 'current_user', nil, :cookie => '8%B' }.to raise_exception
20
-
21
- Rollbar.last_report.should_not be_nil
22
-
23
- exception_info = Rollbar.last_report[:body][:trace][:exception]
24
- exception_info[:class].should == 'ArgumentError'
25
- exception_info[:message].should == 'invalid %-encoding (8%B)'
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.2
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-21 00:00:00.000000000 Z
12
+ date: 2013-06-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json