rollbar 3.3.2 → 3.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/README.md +23 -1
- data/data/rollbar.snippet.js +1 -1
- data/gemfiles/rails52.gemfile +1 -1
- data/gemfiles/rails60.gemfile +1 -1
- data/gemfiles/rails61.gemfile +1 -1
- data/gemfiles/rails70.gemfile +1 -1
- data/lib/rails/rollbar_runner.rb +1 -19
- data/lib/rollbar/configuration.rb +1 -1
- data/lib/rollbar/encoding.rb +2 -7
- data/lib/rollbar/middleware/js.rb +1 -0
- data/lib/rollbar/plugins/active_job.rb +4 -0
- data/lib/rollbar/version.rb +1 -1
- data/rollbar.gemspec +1 -1
- metadata +7 -4
- data/lib/rollbar/encoding/legacy_encoder.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95b3c3bbbb1f542faf2c67fff212c6a4eb7f0c4986c827fa14b8a64f9c98046c
|
4
|
+
data.tar.gz: 101b72445564b0b8f656f9194ff9140d0551bc556b5444bf69ef4f8c8be67d61
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f96379fee61b2b5dcef9f4f4c853c7602fba3ab51ec8e5ae8c95d1d034134e268cb2861842c68877b421c081979dec9b509d6b817e72bac26846d294f1b47f0
|
7
|
+
data.tar.gz: 7d0bd5d1c9ce8f0c0c1f49a1be17f99caa43bf8c15daab6b0674b423f5bdefe03cbc091b56657959a4575c0b1e64988e9f8155a1a8046e6724bb89c2e6fb8917
|
data/Gemfile
CHANGED
@@ -66,7 +66,7 @@ else
|
|
66
66
|
gem 'delayed_job', '~> 4.1', :require => false
|
67
67
|
end
|
68
68
|
gem 'generator_spec'
|
69
|
-
gem 'redis'
|
69
|
+
gem 'redis', '<= 4.8.0'
|
70
70
|
gem 'resque', '< 2.0.0'
|
71
71
|
gem 'rubocop', '1.15.0', :require => false # pin specific version, update manually
|
72
72
|
gem 'rubocop-performance', :require => false
|
data/README.md
CHANGED
@@ -1,13 +1,35 @@
|
|
1
|
-
|
1
|
+
<p align="center">
|
2
|
+
<img alt="rollbar-logo" src="https://user-images.githubusercontent.com/3300063/207964480-54eda665-d6fe-4527-ba51-b0ab3f41f10b.png" />
|
3
|
+
</p>
|
4
|
+
|
5
|
+
<h1 align="center">Rollbar Ruby Gem</h1>
|
6
|
+
|
7
|
+
<p align="center">
|
8
|
+
<strong>Proactively discover, predict, and resolve errors in real-time with <a href="https://rollbar.com">Rollbar’s</a> error monitoring platform. <a href="https://rollbar.com/signup/">Start tracking errors today</a>!</strong>
|
9
|
+
</p>
|
10
|
+
|
11
|
+
|
2
12
|
![Build Status](https://github.com/rollbar/rollbar-gem/workflows/Rollbar-gem%20CI/badge.svg?tag=latest)
|
3
13
|
[![Gem Version](https://badge.fury.io/rb/rollbar.svg)](http://badge.fury.io/rb/rollbar)
|
4
14
|
[![SemVer](https://api.dependabot.com/badges/compatibility_score?dependency-name=rollbar&package-manager=bundler&version-scheme=semver&target-version=latest)](https://dependabot.com/compatibility-score.html?dependency-name=rollbar&package-manager=bundler&version-scheme=semver&new-version=latest)
|
5
15
|
|
6
16
|
|
17
|
+
---
|
18
|
+
|
7
19
|
[Rollbar](https://rollbar.com) is a real-time exception reporting 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.
|
8
20
|
|
9
21
|
Rollbar-gem is the SDK for Ruby apps and includes support for apps using Rails, Sinatra, Rack, plain Ruby, and other frameworks.
|
10
22
|
|
23
|
+
|
24
|
+
## Key benefits of using Rollbar Ruby Gem are:
|
25
|
+
|
26
|
+
- **Frameworks:** Rollbar Ruby Gem supports popular Ruby frameworks such as <a href="https://docs.rollbar.com/docs/rails">Rails</a>, <a href="https://docs.rollbar.com/docs/sinatra">Sinatra</a>, <a href="https://docs.rollbar.com/docs/grape">Grape</a> and more.
|
27
|
+
- **Integrations:** Rollbar Ruby has integrations for <a href="https://docs.rollbar.com/docs/resque-integration">Resque</a>, <a href="https://docs.rollbar.com/docs/activejob-integration">ActiveJob</a>, <a href="https://docs.rollbar.com/docs/using-with-rollbar-agent">rollbar-agent</a>, <a href="https://docs.rollbar.com/docs/sidekiq-integration">Sidekiq</a> and more!
|
28
|
+
- **Automatic error grouping:** Rollbar aggregates Occurrences caused by the same error into Items that represent application issues. <a href="https://docs.rollbar.com/docs/grouping-occurrences">Learn more about reducing log noise</a>.
|
29
|
+
- **Advanced search:** Filter items by many different properties. <a href="https://docs.rollbar.com/docs/search-items">Learn more about search</a>.
|
30
|
+
- **Customizable notifications:** Rollbar supports several messaging and incident management tools where your team can get notified about errors and important events by real-time alerts. <a href="https://docs.rollbar.com/docs/notifications">Learn more about Rollbar notifications</a>.
|
31
|
+
|
32
|
+
|
11
33
|
## Setup Instructions
|
12
34
|
|
13
35
|
1. [Sign up for a Rollbar account](https://rollbar.com/signup)
|
data/data/rollbar.snippet.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
!function(r){var e={};function o(n){if(e[n])return e[n].exports;var t=e[n]={i:n,l:!1,exports:{}};return r[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.m=r,o.c=e,o.d=function(r,e,n){o.o(r,e)||Object.defineProperty(r,e,{enumerable:!0,get:n})},o.r=function(r){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},o.t=function(r,e){if(1&e&&(r=o(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var t in r)o.d(n,t,function(e){return r[e]}.bind(null,t));return n},o.n=function(r){var e=r&&r.__esModule?function(){return r.default}:function(){return r};return o.d(e,"a",e),e},o.o=function(r,e){return Object.prototype.hasOwnProperty.call(r,e)},o.p="",o(o.s=0)}([function(r,e,o){"use strict";var n=o(1),t=o(5);_rollbarConfig=_rollbarConfig||{},_rollbarConfig.rollbarJsUrl=_rollbarConfig.rollbarJsUrl||"https://cdn.rollbar.com/rollbarjs/refs/tags/v2.
|
1
|
+
!function(r){var e={};function o(n){if(e[n])return e[n].exports;var t=e[n]={i:n,l:!1,exports:{}};return r[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.m=r,o.c=e,o.d=function(r,e,n){o.o(r,e)||Object.defineProperty(r,e,{enumerable:!0,get:n})},o.r=function(r){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},o.t=function(r,e){if(1&e&&(r=o(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var t in r)o.d(n,t,function(e){return r[e]}.bind(null,t));return n},o.n=function(r){var e=r&&r.__esModule?function(){return r.default}:function(){return r};return o.d(e,"a",e),e},o.o=function(r,e){return Object.prototype.hasOwnProperty.call(r,e)},o.p="",o(o.s=0)}([function(r,e,o){"use strict";var n=o(1),t=o(5);_rollbarConfig=_rollbarConfig||{},_rollbarConfig.rollbarJsUrl=_rollbarConfig.rollbarJsUrl||"https://cdn.rollbar.com/rollbarjs/refs/tags/v2.26.1/rollbar.min.js",_rollbarConfig.async=void 0===_rollbarConfig.async||_rollbarConfig.async;var a=n.setupShim(window,_rollbarConfig),l=t(_rollbarConfig);window.rollbar=n.Rollbar,a.loadFull(window,document,!_rollbarConfig.async,_rollbarConfig,l)},function(r,e,o){"use strict";var n=o(2),t=o(3);function a(r){return function(){try{return r.apply(this,arguments)}catch(r){try{console.error("[Rollbar]: Internal error",r)}catch(r){}}}}var l=0;function i(r,e){this.options=r,this._rollbarOldOnError=null;var o=l++;this.shimId=function(){return o},"undefined"!=typeof window&&window._rollbarShims&&(window._rollbarShims[o]={handler:e,messages:[]})}var s=o(4),d=function(r,e){return new i(r,e)},c=function(r){return new s(d,r)};function u(r){return a((function(){var e=this,o=Array.prototype.slice.call(arguments,0),n={shim:e,method:r,args:o,ts:new Date};window._rollbarShims[this.shimId()].messages.push(n)}))}i.prototype.loadFull=function(r,e,o,n,t){var l=!1,i=e.createElement("script"),s=e.getElementsByTagName("script")[0],d=s.parentNode;i.crossOrigin="",i.src=n.rollbarJsUrl,o||(i.async=!0),i.onload=i.onreadystatechange=a((function(){if(!(l||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState)){i.onload=i.onreadystatechange=null;try{d.removeChild(i)}catch(r){}l=!0,function(){var e;if(void 0===r._rollbarDidLoad){e=new Error("rollbar.js did not load");for(var o,n,a,l,i=0;o=r._rollbarShims[i++];)for(o=o.messages||[];n=o.shift();)for(a=n.args||[],i=0;i<a.length;++i)if("function"==typeof(l=a[i])){l(e);break}}"function"==typeof t&&t(e)}()}})),d.insertBefore(i,s)},i.prototype.wrap=function(r,e,o){try{var n;if(n="function"==typeof e?e:function(){return e||{}},"function"!=typeof r)return r;if(r._isWrap)return r;if(!r._rollbar_wrapped&&(r._rollbar_wrapped=function(){o&&"function"==typeof o&&o.apply(this,arguments);try{return r.apply(this,arguments)}catch(o){var e=o;throw e&&("string"==typeof e&&(e=new String(e)),e._rollbarContext=n()||{},e._rollbarContext._wrappedSource=r.toString(),window._rollbarWrappedError=e),e}},r._rollbar_wrapped._isWrap=!0,r.hasOwnProperty))for(var t in r)r.hasOwnProperty(t)&&(r._rollbar_wrapped[t]=r[t]);return r._rollbar_wrapped}catch(e){return r}};for(var p="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,captureEvent,captureDomContentLoaded,captureLoad".split(","),f=0;f<p.length;++f)i.prototype[p[f]]=u(p[f]);r.exports={setupShim:function(r,e){if(r){var o=e.globalAlias||"Rollbar";if("object"==typeof r[o])return r[o];r._rollbarShims={},r._rollbarWrappedError=null;var l=new c(e);return a((function(){e.captureUncaught&&(l._rollbarOldOnError=r.onerror,n.captureUncaughtExceptions(r,l,!0),e.wrapGlobalEventHandlers&&t(r,l,!0)),e.captureUnhandledRejections&&n.captureUnhandledRejections(r,l,!0);var a=e.autoInstrument;return!1!==e.enabled&&(void 0===a||!0===a||function(r){return!("object"!=typeof r||void 0!==r.page&&!r.page)}(a))&&r.addEventListener&&(r.addEventListener("load",l.captureLoad.bind(l)),r.addEventListener("DOMContentLoaded",l.captureDomContentLoaded.bind(l))),r[o]=l,l}))()}},Rollbar:c}},function(r,e,o){"use strict";function n(r,e,o,n){r._rollbarWrappedError&&(n[4]||(n[4]=r._rollbarWrappedError),n[5]||(n[5]=r._rollbarWrappedError._rollbarContext),r._rollbarWrappedError=null);var t=e.handleUncaughtException.apply(e,n);o&&o.apply(r,n),"anonymous"===t&&(e.anonymousErrorsPending+=1)}r.exports={captureUncaughtExceptions:function(r,e,o){if(r){var t;if("function"==typeof e._rollbarOldOnError)t=e._rollbarOldOnError;else if(r.onerror){for(t=r.onerror;t._rollbarOldOnError;)t=t._rollbarOldOnError;e._rollbarOldOnError=t}e.handleAnonymousErrors();var a=function(){var o=Array.prototype.slice.call(arguments,0);n(r,e,t,o)};o&&(a._rollbarOldOnError=t),r.onerror=a}},captureUnhandledRejections:function(r,e,o){if(r){"function"==typeof r._rollbarURH&&r._rollbarURH.belongsToShim&&r.removeEventListener("unhandledrejection",r._rollbarURH);var n=function(r){var o,n,t;try{o=r.reason}catch(r){o=void 0}try{n=r.promise}catch(r){n="[unhandledrejection] error getting `promise` from event"}try{t=r.detail,!o&&t&&(o=t.reason,n=t.promise)}catch(r){}o||(o="[unhandledrejection] error getting `reason` from event"),e&&e.handleUnhandledRejection&&e.handleUnhandledRejection(o,n)};n.belongsToShim=o,r._rollbarURH=n,r.addEventListener("unhandledrejection",n)}}}},function(r,e,o){"use strict";function n(r,e,o){if(e.hasOwnProperty&&e.hasOwnProperty("addEventListener")){for(var n=e.addEventListener;n._rollbarOldAdd&&n.belongsToShim;)n=n._rollbarOldAdd;var t=function(e,o,t){n.call(this,e,r.wrap(o),t)};t._rollbarOldAdd=n,t.belongsToShim=o,e.addEventListener=t;for(var a=e.removeEventListener;a._rollbarOldRemove&&a.belongsToShim;)a=a._rollbarOldRemove;var l=function(r,e,o){a.call(this,r,e&&e._rollbar_wrapped||e,o)};l._rollbarOldRemove=a,l.belongsToShim=o,e.removeEventListener=l}}r.exports=function(r,e,o){if(r){var t,a,l="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(t=0;t<l.length;++t)r[a=l[t]]&&r[a].prototype&&n(e,r[a].prototype,o)}}},function(r,e,o){"use strict";function n(r,e){this.impl=r(e,this),this.options=e,function(r){for(var e=function(r){return function(){var e=Array.prototype.slice.call(arguments,0);if(this.impl[r])return this.impl[r].apply(this.impl,e)}},o="log,debug,info,warn,warning,error,critical,global,configure,handleUncaughtException,handleAnonymousErrors,handleUnhandledRejection,_createItem,wrap,loadFull,shimId,captureEvent,captureDomContentLoaded,captureLoad".split(","),n=0;n<o.length;n++)r[o[n]]=e(o[n])}(n.prototype)}n.prototype._swapAndProcessMessages=function(r,e){var o,n,t;for(this.impl=r(this.options);o=e.shift();)n=o.method,t=o.args,this[n]&&"function"==typeof this[n]&&("captureDomContentLoaded"===n||"captureLoad"===n?this[n].apply(this,[t[0],o.ts]):this[n].apply(this,t));return this},r.exports=n},function(r,e,o){"use strict";r.exports=function(r){return function(e){if(!e&&!window._rollbarInitialized){for(var o,n,t=(r=r||{}).globalAlias||"Rollbar",a=window.rollbar,l=function(r){return new a(r)},i=0;o=window._rollbarShims[i++];)n||(n=o.handler),o.handler._swapAndProcessMessages(l,o.messages);window[t]=n,window._rollbarInitialized=!0}}}}]);
|
data/gemfiles/rails52.gemfile
CHANGED
@@ -34,7 +34,7 @@ gem 'sinatra', :git => 'https://github.com/sinatra/sinatra', :tag =>'v2.1.0'
|
|
34
34
|
gem 'database_cleaner'
|
35
35
|
gem 'delayed_job', :require => false
|
36
36
|
gem 'generator_spec'
|
37
|
-
gem 'redis'
|
37
|
+
gem 'redis', '<= 4.8.0'
|
38
38
|
gem 'resque'
|
39
39
|
gem 'secure_headers', '~> 6.3.2', :require => false
|
40
40
|
gem 'simplecov', '<= 0.17.1'
|
data/gemfiles/rails60.gemfile
CHANGED
@@ -30,7 +30,7 @@ gem 'sinatra', :git => 'https://github.com/sinatra/sinatra', :tag =>'v2.1.0'
|
|
30
30
|
gem 'database_cleaner'
|
31
31
|
gem 'delayed_job', '4.1.9', :require => false
|
32
32
|
gem 'generator_spec'
|
33
|
-
gem 'redis'
|
33
|
+
gem 'redis', '<= 4.8.0'
|
34
34
|
gem 'resque'
|
35
35
|
gem 'secure_headers', '~> 6.3.2', :require => false
|
36
36
|
gem 'simplecov'
|
data/gemfiles/rails61.gemfile
CHANGED
@@ -30,7 +30,7 @@ gem 'sinatra', :git => 'https://github.com/sinatra/sinatra', :tag =>'v2.1.0'
|
|
30
30
|
gem 'database_cleaner'
|
31
31
|
gem 'delayed_job', '4.1.9', :require => false
|
32
32
|
gem 'generator_spec'
|
33
|
-
gem 'redis'
|
33
|
+
gem 'redis', '<= 4.8.0'
|
34
34
|
gem 'resque'
|
35
35
|
gem 'secure_headers', '~> 6.3.2', :require => false
|
36
36
|
gem 'simplecov'
|
data/gemfiles/rails70.gemfile
CHANGED
@@ -30,7 +30,7 @@ gem 'sinatra', :git => 'https://github.com/sinatra/sinatra', :tag =>'v2.1.0'
|
|
30
30
|
gem 'database_cleaner'
|
31
31
|
gem 'delayed_job', '4.1.10', :require => false
|
32
32
|
gem 'generator_spec'
|
33
|
-
gem 'redis'
|
33
|
+
gem 'redis', '<= 4.8.0'
|
34
34
|
gem 'resque'
|
35
35
|
gem 'secure_headers', '~> 6.3.2', :require => false
|
36
36
|
gem 'simplecov'
|
data/lib/rails/rollbar_runner.rb
CHANGED
@@ -11,19 +11,6 @@ APP_PATH = File.expand_path(
|
|
11
11
|
|
12
12
|
module Rails
|
13
13
|
class RollbarRunner
|
14
|
-
class GemResolver
|
15
|
-
def railties_gem
|
16
|
-
Gem::Specification.find_by_name('railties')
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
class LegacyGemResolver
|
21
|
-
def railties_gem
|
22
|
-
searcher = Gem::GemPathSearcher.new
|
23
|
-
searcher.find('rails')
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
14
|
attr_reader :command
|
28
15
|
|
29
16
|
def initialize
|
@@ -75,12 +62,7 @@ module Rails
|
|
75
62
|
end
|
76
63
|
|
77
64
|
def railties_gem
|
78
|
-
|
79
|
-
GemResolver
|
80
|
-
else
|
81
|
-
LegacyGemResolver
|
82
|
-
end
|
83
|
-
gem = resolver_class.new.railties_gem
|
65
|
+
gem = Gem::Specification.find_by_name('railties')
|
84
66
|
|
85
67
|
abort 'railties gem not found' unless gem
|
86
68
|
|
@@ -324,7 +324,7 @@ module Rollbar
|
|
324
324
|
def send_extra_frame_data=(value)
|
325
325
|
unless SEND_EXTRA_FRAME_DATA_OPTIONS.include?(value)
|
326
326
|
logger.warning(
|
327
|
-
"Wrong 'send_extra_frame_data' value, :none, :app or :
|
327
|
+
"Wrong 'send_extra_frame_data' value, :none, :app or :all is expected"
|
328
328
|
)
|
329
329
|
|
330
330
|
return
|
data/lib/rollbar/encoding.rb
CHANGED
@@ -5,13 +5,8 @@ module Rollbar
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def self.setup
|
8
|
-
|
9
|
-
|
10
|
-
self.encoding_class = Rollbar::Encoding::Encoder
|
11
|
-
else
|
12
|
-
require 'rollbar/encoding/legacy_encoder'
|
13
|
-
self.encoding_class = Rollbar::Encoding::LegacyEncoder
|
14
|
-
end
|
8
|
+
require 'rollbar/encoding/encoder'
|
9
|
+
self.encoding_class = Rollbar::Encoding::Encoder
|
15
10
|
end
|
16
11
|
|
17
12
|
def self.encode(object)
|
@@ -27,5 +27,9 @@ if defined?(ActiveSupport) && ActiveSupport.respond_to?(:on_load)
|
|
27
27
|
ActionMailer::DeliveryJob.send(:include,
|
28
28
|
Rollbar::ActiveJob)
|
29
29
|
end
|
30
|
+
# Rails >= 6.0
|
31
|
+
if defined?(ActionMailer::MailDeliveryJob)
|
32
|
+
ActionMailer::MailDeliveryJob.send(:include, Rollbar::ActiveJob)
|
33
|
+
end
|
30
34
|
end
|
31
35
|
end
|
data/lib/rollbar/version.rb
CHANGED
data/rollbar.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |gem|
|
|
7
7
|
|
8
8
|
gem.authors = ['Rollbar, Inc.']
|
9
9
|
gem.email = ['support@rollbar.com']
|
10
|
-
gem.description = '
|
10
|
+
gem.description = "Track and debug errors in your Ruby applications with ease using Rollbar. With this gem, you can easily monitor and report on exceptions and other errors in your code, helping you identify and fix issues more quickly. Rollbar's intuitive interface and advanced error tracking features make it the perfect tool for ensuring the stability and reliability of your Ruby applications."
|
11
11
|
gem.executables = ['rollbar-rails-runner']
|
12
12
|
gem.summary = 'Reports exceptions to Rollbar'
|
13
13
|
gem.homepage = 'https://rollbar.com'
|
metadata
CHANGED
@@ -1,16 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rollbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.4.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:
|
11
|
+
date: 2023-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
13
|
+
description: Track and debug errors in your Ruby applications with ease using Rollbar.
|
14
|
+
With this gem, you can easily monitor and report on exceptions and other errors
|
15
|
+
in your code, helping you identify and fix issues more quickly. Rollbar's intuitive
|
16
|
+
interface and advanced error tracking features make it the perfect tool for ensuring
|
17
|
+
the stability and reliability of your Ruby applications.
|
14
18
|
email:
|
15
19
|
- support@rollbar.com
|
16
20
|
executables:
|
@@ -68,7 +72,6 @@ files:
|
|
68
72
|
- lib/rollbar/deploy.rb
|
69
73
|
- lib/rollbar/encoding.rb
|
70
74
|
- lib/rollbar/encoding/encoder.rb
|
71
|
-
- lib/rollbar/encoding/legacy_encoder.rb
|
72
75
|
- lib/rollbar/exception_reporter.rb
|
73
76
|
- lib/rollbar/exceptions.rb
|
74
77
|
- lib/rollbar/item.rb
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'iconv'
|
2
|
-
|
3
|
-
module Rollbar
|
4
|
-
module Encoding
|
5
|
-
class LegacyEncoder
|
6
|
-
attr_accessor :object
|
7
|
-
|
8
|
-
def initialize(object)
|
9
|
-
@object = object
|
10
|
-
end
|
11
|
-
|
12
|
-
def encode
|
13
|
-
value = object.to_s
|
14
|
-
encoded_value = ::Iconv.conv('UTF-8//IGNORE', 'UTF-8', value)
|
15
|
-
|
16
|
-
object.is_a?(Symbol) ? encoded_value.to_sym : encoded_value
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|