errbase 0.0.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: c019dffdb5bc1cf47bd6b6615de58269b410fef5
4
- data.tar.gz: 930e71d21c14ae3f069d0f3f70250bbe288c1992
2
+ SHA256:
3
+ metadata.gz: bbc2eadf89c8fecc6273c1421b4c3928c910bcd5ecc7d7efd11b67bb47a41cd9
4
+ data.tar.gz: 4a1c2c6d40845dc55934e8ce9569e9990b1cd09aeea4862febd271074aa5b61e
5
5
  SHA512:
6
- metadata.gz: a877507dfe2825eb9bfd7c0ee2ca6cb0d27d713b60d12d8bda2e0de7274bfa1443462e5a37b4642e975ffcfce082fafbb3d5f84bb2bab2aeb29ca8c7b9a43522
7
- data.tar.gz: a0bac123e4be9a3b940f80990fed19e0da15e58d8854f49551993d3abd43d7fa2507fc1db2de5837fa9c219dd6e161a9c343a49a59dd95611946f9b7ef823e60
6
+ metadata.gz: 1484556155f8fd4d9893c8f43cfc17233ee88323a177bc72ba33bb88ab56c88ac21e6f8f6c0c691504dd317a250430ff90fe821248f0b55f2435ba5072071c50
7
+ data.tar.gz: 477bbd79a3577047a691d8a02630d9fe324120284e8c2794b589de5f9829f95c01d8a7215c877bc785cad6c59111205d608126a60bc2e5cf214d351cf04b6b6e
@@ -0,0 +1,18 @@
1
+ ## 0.2.1 (2021-01-03)
2
+
3
+ - Added support for `sentry-ruby` gem
4
+
5
+ ## 0.2.0 (2019-10-28)
6
+
7
+ - Added context to New Relic
8
+ - Removed support for Exceptional and Opbeat
9
+
10
+ ## 0.1.1 (2018-09-19)
11
+
12
+ - Added support for passing extra context
13
+ - Added New Relic
14
+
15
+ ## 0.1.0 (2018-02-27)
16
+
17
+ - Rescue exceptions during reporting
18
+ - Added support for Exception Notification and Stackdriver
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014 Andrew Kane
1
+ Copyright (c) 2014-2019 Andrew Kane
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -2,9 +2,18 @@
2
2
 
3
3
  Common exception reporting for a variety of services
4
4
 
