rollbar 2.14.1 → 2.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -0
- data/Gemfile +7 -2
- data/README.md +3 -3
- data/data/rollbar.snippet.js +1 -1
- data/docs/configuration.md +7 -1
- data/gemfiles/rails30.gemfile +7 -1
- data/gemfiles/rails31.gemfile +5 -1
- data/gemfiles/rails32.gemfile +5 -1
- data/gemfiles/rails40.gemfile +5 -1
- data/gemfiles/rails41.gemfile +5 -1
- data/gemfiles/rails42.gemfile +5 -1
- data/gemfiles/rails50.gemfile +5 -1
- data/gemfiles/ruby_1_8_and_1_9_2.gemfile +4 -2
- data/lib/generators/rollbar/rollbar_generator.rb +9 -10
- data/lib/rails/rollbar_runner.rb +1 -3
- data/lib/rollbar.rb +2 -0
- data/lib/rollbar/capistrano3.rb +1 -1
- data/lib/rollbar/configuration.rb +7 -7
- data/lib/rollbar/delay/girl_friday.rb +0 -1
- data/lib/rollbar/delay/sucker_punch.rb +0 -1
- data/lib/rollbar/exception_reporter.rb +2 -2
- data/lib/rollbar/item.rb +1 -2
- data/lib/rollbar/item/frame.rb +1 -1
- data/lib/rollbar/json.rb +0 -1
- data/lib/rollbar/json/oj.rb +2 -1
- data/lib/rollbar/middleware/js.rb +18 -1
- data/lib/rollbar/middleware/rails/rollbar.rb +1 -1
- data/lib/rollbar/notifier.rb +9 -1
- data/lib/rollbar/plugins/goalie.rb +2 -2
- data/lib/rollbar/plugins/rails/controller_methods.rb +0 -1
- data/lib/rollbar/plugins/rails/railtie32.rb +0 -1
- data/lib/rollbar/plugins/sidekiq/plugin.rb +2 -2
- data/lib/rollbar/rails.rb +0 -1
- data/lib/rollbar/request_data_extractor.rb +6 -4
- data/lib/rollbar/truncation.rb +1 -2
- data/lib/rollbar/truncation/min_body_strategy.rb +0 -1
- data/lib/rollbar/util.rb +5 -10
- data/lib/rollbar/version.rb +1 -1
- data/lib/tasks/tasks.rake +3 -3
- data/rollbar.gemspec +5 -6
- data/spec/rollbar/middleware/js_spec.rb +51 -0
- data/spec/rollbar_spec.rb +86 -0
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75de87140e9fe6e01344c22ac625a2726a07cb6a
|
4
|
+
data.tar.gz: 4cd6d96381e2c0c6c3af63feb5192ce7cb6523c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d913f6a9faf35b2386509f13b5d9bda82e6c9a5e09782cb2623b193ecc3e95fb7e985577e46f4a612b6f2a159c030f48f07f382ff12aeae0a5065d0416a6a251
|
7
|
+
data.tar.gz: 32b6fe0ea92ec3e5462f8556fff7c21dc87e7fc058368bee7f3fe6aa40edd9c955dcaae6c0305343048170b307fcc8c8f5d9db9413fe35d6fe50038da85cc578
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,26 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 2.15.0
|
4
|
+
|
5
|
+
Features:
|
6
|
+
|
7
|
+
- Support person data in rollbar.js. See [#602](https://github.com/rollbar/rollbar-gem/pull/602).
|
8
|
+
- Update rollbar.js to v2.0.4. See [#600](https://github.com/rollbar/rollbar-gem/pull/600).
|
9
|
+
- Add Configuration#use_exception_level_filters option. See [#588](https://github.com/rollbar/rollbar-gem/pull/588).
|
10
|
+
|
11
|
+
Fixes:
|
12
|
+
|
13
|
+
- get session from env instead of request. See [#586](https://github.com/rollbar/rollbar-gem/pull/586).
|
14
|
+
- If multiple forwarded hosts are present in the headers, use the first. See [#582](https://github.com/rollbar/rollbar-gem/pull/582).
|
15
|
+
- Replace present? call with plain ruby alternative. See [#579](https://github.com/rollbar/rollbar-gem/pull/579).
|
16
|
+
|
17
|
+
Others:
|
18
|
+
- Codacy cleanup. See [#599](https://github.com/rollbar/rollbar-gem/pull/599).
|
19
|
+
- Remove warning on @root_notifier cause not initialized. See [#562](https://github.com/rollbar/rollbar-gem/pull/562).
|
20
|
+
- [Docs] I think you mean this. See [#596](https://github.com/rollbar/rollbar-gem/pull/596).
|
21
|
+
- Fix syntax error in code example. See [#581](https://github.com/rollbar/rollbar-gem/pull/581).
|
22
|
+
|
23
|
+
|
3
24
|
## 2.14.1
|
4
25
|
|
5
26
|
- Add host as a configuration options. See [#560](https://github.com/rollbar/rollbar-gem/pull/560).
|
data/Gemfile
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
source 'https://rubygems.org'
|
4
4
|
|
5
|
-
is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && 'jruby'
|
5
|
+
is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby')
|
6
6
|
|
7
7
|
gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
|
8
8
|
gem 'appraisal'
|
@@ -13,7 +13,12 @@ gem 'rspec-rails', '~> 3.4'
|
|
13
13
|
gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
|
14
14
|
|
15
15
|
gem 'oj', '~> 2.12.14' unless is_jruby
|
16
|
-
|
16
|
+
|
17
|
+
if RUBY_VERSION > '1.8.7' && RUBY_VERSION < '2.2.2'
|
18
|
+
gem 'sidekiq', '>= 2.13.0', '< 5.0'
|
19
|
+
else
|
20
|
+
gem 'sidekiq', '>= 2.13.0'
|
21
|
+
end
|
17
22
|
|
18
23
|
platforms :rbx do
|
19
24
|
gem 'minitest'
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Rollbar [![Build Status](https://api.travis-ci.org/rollbar/rollbar-gem.svg?branch=v2.
|
1
|
+
# Rollbar [![Build Status](https://api.travis-ci.org/rollbar/rollbar-gem.svg?branch=v2.15.0)](https://travis-ci.org/rollbar/rollbar-gem/branches)
|
2
2
|
|
3
3
|
<!-- RemoveNext -->
|
4
4
|
[Rollbar](https://rollbar.com) is an error tracking service for Ruby and other languages. The Rollbar service will alert you of problems with your code and help you understand them in a ways never possible before. We love it and we hope you will too.
|
@@ -115,7 +115,7 @@ end
|
|
115
115
|
If you disabled the `Rack::Builder` monkey patch or it doesn't work for the Rack framework you are using, then add our Rack middleware to your app:
|
116
116
|
|
117
117
|
```ruby
|
118
|
-
require 'rollbar/middleware/rack
|
118
|
+
require 'rollbar/middleware/rack'
|
119
119
|
|
120
120
|
use Rollbar::Middleware::Rack
|
121
121
|
```
|
@@ -313,7 +313,7 @@ class NotificationJob
|
|
313
313
|
include Sidekiq::Worker
|
314
314
|
|
315
315
|
def perform(user_id)
|
316
|
-
Rollbar.scope!(:person => { :id =>
|
316
|
+
Rollbar.scope!(:person => { :id => user_id })
|
317
317
|
|
318
318
|
# If this next line causes an exception, the reported exception (which will
|
319
319
|
# be reported by Rollbar's standard Sidekiq instrumentation) will also
|
data/data/rollbar.snippet.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
!function(r){function e
|
1
|
+
!function(r){function o(e){if(n[e])return n[e].exports;var t=n[e]={exports:{},id:e,loaded:!1};return r[e].call(t.exports,t,t.exports,o),t.loaded=!0,t.exports}var n={};return o.m=r,o.c=n,o.p="",o(0)}([function(r,o,n){"use strict";var e=n(1),t=n(4);_rollbarConfig=_rollbarConfig||{},_rollbarConfig.rollbarJsUrl=_rollbarConfig.rollbarJsUrl||"https://cdnjs.cloudflare.com/ajax/libs/rollbar.js/2.0.4/rollbar.min.js",_rollbarConfig.async=void 0===_rollbarConfig.async||_rollbarConfig.async;var a=e.setupShim(window,_rollbarConfig),l=t(_rollbarConfig);window.rollbar=e.Rollbar,a.loadFull(window,document,!_rollbarConfig.async,_rollbarConfig,l)},function(r,o,n){"use strict";function e(r){return function(){try{return r.apply(this,arguments)}catch(r){try{console.error("[Rollbar]: Internal error",r)}catch(r){}}}}function t(r,o){this.options=r,this._rollbarOldOnError=null;var n=s++;this.shimId=function(){return n},window&&window._rollbarShims&&(window._rollbarShims[n]={handler:o,messages:[]})}function a(r,o){var n=o.globalAlias||"Rollbar";if("object"==typeof r[n])return r[n];r._rollbarShims={},r._rollbarWrappedError=null;var t=new d(o);return e(function(){return o.captureUncaught&&(t._rollbarOldOnError=r.onerror,i.captureUncaughtExceptions(r,t,!0),i.wrapGlobals(r,t,!0)),o.captureUnhandledRejections&&i.captureUnhandledRejections(r,t,!0),r[n]=t,t})()}function l(r){return e(function(){var o=this,n=Array.prototype.slice.call(arguments,0),e={shim:o,method:r,args:n,ts:new Date};window._rollbarShims[this.shimId()].messages.push(e)})}var i=n(2),s=0,c=n(3),p=function(r,o){return new t(r,o)},d=c.bind(null,p);t.prototype.loadFull=function(r,o,n,t,a){var l=function(){var o;if(void 0===r._rollbarDidLoad){o=new Error("rollbar.js did not load");for(var n,e,t,l,i=0;n=r._rollbarShims[i++];)for(n=n.messages||[];e=n.shift();)for(t=e.args||[],i=0;i<t.length;++i)if(l=t[i],"function"==typeof l){l(o);break}}"function"==typeof a&&a(o)},i=!1,s=o.createElement("script"),c=o.getElementsByTagName("script")[0],p=c.parentNode;s.crossOrigin="",s.src=t.rollbarJsUrl,n||(s.async=!0),s.onload=s.onreadystatechange=e(function(){if(!(i||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState)){s.onload=s.onreadystatechange=null;try{p.removeChild(s)}catch(r){}i=!0,l()}}),p.insertBefore(s,c)},t.prototype.wrap=function(r,o){try{var n;if(n="function"==typeof o?o:function(){return o||{}},"function"!=typeof r)return r;if(r._isWrap)return r;if(!r._wrapped&&(r._wrapped=function(){try{return r.apply(this,arguments)}catch(e){var o=e;throw"string"==typeof o&&(o=new String(o)),o._rollbarContext=n()||{},o._rollbarContext._wrappedSource=r.toString(),window._rollbarWrappedError=o,o}},r._wrapped._isWrap=!0,r.hasOwnProperty))for(var e in r)r.hasOwnProperty(e)&&(r._wrapped[e]=r[e]);return r._wrapped}catch(o){return r}};for(var u="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleUnhandledRejection".split(","),f=0;f<u.length;++f)t.prototype[u[f]]=l(u[f]);r.exports={setupShim:a,Rollbar:d}},function(r,o){"use strict";function n(r,o,n){if(r){var t;"function"==typeof o._rollbarOldOnError?t=o._rollbarOldOnError:r.onerror&&!r.onerror.belongsToShim&&(t=r.onerror,o._rollbarOldOnError=t);var a=function(){var n=Array.prototype.slice.call(arguments,0);e(r,o,t,n)};a.belongsToShim=n,r.onerror=a}}function e(r,o,n,e){r._rollbarWrappedError&&(e[4]||(e[4]=r._rollbarWrappedError),e[5]||(e[5]=r._rollbarWrappedError._rollbarContext),r._rollbarWrappedError=null),o.handleUncaughtException.apply(o,e),n&&n.apply(r,e)}function t(r,o,n){if(r){"function"==typeof r._rollbarURH&&r._rollbarURH.belongsToShim&&r.removeEventListener("unhandledrejection",r._rollbarURH);var e=function(r){var n=r.reason,e=r.promise,t=r.detail;!n&&t&&(n=t.reason,e=t.promise),o&&o.handleUnhandledRejection&&o.handleUnhandledRejection(n,e)};e.belongsToShim=n,r._rollbarURH=e,r.addEventListener("unhandledrejection",e)}}function a(r,o,n){if(r){var e,t,a="EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(",");for(e=0;e<a.length;++e)t=a[e],r[t]&&r[t].prototype&&l(o,r[t].prototype,n)}}function l(r,o,n){if(o.hasOwnProperty&&o.hasOwnProperty("addEventListener")){for(var e=o.addEventListener;e._rollbarOldAdd&&e.belongsToShim;)e=e._rollbarOldAdd;var t=function(o,n,t){e.call(this,o,r.wrap(n),t)};t._rollbarOldAdd=e,t.belongsToShim=n,o.addEventListener=t;for(var a=o.removeEventListener;a._rollbarOldRemove&&a.belongsToShim;)a=a._rollbarOldRemove;var l=function(r,o,n){a.call(this,r,o&&o._wrapped||o,n)};l._rollbarOldRemove=a,l.belongsToShim=n,o.removeEventListener=l}}r.exports={captureUncaughtExceptions:n,captureUnhandledRejections:t,wrapGlobals:a}},function(r,o){"use strict";function n(r,o){this.impl=r(o,this),this.options=o,e(n.prototype)}function e(r){for(var o=function(r){return function(){var o=Array.prototype.slice.call(arguments,0);if(this.impl[r])return this.impl[r].apply(this.impl,o)}},n="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleUnhandledRejection,_createItem,wrap,loadFull,shimId".split(","),e=0;e<n.length;e++)r[n[e]]=o(n[e])}n.prototype._swapAndProcessMessages=function(r,o){this.impl=r(this.options);for(var n,e,t;n=o.shift();)e=n.method,t=n.args,this[e]&&"function"==typeof this[e]&&this[e].apply(this,t);return this},r.exports=n},function(r,o){"use strict";r.exports=function(r){return function(o){if(!o&&!window._rollbarInitialized){r=r||{};for(var n,e,t=r.globalAlias||"Rollbar",a=window.rollbar,l=function(r){return new a(r)},i=0;n=window._rollbarShims[i++];)e||(e=n.handler),n.handler._swapAndProcessMessages(l,n.messages);window[t]=e,window._rollbarInitialized=!0}}}}]);
|
data/docs/configuration.md
CHANGED
@@ -217,7 +217,7 @@ Sets the number of retries cause timeouts on the POST request.
|
|
217
217
|
### root
|
218
218
|
|
219
219
|
Set the server root, all stack frames outside that root are considered
|
220
|
-
'non-project' frames. Also used to setup
|
220
|
+
'non-project' frames. Also used to setup GitHub linking.
|
221
221
|
|
222
222
|
### safely
|
223
223
|
|
@@ -294,6 +294,12 @@ installed, uses `girl_friday`, otherwise defaults to `Thread`.
|
|
294
294
|
When `true` indicates you wish to send data to Rollbar with `eventmachine`.
|
295
295
|
Won't work unless `eventmachine` is installed.
|
296
296
|
|
297
|
+
### use_exception_level_filters_default
|
298
|
+
|
299
|
+
**Default** `false`
|
300
|
+
|
301
|
+
When `true` the notifier will use the `exception_level_filters` when reporting. It can be overriden using `:use_exception_level_filters` option. see [Exception level filters](https://github.com/rollbar/rollbar-gem#exception-level-filters)
|
302
|
+
|
297
303
|
### web_base
|
298
304
|
|
299
305
|
**Default** `'https://rollbar.com'`
|
data/gemfiles/rails30.gemfile
CHANGED
@@ -15,7 +15,13 @@ gem 'rspec-rails', '>= 2.14.0'
|
|
15
15
|
gem 'celluloid', '< 0.17.0' if RUBY_VERSION == '1.9.2'
|
16
16
|
|
17
17
|
gem 'oj', '~> 2.12.14' unless is_jruby
|
18
|
-
|
18
|
+
if RUBY_VERSION > '1.8.7'
|
19
|
+
if RUBY_VERSION < '2.2.2'
|
20
|
+
gem 'sidekiq', '>= 2.13.0', '< 5.0'
|
21
|
+
else
|
22
|
+
gem 'sidekiq', '>= 2.13.0'
|
23
|
+
end
|
24
|
+
end
|
19
25
|
|
20
26
|
platforms :rbx do
|
21
27
|
gem 'minitest'
|
data/gemfiles/rails31.gemfile
CHANGED
@@ -43,7 +43,11 @@ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0')
|
|
43
43
|
gem 'sidekiq', '< 2.13.0'
|
44
44
|
else
|
45
45
|
gem 'webmock', :require => false
|
46
|
-
|
46
|
+
if RUBY_VERSION < '2.2.2'
|
47
|
+
gem 'sidekiq', '>= 2.13.0', '< 5.0'
|
48
|
+
else
|
49
|
+
gem 'sidekiq', '>= 2.13.0'
|
50
|
+
end
|
47
51
|
end
|
48
52
|
|
49
53
|
gem 'resque'
|
data/gemfiles/rails32.gemfile
CHANGED
@@ -15,7 +15,11 @@ gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
|
|
15
15
|
gem 'test-unit'
|
16
16
|
|
17
17
|
gem 'oj', '~> 2.12.14' unless is_jruby
|
18
|
-
|
18
|
+
if RUBY_VERSION > '1.8.7' && RUBY_VERSION < '2.2.2'
|
19
|
+
gem 'sidekiq', '>= 2.13.0', '< 5.0'
|
20
|
+
else
|
21
|
+
gem 'sidekiq', '>= 2.13.0'
|
22
|
+
end
|
19
23
|
|
20
24
|
platforms :rbx do
|
21
25
|
gem 'minitest'
|
data/gemfiles/rails40.gemfile
CHANGED
@@ -15,7 +15,11 @@ gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
|
|
15
15
|
gem 'test-unit'
|
16
16
|
|
17
17
|
gem 'oj', '~> 2.12.14' unless is_jruby
|
18
|
-
|
18
|
+
if RUBY_VERSION > '1.8.7' && RUBY_VERSION < '2.2.2'
|
19
|
+
gem 'sidekiq', '>= 2.13.0', '< 5.0'
|
20
|
+
else
|
21
|
+
gem 'sidekiq', '>= 2.13.0'
|
22
|
+
end
|
19
23
|
|
20
24
|
platforms :rbx do
|
21
25
|
gem 'minitest'
|
data/gemfiles/rails41.gemfile
CHANGED
@@ -13,7 +13,11 @@ gem 'rspec-rails', '~> 3.4'
|
|
13
13
|
gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
|
14
14
|
|
15
15
|
gem 'oj', '~> 2.12.14' unless is_jruby
|
16
|
-
|
16
|
+
if RUBY_VERSION > '1.8.7' && RUBY_VERSION < '2.2.2'
|
17
|
+
gem 'sidekiq', '>= 2.13.0', '< 5.0'
|
18
|
+
else
|
19
|
+
gem 'sidekiq', '>= 2.13.0'
|
20
|
+
end
|
17
21
|
|
18
22
|
platforms :rbx do
|
19
23
|
gem 'minitest'
|
data/gemfiles/rails42.gemfile
CHANGED
@@ -13,7 +13,11 @@ gem 'rake'
|
|
13
13
|
gem 'rspec-rails', '~> 3.4'
|
14
14
|
gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
|
15
15
|
|
16
|
-
|
16
|
+
if RUBY_VERSION > '1.8.7' && RUBY_VERSION < '2.2.2'
|
17
|
+
gem 'sidekiq', '>= 2.13.0', '< 5.0'
|
18
|
+
else
|
19
|
+
gem 'sidekiq', '>= 2.13.0'
|
20
|
+
end
|
17
21
|
|
18
22
|
platforms :rbx do
|
19
23
|
gem 'minitest'
|
data/gemfiles/rails50.gemfile
CHANGED
@@ -19,7 +19,11 @@ gem 'rspec-mocks', '~> 3.5.0.beta3'
|
|
19
19
|
gem 'rake'
|
20
20
|
|
21
21
|
gem 'oj', '~> 2.12.14' unless is_jruby
|
22
|
-
|
22
|
+
if RUBY_VERSION > '1.8.7' && RUBY_VERSION < '2.2.2'
|
23
|
+
gem 'sidekiq', '>= 2.13.0', '< 5.0'
|
24
|
+
else
|
25
|
+
gem 'sidekiq', '>= 2.13.0'
|
26
|
+
end
|
23
27
|
|
24
28
|
platforms :rbx do
|
25
29
|
gem 'minitest'
|
@@ -6,7 +6,6 @@ is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && 'jruby' == RUBY_
|
|
6
6
|
|
7
7
|
gem 'appraisal', '= 1.0.2'
|
8
8
|
gem 'activerecord-jdbcsqlite3-adapter', :platform => :jruby
|
9
|
-
gem 'celluloid', '< 0.17.0' if RUBY_VERSION == '1.9.2'
|
10
9
|
gem 'hitimes', '< 1.2.2'
|
11
10
|
gem 'jruby-openssl', :platform => :jruby
|
12
11
|
gem 'rails', '3.0.20'
|
@@ -15,7 +14,9 @@ gem 'rspec-rails', '>= 2.14.0'
|
|
15
14
|
gem 'sqlite3', :platform => [:ruby, :mswin, :mingw]
|
16
15
|
|
17
16
|
gem 'oj', '~> 2.12.14' unless is_jruby
|
18
|
-
|
17
|
+
if RUBY_VERSION > '1.8.7' && RUBY_VERSION < '2.2.2'
|
18
|
+
gem 'sidekiq', '>= 2.13.0', '< 5.0'
|
19
|
+
end
|
19
20
|
|
20
21
|
platforms :rbx do
|
21
22
|
gem 'minitest'
|
@@ -25,6 +26,7 @@ platforms :rbx do
|
|
25
26
|
end
|
26
27
|
|
27
28
|
if RUBY_VERSION.start_with?('1.9')
|
29
|
+
gem 'celluloid', '< 0.17.0'
|
28
30
|
gem 'sucker_punch', '~> 1.0'
|
29
31
|
elsif RUBY_VERSION.start_with?('2')
|
30
32
|
gem 'sucker_punch', '~> 2.0'
|
@@ -10,10 +10,10 @@ module Rollbar
|
|
10
10
|
source_root File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
|
11
11
|
|
12
12
|
def create_initializer
|
13
|
-
say
|
13
|
+
say 'creating initializer...'
|
14
14
|
if access_token_configured?
|
15
15
|
say "It looks like you've already configured Rollbar."
|
16
|
-
say
|
16
|
+
say 'To re-create the config file, remove it first: config/initializers/rollbar.rb'
|
17
17
|
exit
|
18
18
|
end
|
19
19
|
|
@@ -21,27 +21,26 @@ module Rollbar
|
|
21
21
|
require 'ey_config'
|
22
22
|
rescue LoadError
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
if defined? EY::Config
|
26
|
-
|
26
|
+
say 'Access token will be read from Engine Yard configuration'
|
27
27
|
else
|
28
28
|
if access_token === :use_env_sentinel
|
29
|
-
say
|
29
|
+
say 'Generator run without an access token; assuming you want to configure using an environment variable.'
|
30
30
|
say "You'll need to add an environment variable ROLLBAR_ACCESS_TOKEN with your access token:"
|
31
31
|
say "\n$ export ROLLBAR_ACCESS_TOKEN=yourtokenhere"
|
32
32
|
say "\nIf that's not what you wanted to do:"
|
33
33
|
say "\n$ rm config/initializers/rollbar.rb"
|
34
|
-
say
|
34
|
+
say '$ rails generate rollbar yourtokenhere'
|
35
35
|
say "\n"
|
36
36
|
else
|
37
|
-
say
|
37
|
+
say 'access token: ' << access_token
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
template 'initializer.rb', 'config/initializers/rollbar.rb',
|
42
|
-
:assigns => { :access_token => access_token_expr }
|
41
|
+
template 'initializer.rb', 'config/initializers/rollbar.rb', :assigns => { :access_token => access_token_expr }
|
43
42
|
|
44
|
-
# TODO run rake test task
|
43
|
+
# TODO: run rake test task
|
45
44
|
end
|
46
45
|
|
47
46
|
def access_token_expr
|
data/lib/rails/rollbar_runner.rb
CHANGED
@@ -38,7 +38,7 @@ module Rails
|
|
38
38
|
def eval_runner
|
39
39
|
string_to_eval = File.read(runner_path)
|
40
40
|
|
41
|
-
::Rails.module_eval(<<-EOL,__FILE__,__LINE__ + 2)
|
41
|
+
::Rails.module_eval(<<-EOL, __FILE__, __LINE__ + 2)
|
42
42
|
#{string_to_eval}
|
43
43
|
EOL
|
44
44
|
end
|
@@ -68,5 +68,3 @@ module Rails
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
end
|
71
|
-
|
72
|
-
|
data/lib/rollbar.rb
CHANGED
data/lib/rollbar/capistrano3.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
load File.expand_path(
|
1
|
+
load File.expand_path('../tasks/rollbar.cap', __FILE__)
|
@@ -55,6 +55,7 @@ module Rollbar
|
|
55
55
|
attr_accessor :web_base
|
56
56
|
attr_accessor :write_to_file
|
57
57
|
attr_reader :send_extra_frame_data
|
58
|
+
attr_accessor :use_exception_level_filters_default
|
58
59
|
|
59
60
|
attr_reader :project_gem_paths
|
60
61
|
|
@@ -74,7 +75,7 @@ module Rollbar
|
|
74
75
|
@disable_core_monkey_patch = false
|
75
76
|
@disable_rack_monkey_patch = false
|
76
77
|
@dj_threshold = 0
|
77
|
-
@enabled = nil
|
78
|
+
@enabled = nil # set to true when configure is called
|
78
79
|
@endpoint = DEFAULT_ENDPOINT
|
79
80
|
@environment = nil
|
80
81
|
@exception_level_filters = {
|
@@ -100,7 +101,7 @@ module Rollbar
|
|
100
101
|
@js_options = {}
|
101
102
|
@scrub_fields = [:passwd, :password, :password_confirmation, :secret,
|
102
103
|
:confirm_password, :password_confirmation, :secret_token,
|
103
|
-
:api_key, :access_token
|
104
|
+
:api_key, :access_token]
|
104
105
|
@scrub_user = true
|
105
106
|
@scrub_password = true
|
106
107
|
@randomize_scrub_length = true
|
@@ -116,6 +117,7 @@ module Rollbar
|
|
116
117
|
@write_to_file = false
|
117
118
|
@send_extra_frame_data = :none
|
118
119
|
@project_gem_paths = []
|
120
|
+
@use_exception_level_filters_default = false
|
119
121
|
end
|
120
122
|
|
121
123
|
def initialize_copy(orig)
|
@@ -170,7 +172,7 @@ module Rollbar
|
|
170
172
|
end
|
171
173
|
|
172
174
|
def use_sidekiq=(value)
|
173
|
-
deprecation_message =
|
175
|
+
deprecation_message = '#use_sidekiq=(value) has been deprecated in favor of #use_sidekiq(options = {}). Please update your rollbar configuration.'
|
174
176
|
defined?(ActiveSupport) ? ActiveSupport::Deprecation.warn(deprecation_message) : puts(deprecation_message)
|
175
177
|
|
176
178
|
value.is_a?(Hash) ? use_sidekiq(value) : use_sidekiq
|
@@ -189,7 +191,7 @@ module Rollbar
|
|
189
191
|
end
|
190
192
|
|
191
193
|
def use_sucker_punch=(value)
|
192
|
-
deprecation_message =
|
194
|
+
deprecation_message = '#use_sucker_punch=(value) has been deprecated in favor of #use_sucker_punch. Please update your rollbar configuration.'
|
193
195
|
defined?(ActiveSupport) ? ActiveSupport::Deprecation.warn(deprecation_message) : puts(deprecation_message)
|
194
196
|
|
195
197
|
use_sucker_punch
|
@@ -203,9 +205,7 @@ module Rollbar
|
|
203
205
|
def project_gems=(gems)
|
204
206
|
@project_gem_paths = gems.map do |name|
|
205
207
|
found = Gem::Specification.each.select { |spec| name === spec.name }
|
206
|
-
if found.empty?
|
207
|
-
puts "[Rollbar] No gems found matching #{name.inspect}"
|
208
|
-
end
|
208
|
+
puts "[Rollbar] No gems found matching #{name.inspect}" if found.empty?
|
209
209
|
found
|
210
210
|
end.flatten.uniq.map(&:gem_dir)
|
211
211
|
end
|
@@ -10,9 +10,9 @@ module Rollbar
|
|
10
10
|
env['rollbar.exception_uuid'] = exception_data[:uuid]
|
11
11
|
Rollbar.log_debug "[Rollbar] Exception uuid saved in env: #{exception_data[:uuid]}"
|
12
12
|
elsif exception_data == 'disabled'
|
13
|
-
Rollbar.log_debug
|
13
|
+
Rollbar.log_debug '[Rollbar] Exception not reported because Rollbar is disabled'
|
14
14
|
elsif exception_data == 'ignored'
|
15
|
-
Rollbar.log_debug
|
15
|
+
Rollbar.log_debug '[Rollbar] Exception not reported because it was ignored'
|
16
16
|
end
|
17
17
|
rescue => e
|
18
18
|
Rollbar.log_warning "[Rollbar] Exception while reporting exception to Rollbar: #{e.message}"
|
data/lib/rollbar/item.rb
CHANGED
data/lib/rollbar/item/frame.rb
CHANGED
@@ -105,7 +105,7 @@ module Rollbar
|
|
105
105
|
to_line = lineno - 2
|
106
106
|
from_line = [to_line - MAX_CONTEXT_LENGTH + 1, 0].max
|
107
107
|
|
108
|
-
file_lines[from_line, (to_line - from_line + 1)].select
|
108
|
+
file_lines[from_line, (to_line - from_line + 1)].select { |line| line && !line.empty? }
|
109
109
|
end
|
110
110
|
end
|
111
111
|
end
|
data/lib/rollbar/json.rb
CHANGED
data/lib/rollbar/json/oj.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
require 'rack'
|
2
2
|
require 'rack/response'
|
3
3
|
|
4
|
+
require 'rollbar/request_data_extractor'
|
5
|
+
|
4
6
|
module Rollbar
|
5
7
|
module Middleware
|
6
8
|
# Middleware to inject the rollbar.js snippet into a 200 html response
|
7
9
|
class Js
|
10
|
+
include Rollbar::RequestDataExtractor
|
11
|
+
|
8
12
|
attr_reader :app
|
9
13
|
attr_reader :config
|
10
14
|
|
@@ -103,7 +107,20 @@ module Rollbar
|
|
103
107
|
end
|
104
108
|
|
105
109
|
def config_js_tag(env)
|
106
|
-
|
110
|
+
js_config = config[:options].dup
|
111
|
+
|
112
|
+
add_person_data(js_config, env)
|
113
|
+
|
114
|
+
script_tag("var _rollbarConfig = #{js_config.to_json};", env)
|
115
|
+
end
|
116
|
+
|
117
|
+
def add_person_data(js_config, env)
|
118
|
+
person_data = extract_person_data_from_controller(env)
|
119
|
+
|
120
|
+
return if person_data && person_data.empty?
|
121
|
+
|
122
|
+
js_config[:payload] ||= {}
|
123
|
+
js_config[:payload][:person] = person_data if person_data
|
107
124
|
end
|
108
125
|
|
109
126
|
def snippet_js_tag(env)
|
@@ -60,7 +60,7 @@ module Rollbar
|
|
60
60
|
|
61
61
|
def person_data_proc(env)
|
62
62
|
block = proc { extract_person_data_from_controller(env) }
|
63
|
-
return block unless
|
63
|
+
return block unless defined?(ActiveRecord::Base) && ActiveRecord::Base.connected?
|
64
64
|
|
65
65
|
proc { ActiveRecord::Base.connection_pool.with_connection(&block) }
|
66
66
|
end
|
data/lib/rollbar/notifier.rb
CHANGED
@@ -123,7 +123,7 @@ module Rollbar
|
|
123
123
|
return 'disabled' unless configuration.enabled
|
124
124
|
|
125
125
|
message, exception, extra = extract_arguments(args)
|
126
|
-
use_exception_level_filters = extra
|
126
|
+
use_exception_level_filters = use_exception_level_filters?(extra)
|
127
127
|
|
128
128
|
return 'ignored' if ignored?(exception, use_exception_level_filters)
|
129
129
|
|
@@ -291,6 +291,14 @@ module Rollbar
|
|
291
291
|
|
292
292
|
private
|
293
293
|
|
294
|
+
def use_exception_level_filters?(options)
|
295
|
+
option_value = options && options.delete(:use_exception_level_filters)
|
296
|
+
|
297
|
+
return option_value unless option_value.nil?
|
298
|
+
|
299
|
+
configuration.use_exception_level_filters_default
|
300
|
+
end
|
301
|
+
|
294
302
|
def call_before_process(options)
|
295
303
|
options = {
|
296
304
|
:level => options[:level],
|
@@ -23,9 +23,9 @@ Rollbar.plugins.define('goalie') do
|
|
23
23
|
env['rollbar.exception_uuid'] = exception_data[:uuid]
|
24
24
|
Rollbar.log_info "[Rollbar] Exception uuid saved in env: #{exception_data[:uuid]}"
|
25
25
|
elsif exception_data == 'disabled'
|
26
|
-
Rollbar.log_info
|
26
|
+
Rollbar.log_info '[Rollbar] Exception not reported because Rollbar is disabled'
|
27
27
|
elsif exception_data == 'ignored'
|
28
|
-
Rollbar.log_info
|
28
|
+
Rollbar.log_info '[Rollbar] Exception not reported because it was ignored'
|
29
29
|
end
|
30
30
|
|
31
31
|
# now continue as normal
|
@@ -39,8 +39,8 @@ module Rollbar
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def self.skip_report?(msg_or_context, e)
|
42
|
-
msg_or_context.is_a?(Hash) && msg_or_context[
|
43
|
-
msg_or_context[
|
42
|
+
msg_or_context.is_a?(Hash) && msg_or_context['retry'] &&
|
43
|
+
msg_or_context['retry_count'] && msg_or_context['retry_count'] < ::Rollbar.configuration.sidekiq_threshold
|
44
44
|
end
|
45
45
|
|
46
46
|
def call(worker, msg, queue)
|
data/lib/rollbar/rails.rb
CHANGED
@@ -31,7 +31,7 @@ module Rollbar
|
|
31
31
|
post_params = scrub_params(rollbar_post_params(rack_req), sensitive_params)
|
32
32
|
raw_body_params = scrub_params(mergeable_raw_body_params(rack_req), sensitive_params)
|
33
33
|
cookies = scrub_params(rollbar_request_cookies(rack_req), sensitive_params)
|
34
|
-
session = scrub_params(rollbar_request_session(
|
34
|
+
session = scrub_params(rollbar_request_session(env), sensitive_params)
|
35
35
|
route_params = scrub_params(rollbar_route_params(env), sensitive_params)
|
36
36
|
|
37
37
|
url = scrub_url(rollbar_url(env), sensitive_params)
|
@@ -112,7 +112,9 @@ module Rollbar
|
|
112
112
|
forwarded_proto = env['HTTP_X_FORWARDED_PROTO'] || env['rack.url_scheme'] || ''
|
113
113
|
scheme = forwarded_proto.split(',').first
|
114
114
|
|
115
|
-
|
115
|
+
forwarded_host = env['HTTP_X_FORWARDED_HOST'] || env['HTTP_HOST'] || env['SERVER_NAME']
|
116
|
+
host = forwarded_host && forwarded_host.split(',').first.strip
|
117
|
+
|
116
118
|
path = env['ORIGINAL_FULLPATH'] || env['REQUEST_URI']
|
117
119
|
unless path.nil? || path.empty?
|
118
120
|
path = '/' + path.to_s if path.to_s.slice(0, 1) != '/'
|
@@ -201,8 +203,8 @@ module Rollbar
|
|
201
203
|
end
|
202
204
|
end
|
203
205
|
|
204
|
-
def rollbar_request_session(
|
205
|
-
session =
|
206
|
+
def rollbar_request_session(env)
|
207
|
+
session = env.fetch('rack.session', {})
|
206
208
|
|
207
209
|
session.to_hash
|
208
210
|
rescue
|
data/lib/rollbar/truncation.rb
CHANGED
data/lib/rollbar/util.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'rollbar/util/hash'
|
2
2
|
|
3
|
-
|
4
3
|
module Rollbar
|
5
4
|
module Util
|
6
5
|
def self.iterate_and_update(obj, block)
|
@@ -28,9 +27,7 @@ module Rollbar
|
|
28
27
|
obj[k] = block.call(v)
|
29
28
|
end
|
30
29
|
|
31
|
-
if new_key != k
|
32
|
-
key_updates.push([k, new_key])
|
33
|
-
end
|
30
|
+
key_updates.push([k, new_key]) if new_key != k
|
34
31
|
end
|
35
32
|
|
36
33
|
key_updates.each do |old_key, new_key|
|
@@ -53,12 +50,12 @@ module Rollbar
|
|
53
50
|
def self.deep_copy(obj)
|
54
51
|
if obj.is_a?(::Hash)
|
55
52
|
result = obj.clone
|
56
|
-
obj.each {|k, v| result[k] = deep_copy(v)}
|
53
|
+
obj.each { |k, v| result[k] = deep_copy(v)}
|
57
54
|
result
|
58
55
|
elsif obj.is_a?(Array)
|
59
56
|
result = obj.clone
|
60
57
|
result.clear
|
61
|
-
obj.each {|v| result << deep_copy(v)}
|
58
|
+
obj.each { |v| result << deep_copy(v)}
|
62
59
|
result
|
63
60
|
else
|
64
61
|
obj
|
@@ -85,11 +82,9 @@ module Rollbar
|
|
85
82
|
def self.truncate(str, length)
|
86
83
|
ellipsis = '...'
|
87
84
|
|
88
|
-
if str.length <= length
|
89
|
-
return str
|
90
|
-
end
|
85
|
+
return str if str.length <= length || str.length <= ellipsis.length
|
91
86
|
|
92
|
-
str.unpack(
|
87
|
+
str.unpack('U*').slice(0, length - ellipsis.length).pack('U*') + ellipsis
|
93
88
|
end
|
94
89
|
|
95
90
|
def self.uuid_rollbar_url(data, configuration)
|
data/lib/rollbar/version.rb
CHANGED
data/lib/tasks/tasks.rake
CHANGED
@@ -2,9 +2,9 @@ require 'fileutils'
|
|
2
2
|
|
3
3
|
desc 'Update rollbar.js snippet'
|
4
4
|
task :update_snippet do
|
5
|
-
input_path = File.expand_path(
|
6
|
-
output_path = File.expand_path(
|
7
|
-
output_dir = File.expand_path(
|
5
|
+
input_path = File.expand_path('../../../rollbar.js/dist/rollbar.snippet.js', __FILE__)
|
6
|
+
output_path = File.expand_path('../../../data/rollbar.snippet.js', __FILE__)
|
7
|
+
output_dir = File.expand_path('../../../data/', __FILE__)
|
8
8
|
|
9
9
|
$stdout.write("Copying #{input_path} to #{output_path}\n")
|
10
10
|
|
data/rollbar.gemspec
CHANGED
@@ -1,22 +1,21 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
require File.expand_path('../lib/rollbar/version', __FILE__)
|
3
3
|
|
4
|
-
|
5
4
|
Gem::Specification.new do |gem|
|
6
5
|
is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && 'jruby' == RUBY_ENGINE)
|
7
6
|
|
8
|
-
gem.authors = [
|
9
|
-
gem.email = [
|
7
|
+
gem.authors = ['Rollbar, Inc.']
|
8
|
+
gem.email = ['support@rollbar.com']
|
10
9
|
gem.description = %q{Easy and powerful exception tracking for Ruby}
|
11
10
|
gem.executables = ['rollbar-rails-runner']
|
12
11
|
gem.summary = %q{Reports exceptions to Rollbar}
|
13
|
-
gem.homepage =
|
12
|
+
gem.homepage = 'https://rollbar.com'
|
14
13
|
gem.license = 'MIT'
|
15
14
|
|
16
15
|
gem.files = `git ls-files`.split($\)
|
17
16
|
gem.test_files = gem.files.grep(%r{^(spec)/})
|
18
|
-
gem.name =
|
19
|
-
gem.require_paths = [
|
17
|
+
gem.name = 'rollbar'
|
18
|
+
gem.require_paths = ['lib']
|
20
19
|
gem.version = Rollbar::VERSION
|
21
20
|
|
22
21
|
gem.add_runtime_dependency 'multi_json'
|
@@ -230,6 +230,57 @@ END
|
|
230
230
|
allow(subject).to receive(:add_js).and_raise(StandardError.new)
|
231
231
|
end
|
232
232
|
end
|
233
|
+
|
234
|
+
context 'with person data' do
|
235
|
+
let(:body) { [html] }
|
236
|
+
let(:status) { 200 }
|
237
|
+
let(:headers) do
|
238
|
+
{ 'Content-Type' => content_type }
|
239
|
+
end
|
240
|
+
let(:env) do
|
241
|
+
{
|
242
|
+
'rollbar.person_data' => {
|
243
|
+
:id => 100,
|
244
|
+
:username => 'foo',
|
245
|
+
:email => 'foo@bar.com'
|
246
|
+
}
|
247
|
+
}
|
248
|
+
end
|
249
|
+
let(:expected_js_options) do
|
250
|
+
{
|
251
|
+
:foo => :bar,
|
252
|
+
:payload => {
|
253
|
+
:person => {
|
254
|
+
:id => 100,
|
255
|
+
:username => 'foo',
|
256
|
+
:email => 'foo@bar.com'
|
257
|
+
}
|
258
|
+
}
|
259
|
+
}
|
260
|
+
end
|
261
|
+
|
262
|
+
it 'adds the person data to the configuration' do
|
263
|
+
_, _, response = subject.call(env)
|
264
|
+
new_body = response.body.join
|
265
|
+
|
266
|
+
expect(new_body).to include(expected_js_options.to_json)
|
267
|
+
end
|
268
|
+
|
269
|
+
context 'when the person data is nil' do
|
270
|
+
let(:env) do
|
271
|
+
{
|
272
|
+
'rollbar.person_data' => nil
|
273
|
+
}
|
274
|
+
end
|
275
|
+
|
276
|
+
it 'works correctly and doesnt add anything about person data' do
|
277
|
+
_, _, response = subject.call(env)
|
278
|
+
new_body = response.body.join
|
279
|
+
|
280
|
+
expect(new_body).not_to include('person')
|
281
|
+
end
|
282
|
+
end
|
283
|
+
end
|
233
284
|
end
|
234
285
|
|
235
286
|
context 'having the config disabled', :add_js => false do
|
data/spec/rollbar_spec.rb
CHANGED
@@ -536,6 +536,92 @@ describe Rollbar do
|
|
536
536
|
Rollbar.error(exception).should == 'disabled'
|
537
537
|
end
|
538
538
|
|
539
|
+
context 'using configuration.use_exception_level_filters_default' do
|
540
|
+
before do
|
541
|
+
Rollbar.configure do |config|
|
542
|
+
config.use_exception_level_filters_default = true
|
543
|
+
end
|
544
|
+
end
|
545
|
+
|
546
|
+
context 'without use_exception_level_filters argument' do
|
547
|
+
it 'sends the correct filtered level' do
|
548
|
+
Rollbar.configure do |config|
|
549
|
+
config.exception_level_filters = { 'NameError' => 'warning' }
|
550
|
+
end
|
551
|
+
|
552
|
+
Rollbar.error(exception)
|
553
|
+
|
554
|
+
expect(Rollbar.last_report[:level]).to be_eql('warning')
|
555
|
+
end
|
556
|
+
|
557
|
+
it 'ignore ignored exception classes' do
|
558
|
+
Rollbar.configure do |config|
|
559
|
+
config.exception_level_filters = { 'NameError' => 'ignore' }
|
560
|
+
end
|
561
|
+
|
562
|
+
logger_mock.should_not_receive(:info)
|
563
|
+
logger_mock.should_not_receive(:warn)
|
564
|
+
logger_mock.should_not_receive(:error)
|
565
|
+
|
566
|
+
Rollbar.error(exception)
|
567
|
+
end
|
568
|
+
|
569
|
+
it 'should not use the filters if overriden at log site' do
|
570
|
+
Rollbar.configure do |config|
|
571
|
+
config.exception_level_filters = { 'NameError' => 'ignore' }
|
572
|
+
end
|
573
|
+
|
574
|
+
Rollbar.error(exception, :use_exception_level_filters => false)
|
575
|
+
|
576
|
+
expect(Rollbar.last_report[:level]).to be_eql('error')
|
577
|
+
end
|
578
|
+
end
|
579
|
+
end
|
580
|
+
|
581
|
+
context 'using :use_exception_level_filters option as true' do
|
582
|
+
it 'sends the correct filtered level' do
|
583
|
+
Rollbar.configure do |config|
|
584
|
+
config.exception_level_filters = { 'NameError' => 'warning' }
|
585
|
+
end
|
586
|
+
|
587
|
+
Rollbar.error(exception, :use_exception_level_filters => true)
|
588
|
+
expect(Rollbar.last_report[:level]).to be_eql('warning')
|
589
|
+
end
|
590
|
+
|
591
|
+
it 'ignore ignored exception classes' do
|
592
|
+
Rollbar.configure do |config|
|
593
|
+
config.exception_level_filters = { 'NameError' => 'ignore' }
|
594
|
+
end
|
595
|
+
|
596
|
+
logger_mock.should_not_receive(:info)
|
597
|
+
logger_mock.should_not_receive(:warn)
|
598
|
+
logger_mock.should_not_receive(:error)
|
599
|
+
|
600
|
+
Rollbar.error(exception, :use_exception_level_filters => true)
|
601
|
+
end
|
602
|
+
|
603
|
+
context 'using :use_exception_level_filters option as false' do
|
604
|
+
it 'sends the correct filtered level' do
|
605
|
+
Rollbar.configure do |config|
|
606
|
+
config.exception_level_filters = { 'NameError' => 'warning' }
|
607
|
+
end
|
608
|
+
|
609
|
+
Rollbar.error(exception, :use_exception_level_filters => false)
|
610
|
+
expect(Rollbar.last_report[:level]).to be_eql('error')
|
611
|
+
end
|
612
|
+
|
613
|
+
it 'ignore ignored exception classes' do
|
614
|
+
Rollbar.configure do |config|
|
615
|
+
config.exception_level_filters = { 'NameError' => 'ignore' }
|
616
|
+
end
|
617
|
+
|
618
|
+
Rollbar.error(exception, :use_exception_level_filters => false)
|
619
|
+
|
620
|
+
expect(Rollbar.last_report[:level]).to be_eql('error')
|
621
|
+
end
|
622
|
+
end
|
623
|
+
end
|
624
|
+
|
539
625
|
context 'using :use_exception_level_filters option as true' do
|
540
626
|
it 'sends the correct filtered level' do
|
541
627
|
Rollbar.configure do |config|
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rollbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rollbar, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
description: Easy and powerful exception tracking for Ruby
|
@@ -32,11 +32,11 @@ executables:
|
|
32
32
|
extensions: []
|
33
33
|
extra_rdoc_files: []
|
34
34
|
files:
|
35
|
-
- .codeclimate.yml
|
36
|
-
- .gitignore
|
37
|
-
- .gitmodules
|
38
|
-
- .rubocop.yml
|
39
|
-
- .travis.yml
|
35
|
+
- ".codeclimate.yml"
|
36
|
+
- ".gitignore"
|
37
|
+
- ".gitmodules"
|
38
|
+
- ".rubocop.yml"
|
39
|
+
- ".travis.yml"
|
40
40
|
- Appraisals
|
41
41
|
- CHANGELOG.md
|
42
42
|
- Gemfile
|
@@ -270,17 +270,17 @@ require_paths:
|
|
270
270
|
- lib
|
271
271
|
required_ruby_version: !ruby/object:Gem::Requirement
|
272
272
|
requirements:
|
273
|
-
- -
|
273
|
+
- - ">="
|
274
274
|
- !ruby/object:Gem::Version
|
275
275
|
version: '0'
|
276
276
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
277
277
|
requirements:
|
278
|
-
- -
|
278
|
+
- - ">="
|
279
279
|
- !ruby/object:Gem::Version
|
280
280
|
version: '0'
|
281
281
|
requirements: []
|
282
282
|
rubyforge_project:
|
283
|
-
rubygems_version: 2.
|
283
|
+
rubygems_version: 2.2.3
|
284
284
|
signing_key:
|
285
285
|
specification_version: 4
|
286
286
|
summary: Reports exceptions to Rollbar
|