rollbar 3.3.1 → 3.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -35
- data/Gemfile +1 -1
- data/README.md +24 -2
- 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/rollbar/middleware/js.rb +1 -0
- data/lib/rollbar/request_data_extractor.rb +10 -3
- data/lib/rollbar/version.rb +1 -1
- data/rollbar.gemspec +1 -1
- metadata +10 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aecd74252733bfe7a1a83a7319433adf9e22d226742b442e769e42cb09ea6de4
|
4
|
+
data.tar.gz: 7a49f283424610487fd2ea4f1aad2f0ab6448e09632d7aaa9667ad33c3dd2599
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7354db5dffcb7cbc1d6971ec5a0865f3e423f17d8db29663f2e7cd39d52b52166994edfed6e280993e36928cb85517d305adf8a85dc69d1f0d4a2013fb6eaa34
|
7
|
+
data.tar.gz: e775415b7f8bfab6a55af1fffa11d1500f8ac54236f6002695425a25d752f09c3703fde1a3ceef3e3f678cf5f9da8964d2a5c955bfb1247737640103c78a5b0c
|
data/.rubocop.yml
CHANGED
@@ -19,36 +19,22 @@ Layout/HeredocIndentation:
|
|
19
19
|
Layout/LineLength:
|
20
20
|
Max: 90
|
21
21
|
|
22
|
-
Lint/ConstantDefinitionInBlock:
|
23
|
-
# We routinely update existing class definitions in conditional blocks.
|
24
|
-
Enabled: false
|
25
|
-
|
26
22
|
Lint/SendWithMixinArgument:
|
27
23
|
# Object#include is still a private method in Ruby 2.0.
|
28
24
|
Enabled: false
|
29
25
|
|
30
26
|
Metrics/BlockLength:
|
31
|
-
# RSpec DSL is expected to have long blocks.
|
32
|
-
IgnoredMethods: ['describe', 'context', 'it', 'shared_examples']
|
27
|
+
ExcludedMethods: ['describe', 'context'] # RSpec DSL is expected to have long blocks.
|
33
28
|
|
34
29
|
Metrics/MethodLength:
|
35
30
|
Max: 15 # Relax slightly from the default of 10
|
36
31
|
|
37
|
-
Metrics/ParameterLists:
|
38
|
-
# We currently don't have limits on the number of method arguments, except as
|
39
|
-
# they contribute to the complexity metric. If method complexity is in bounds,
|
40
|
-
# we allow any number of arguments.
|
41
|
-
Enabled: false
|
42
|
-
|
43
32
|
Naming/MethodParameterName:
|
44
33
|
# It's possible to configure this cop to allow just about anything, but what's the point.
|
45
34
|
# The default min length of a param name is 3, but the the default whitelist includes things
|
46
35
|
# like `db` and `io`. So, short names really can be useful.
|
47
36
|
Enabled: false
|
48
37
|
|
49
|
-
Style/BracesAroundHashParameters:
|
50
|
-
EnforcedStyle: braces
|
51
|
-
|
52
38
|
Style/CaseEquality:
|
53
39
|
# The code uses `===` a lot to compare a regex to a string, but it's not clear that
|
54
40
|
# switching to `=~` is always safe, because in some cases the value could be a regex
|
@@ -83,29 +69,9 @@ Style/HashSyntax:
|
|
83
69
|
SupportedStyles:
|
84
70
|
- hash_rockets
|
85
71
|
|
86
|
-
Style/HashTransformKeys:
|
87
|
-
# Hash#transform_keys isn't available until Ruby 2.5
|
88
|
-
Enabled: false
|
89
|
-
|
90
72
|
Style/Lambda:
|
91
73
|
Enabled: false
|
92
74
|
|
93
|
-
Style/NumericPredicate:
|
94
|
-
# Numbers used in comparison expressions are often more readable and consistent
|
95
|
-
# than using predicate methods. e.g.
|
96
|
-
# major > 0 && minor > 8
|
97
|
-
# is more readable than
|
98
|
-
# major.positive? && minor > 8
|
99
|
-
Enabled: false
|
100
|
-
|
101
|
-
Style/OptionalBooleanParameter:
|
102
|
-
# We don't yet generally use keyword arguments. Ruby < 2.1 doesn't support
|
103
|
-
# required kayword arguments. And satifying this rule would change the calling
|
104
|
-
# convention only for these specific optional boolean arguments.
|
105
|
-
# This rule should be enabled when the project is updated to use keyword
|
106
|
-
# arguments in general.
|
107
|
-
Enabled: false
|
108
|
-
|
109
75
|
Style/PercentLiteralDelimiters:
|
110
76
|
PreferredDelimiters:
|
111
77
|
# rubocop switched from () to [] at some past version.
|
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)
|
@@ -27,7 +49,7 @@ Version < 2.19.0 is compatible with Ruby >= 1.8.7.
|
|
27
49
|
|
28
50
|
### Ruby 2.6.0
|
29
51
|
|
30
|
-
> WARNING: Ruby 2.6.0 introduced a new bug
|
52
|
+
> WARNING: Ruby 2.6.0 introduced a new bug ([#15472 -
|
31
53
|
Invalid JSON data being sent from Net::HTTP in some cases with Ruby 2.6.0](https://bugs.ruby-lang.org/issues/15472)) that may result in the Rollbar API returning an error when an exception is reported. (See [rollbar-gem issue #797](https://github.com/rollbar/rollbar-gem/issues/797)).
|
32
54
|
|
33
55
|
> UPDATE: This bug is fixed in Ruby 2.6.1, and rollbar-gem has a safe workaround in version >= 2.19.0.
|
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.25.0/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||"object"==typeof a&&a.network)&&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'
|
@@ -214,7 +214,7 @@ module Rollbar
|
|
214
214
|
return {} unless correct_method
|
215
215
|
return {} unless json_request?(rack_req)
|
216
216
|
|
217
|
-
raw_body = rack_req.body
|
217
|
+
raw_body = read_raw_body(rack_req.body)
|
218
218
|
begin
|
219
219
|
Rollbar::JSON.load(raw_body)
|
220
220
|
rescue StandardError
|
@@ -222,8 +222,15 @@ module Rollbar
|
|
222
222
|
end
|
223
223
|
rescue StandardError
|
224
224
|
{}
|
225
|
-
|
226
|
-
|
225
|
+
end
|
226
|
+
|
227
|
+
def read_raw_body(body)
|
228
|
+
return {} unless body.respond_to?(:rewind)
|
229
|
+
|
230
|
+
body.rewind
|
231
|
+
raw_body = body.read
|
232
|
+
body.rewind
|
233
|
+
raw_body
|
227
234
|
end
|
228
235
|
|
229
236
|
def json_request?(rack_req)
|
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.3.
|
4
|
+
version: 3.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rollbar, Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-12-20 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:
|
@@ -147,7 +151,7 @@ metadata:
|
|
147
151
|
bug_tracker_uri: https://github.com/rollbar/rollbar-gem/issues
|
148
152
|
homepage_uri: https://rollbar.com/
|
149
153
|
documentation_uri: https://docs.rollbar.com/docs/ruby
|
150
|
-
post_install_message:
|
154
|
+
post_install_message:
|
151
155
|
rdoc_options: []
|
152
156
|
require_paths:
|
153
157
|
- lib
|
@@ -163,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
163
167
|
version: '0'
|
164
168
|
requirements: []
|
165
169
|
rubygems_version: 3.1.4
|
166
|
-
signing_key:
|
170
|
+
signing_key:
|
167
171
|
specification_version: 4
|
168
172
|
summary: Reports exceptions to Rollbar
|
169
173
|
test_files: []
|