5
- Automatically detects reporting libraries
6
-
7
- Supports [Rollbar](https://rollbar.com/), [Airbrake](https://airbrake.io/), [Exceptional](http://www.exceptional.io/), [Honeybadger](https://www.honeybadger.io/), [Sentry](https://getsentry.com/), [Raygun](https://raygun.io/), [Bugsnag](https://bugsnag.com/) and [Appsignal](https://appsignal.com/)
5
+ Libraries are automatically detected. Supports:
6
+
7
+ - [Airbrake](https://airbrake.io/)
8
+ - [Appsignal](https://appsignal.com/)
9
+ - [Bugsnag](https://bugsnag.com/)
10
+ - [Exception Notification](https://github.com/smartinez87/exception_notification)
11
+ - [Google Stackdriver](https://cloud.google.com/stackdriver/)
12
+ - [Honeybadger](https://www.honeybadger.io/)
13
+ - [New Relic](https://newrelic.com/)
14
+ - [Raygun](https://raygun.io/)
15
+ - [Rollbar](https://rollbar.com/)
16
+ - [Sentry](https://getsentry.com/)
8
17
 
9
18
  ```ruby
10
19
  begin
@@ -14,9 +23,17 @@ rescue => e
14
23
  end
15
24
  ```
16
25
 
26
+ You can add extra context with:
27
+
28
+ ```ruby
29
+ Errbase.report(e, {username: "hello"})
30
+ ```
31
+
32
+ > Context is not supported for Google Stackdriver
33
+
17
34
  ## Installation
18
35
 
19
- Errbase works best as a dependency.
36
+ Errbase is designed to be used as a dependency.
20
37
 
21
38
  Add this line to your gemspec:
22
39
 
@@ -24,11 +41,6 @@ Add this line to your gemspec:
24
41
  spec.add_dependency "errbase"
25
42
  ```
26
43
 
27
- ## TODO
28
-
29
- - Ability to specify services
30
- - Support for more services
31
-
32
44
  ## Contributing
33
45
 
34
46
  Everyone is encouraged to help improve this project. Here are a few ways you can help:
@@ -37,3 +49,12 @@ Everyone is encouraged to help improve this project. Here are a few ways you can
37
49
  - Fix bugs and [submit pull requests](https://github.com/ankane/errbase/pulls)
38
50
  - Write, clarify, or fix documentation
39
51
  - Suggest or add new features
52
+
53
+ To get started with development:
54
+
55
+ ```sh
56
+ git clone https://github.com/ankane/errbase.git
57
+ cd errbase
58
+ bundle install
59
+ bundle exec rake test
60
+ ```
@@ -1,36 +1,36 @@
1
1
  require "errbase/version"
2
2
 
3
3
  module Errbase
4
-
5
4
  class << self
5
+ def report(e, info = {})
6
+ Airbrake.notify(e, info) if defined?(Airbrake)
7
+
8
+ Appsignal.send_error(e, info) if defined?(Appsignal)
6
9
 
7
- def report(e)
8
- if defined?(Rollbar)
9
- Rollbar.report_exception(e)
10
- end
11
- if defined?(Airbrake)
12
- Airbrake.notify(e)
13
- end
14
- if defined?(Honeybadger)
15
- Honeybadger.notify(e)
16
- end
17
- if defined?(Exceptional)
18
- Exceptional.handle(e)
19
- end
20
- if defined?(Raygun)
21
- Raygun.track_exception(e)
22
- end
23
- if defined?(Raven)
24
- Raven.capture_exception(e)
25
- end
26
10
  if defined?(Bugsnag)
27
- Bugsnag.notify(e)
11
+ Bugsnag.notify(e) do |report|
12
+ report.add_tab(:info, info) if info.any?
13
+ end
28
14
  end
29
- if defined?(Appsignal)
30
- Appsignal.send_exception(e)
31
- end
32
- end
33
15
 
34
- end
16
+ ExceptionNotifier.notify_exception(e, data: info) if defined?(ExceptionNotifier)
17
+
18
+ # TODO add info
19
+ Google::Cloud::ErrorReporting.report(e) if defined?(Google::Cloud::ErrorReporting)
20
+
21
+ Honeybadger.notify(e, context: info) if defined?(Honeybadger)
22
+
23
+ NewRelic::Agent.notice_error(e, custom_params: info) if defined?(NewRelic::Agent)
24
+
25
+ Raven.capture_exception(e, extra: info) if defined?(Raven)
35
26
 
27
+ Raygun.track_exception(e, custom_data: info) if defined?(Raygun)
28
+
29
+ Rollbar.error(e, info) if defined?(Rollbar)
30
+
31
+ Sentry.capture_exception(e, extra: info) if defined?(Sentry)
32
+ rescue => e
33
+ $stderr.puts "[errbase] Error reporting exception: #{e.class.name}: #{e.message}"
34
+ end
35
+ end
36
36
  end
@@ -1,3 +1,3 @@
1
1
  module Errbase
2
- VERSION = "0.0.2"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,191 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: errbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-02 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.6'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.6'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: minitest
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '5'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '5'
55
- - !ruby/object:Gem::Dependency
56
- name: rollbar
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: airbrake
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: honeybadger
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: exceptional
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: raygun4ruby
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: sentry-raven
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: bugsnag
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: appsignal
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- description: Common exception reporting for a variety of services
168
- email:
169
- - andrew@chartkick.com
11
+ date: 2021-01-03 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email: andrew@chartkick.com
170
15
  executables: []
171
16
  extensions: []
172
17
  extra_rdoc_files: []
173
18
  files:
174
- - ".gitignore"
175
- - Gemfile
19
+ - CHANGELOG.md
176
20
  - LICENSE.txt
177
21
  - README.md
178
- - Rakefile
179
- - errbase.gemspec
180
22
  - lib/errbase.rb
181
23
  - lib/errbase/version.rb
182
- - test/errbase_test.rb
183
- - test/test_helper.rb
184
24
  homepage: https://github.com/ankane/errbase
185
25
  licenses:
186
26
  - MIT
187
27
  metadata: {}
188
- post_install_message:
28
+ post_install_message:
189
29
  rdoc_options: []
190
30
  require_paths:
191
31
  - lib
@@ -193,18 +33,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
193
33
  requirements:
194
34
  - - ">="
195
35
  - !ruby/object:Gem::Version
196
- version: '0'
36
+ version: '2.4'
197
37
  required_rubygems_version: !ruby/object:Gem::Requirement
198
38
  requirements:
199
39
  - - ">="
200
40
  - !ruby/object:Gem::Version
201
41
  version: '0'
202
42
  requirements: []
203
- rubyforge_project:
204
- rubygems_version: 2.2.2
205
- signing_key:
43
+ rubygems_version: 3.1.4
44
+ signing_key:
206
45
  specification_version: 4
207
46
  summary: Common exception reporting for a variety of services
208
- test_files:
209
- - test/errbase_test.rb
210
- - test/test_helper.rb
47
+ test_files: []
data/.gitignore DELETED
@@ -1,22 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- *.bundle
19
- *.so
20
- *.o
21
- *.a
22
- mkmf.log
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in errbase.gemspec
4
- gemspec
data/Rakefile DELETED
@@ -1,8 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
3
-
4
- task :default => :test
5
- Rake::TestTask.new do |t|
6
- t.libs << "test"
7
- t.pattern = "test/**/*_test.rb"
8
- end
@@ -1,33 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'errbase/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "errbase"
8
- spec.version = Errbase::VERSION
9
- spec.authors = ["Andrew Kane"]
10
- spec.email = ["andrew@chartkick.com"]
11
- spec.summary = %q{Common exception reporting for a variety of services}
12
- spec.description = %q{Common exception reporting for a variety of services}
13
- spec.homepage = "https://github.com/ankane/errbase"
14
- spec.license = "MIT"
15
-
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_development_dependency "bundler", "~> 1.6"
22
- spec.add_development_dependency "rake"
23
- spec.add_development_dependency "minitest", ">= 5"
24
-
25
- spec.add_development_dependency "rollbar"
26
- spec.add_development_dependency "airbrake"
27
- spec.add_development_dependency "honeybadger"
28
- spec.add_development_dependency "exceptional"
29
- spec.add_development_dependency "raygun4ruby"
30
- spec.add_development_dependency "sentry-raven"
31
- spec.add_development_dependency "bugsnag"
32
- spec.add_development_dependency "appsignal"
33
- end
@@ -1,9 +0,0 @@
1
- require_relative "test_helper"
2
-
3
- class TestErrbase < Minitest::Test
4
-
5
- def test_errbase
6
- Errbase.report(RuntimeError.new("Boom"))
7
- end
8
-
9
- end
@@ -1,12 +0,0 @@
1
- require "bundler/setup"
2
- Bundler.require(:default)
3
- require "minitest/autorun"
4
- require "minitest/pride"
5
- require "rollbar"
6
- require "airbrake"
7
- require "honeybadger"
8
- # require "exceptional" # raises exception when not configured
9
- # require "raygun4ruby" # raises exception when not configured
10
- require "sentry-raven"
11
- require "bugsnag"
12
- require "appsignal"