bugsnag 6.7.1 → 6.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 313641e103c52e05c89cc8d3277a0a7285504523
4
- data.tar.gz: 3bbe2d377ff467cec0a868510c507f467385d069
3
+ metadata.gz: 4a0ddb8da5fb920f1f434e58e955d26b979debe8
4
+ data.tar.gz: 65de67a4ae0dbb7356bd893100e7889d608cb8bb
5
5
  SHA512:
6
- metadata.gz: ca1371c07f154c2c3d2241e868b9bb49fefc86cc682f4744d819552dd75d517bdeb04dbb3fb5b11f007efa9fd08458e2d6cd198da810e089381965744206a8d6
7
- data.tar.gz: 39beb55e75be93fba3921dec840ed1d118de8b9818df62bd3b4a3a3a6d1bce190b087acb7aa36493986264cd7135020e5e38980fe535e225c9b89df679def20a
6
+ metadata.gz: 83327beda70eccb521332bdac2fd0c6b96eff182c508bdfacf67ba5465ceac51bb5c3f5df26ab5294c8c6051efc721eda05d9862d561de0a5b1bfe0184b746ad
7
+ data.tar.gz: cb10e69935a1682cba5aedcceee811097626a95a96a394bcbab0f22aaa77d427fd8ec00d1788a210b0c3354d4b1a8ea567066758fc3df01c1b909496a42a5fb1
@@ -1,6 +1,13 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## 6.7.2 (24 Apr 2018)
5
+
6
+ ### Fixes
7
+
8
+ * (Notify) Handle `notify` calls with `nil` arguments correctly
9
+ | [#439](https://github.com/bugsnag/bugsnag-ruby/pull/439)
10
+
4
11
  ## 6.7.1 (11 Apr 2018)
5
12
 
6
13
  ### Fixes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 6.7.1
1
+ 6.7.2
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
7
7
 
8
8
  s.description = "Ruby notifier for bugsnag.com"
9
9
  s.summary = "Ruby notifier for bugsnag.com"
10
- s.homepage = "http://github.com/bugsnag/bugsnag-ruby"
10
+ s.homepage = "https://github.com/bugsnag/bugsnag-ruby"
11
11
  s.licenses = ["MIT"]
12
12
 
13
13
  s.files = `git ls-files`.split("\n").reject {|file| file.start_with? "example/"}
@@ -1,18 +1,48 @@
1
- ### Expected behavior
2
- *[Insert details on expected behaviour]*
1
+ ### Description
2
+ <!-- A quick description of what you're trying to accomplish -->
3
3
 
4
- ### Observed behavior
5
- *[Insert details on observed behaviour]*
4
+ ### Issue
5
+ <!--
6
+ What went wrong? (If this issue is a general question or a proposed change,
7
+ feel free to delete this and subsequent sections.
8
+ -->
6
9
 
7
- ### Steps to reproduce
8
- *[Insert reproduction steps (if known)]*
10
+ ### Environment
9
11
 
10
- ### Version
11
- *[Insert version information]*
12
+ Library versions:
12
13
 
13
- ### Additional information
14
- *[Insert any additional information]*
14
+ <!--
15
+ Paste the output of this command into the code block below:
16
+ bundle list | grep -E "(bugsnag|rails|sidekiq|que|sinatra|resque|shoryuken|mailman|delayed_job)"
17
+ -->
18
+ ```
15
19
 
16
- #### Can't comment on Issues?
17
- Some users have been unable to comment on Github issues when an [adblocker extension is enabled](https://docs.bugsnag.com/platforms/browsers/faq/#is-bugsnag-blocked-by-ad-blockers).
18
- We recommend temporarily disabling the extension, or if that fails, contacting support@bugsnag.com.
20
+ ```
21
+
22
+ - OS / OS version:
23
+ - debug mode or production?:
24
+
25
+ <!--
26
+ Below are a few approaches you might take to communicate the issue, in
27
+ descending order of awesomeness. Please choose one and feel free to delete
28
+ the others from this template.
29
+ -->
30
+ ### Example Repo
31
+
32
+ - [ ] Create a minimal repository that can reproduce the issue after running
33
+ `bundle install` and `rackup` (or `rails server`, or `ruby some-script.rb`,
34
+ etc)
35
+ - [ ] Link to it here:
36
+
37
+ ### Example code snippet
38
+
39
+ ```ruby
40
+ require 'bugsnag'
41
+
42
+ # (Insert code sample to reproduce the problem)
43
+ ```
44
+
45
+ <!-- Error messages, if any -->
46
+ ```
47
+
48
+ ```
@@ -32,6 +32,8 @@ module Bugsnag
32
32
  LOCK = Mutex.new
33
33
  INTEGRATIONS = [:resque, :sidekiq, :mailman, :delayed_job, :shoryuken, :que]
34
34
 
35
+ NIL_EXCEPTION_DESCRIPTION = "'nil' was notified as an exception"
36
+
35
37
  class << self
36
38
  ##
37
39
  # Configure the Bugsnag notifier application-wide settings.
@@ -53,25 +55,9 @@ module Bugsnag
53
55
  auto_notify = false
54
56
  end
55
57
 
56
- if !configuration.auto_notify && auto_notify
57
- configuration.debug("Not notifying because auto_notify is disabled")
58
- return
59
- end
60
-
61
- if !configuration.valid_api_key?
62
- configuration.debug("Not notifying due to an invalid api_key")
63
- return
64
- end
58
+ return unless deliver_notification?(exception, auto_notify)
65
59
 
66
- if !configuration.should_notify_release_stage?
67
- configuration.debug("Not notifying due to notify_release_stages :#{configuration.notify_release_stages.inspect}")
68
- return
69
- end
70
-
71
- if exception.respond_to?(:skip_bugsnag) && exception.skip_bugsnag
72
- configuration.debug("Not notifying due to skip_bugsnag flag")
73
- return
74
- end
60
+ exception = NIL_EXCEPTION_DESCRIPTION if exception.nil?
75
61
 
76
62
  report = Report.new(exception, configuration, auto_notify)
77
63
 
@@ -176,6 +162,26 @@ module Bugsnag
176
162
  end
177
163
  end
178
164
 
165
+ private
166
+
167
+ def deliver_notification?(exception, auto_notify)
168
+ reason = abort_reason(exception, auto_notify)
169
+ configuration.debug(reason) unless reason.nil?
170
+ reason.nil?
171
+ end
172
+
173
+ def abort_reason(exception, auto_notify)
174
+ if !configuration.auto_notify && auto_notify
175
+ "Not notifying because auto_notify is disabled"
176
+ elsif !configuration.valid_api_key?
177
+ "Not notifying due to an invalid api_key"
178
+ elsif !configuration.should_notify_release_stage?
179
+ "Not notifying due to notify_release_stages :#{configuration.notify_release_stages.inspect}"
180
+ elsif exception.respond_to?(:skip_bugsnag) && exception.skip_bugsnag
181
+ "Not notifying due to skip_bugsnag flag"
182
+ end
183
+ end
184
+
179
185
  # Check if the API key is valid and warn (once) if it is not
180
186
  def check_key_valid
181
187
  @key_warning = false unless defined?(@key_warning)
@@ -6,7 +6,7 @@ module Bugsnag
6
6
  class Report
7
7
  NOTIFIER_NAME = "Ruby Bugsnag Notifier"
8
8
  NOTIFIER_VERSION = Bugsnag::VERSION
9
- NOTIFIER_URL = "http://www.bugsnag.com"
9
+ NOTIFIER_URL = "https://www.bugsnag.com"
10
10
 
11
11
  UNHANDLED_EXCEPTION = "unhandledException"
12
12
  UNHANDLED_EXCEPTION_MIDDLEWARE = "unhandledExceptionMiddleware"
@@ -1045,6 +1045,21 @@ describe Bugsnag::Report do
1045
1045
  expect(Bugsnag).not_to have_sent_notification
1046
1046
  end
1047
1047
 
1048
+ it 'uses an appropriate message if nil is notified' do
1049
+ Bugsnag.notify(nil)
1050
+ expect(Bugsnag).to have_sent_notification{ |payload, headers|
1051
+ event = payload["events"][0]
1052
+ exception = event["exceptions"][0]
1053
+ expect(exception["errorClass"]).to eq("RuntimeError")
1054
+ expect(exception["message"]).to eq("'nil' was notified as an exception")
1055
+
1056
+ stacktrace = exception["stacktrace"][0]
1057
+ expect(stacktrace["lineNumber"]).to eq(1049)
1058
+ expect(stacktrace["file"]).to end_with("spec/report_spec.rb")
1059
+ expect(stacktrace["code"]["1048"]).to eq(" it 'uses an appropriate message if nil is notified' do")
1060
+ expect(stacktrace["code"]["1049"]).to eq(" Bugsnag.notify(nil)")
1061
+ }
1062
+ end
1048
1063
 
1049
1064
  if defined?(JRUBY_VERSION)
1050
1065
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bugsnag
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.7.1
4
+ version: 6.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-11 00:00:00.000000000 Z
11
+ date: 2018-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -131,7 +131,7 @@ files:
131
131
  - spec/session_tracker_spec.rb
132
132
  - spec/spec_helper.rb
133
133
  - spec/stacktrace_spec.rb
134
- homepage: http://github.com/bugsnag/bugsnag-ruby
134
+ homepage: https://github.com/bugsnag/bugsnag-ruby
135
135
  licenses:
136
136
  - MIT
137
137
  metadata: {}
@@ -151,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
151
  version: '0'
152
152
  requirements: []
153
153
  rubyforge_project:
154
- rubygems_version: 2.6.14
154
+ rubygems_version: 2.6.11
155
155
  signing_key:
156
156
  specification_version: 4
157
157
  summary: Ruby notifier for bugsnag.com