bugsnag 1.8.3 → 1.8.4

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
2
  SHA1:
3
- metadata.gz: 4cbe4f096526d18bbfafafd15dc5eb3b6c7e76f0
4
- data.tar.gz: cb801188b39389b33a156f40255e202b42b78674
3
+ metadata.gz: c744dba45c2a6935acc11b8f4ec4bf4ba45c5eab
4
+ data.tar.gz: 2a465d826f1487c35a4b0218363dc169c4bc2069
5
5
  SHA512:
6
- metadata.gz: 6cd43a3ee6e5380335e898a8096f942032e8bb334d485ca09f12a4af65699fa98f0662c654fa480164be08afa5a47d63e8339248854474ce118068c4fcf65675
7
- data.tar.gz: a78671e0159c2cf9ff863cf43d08d5d99bc8d1f98c505a67d8820d1a6fac385c299c685e913583a9382b1d83f369fe6db306e406e7751c9c7f8f80138eb533c1
6
+ metadata.gz: b45ad522fec4a680c7321fbf6bf0976a948dbc93b69cbc69c78a34a13784a69841098e3db0e7f715b11e1af5f683758fb434845a31ef8489cb7b713414f04b6f
7
+ data.tar.gz: ff24132faa1a219aabe36bd7306c8d4f0953f73fc0569d1667834f66810b5e9d87c9175fa492d896528267bc708eb5f836b9886d69dcc505f1f0f79e8b27751e
@@ -1,6 +1,11 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ 1.8.4
5
+ -----
6
+
7
+ - support for per-notification api keys
8
+
4
9
  1.8.3
5
10
  -----
6
11
 
data/README.md CHANGED
@@ -460,6 +460,16 @@ You can also view the order of the currently activated middleware by running `ra
460
460
  Check out Bugsnag's [built in middleware classes](https://github.com/bugsnag/bugsnag-ruby/tree/master/lib/bugsnag/middleware)
461
461
  for some real examples of middleware in action.
462
462
 
463
+ ### Multiple projects
464
+
465
+ If you want to divide errors into multiple Bugsnag projects, you can specify the API key as a parameter to `Bugsnag.notify`:
466
+
467
+ ```ruby
468
+ rescue => e
469
+ Bugsnag.notify e, api_key: "your-api-key-here"
470
+ end
471
+ ```
472
+
463
473
 
464
474
  Deploy Tracking
465
475
  ---------------
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.8.3
1
+ 1.8.4
@@ -55,10 +55,15 @@ module Bugsnag
55
55
  @request_data = request_data
56
56
  @meta_data = {}
57
57
  @user = {}
58
-
58
+
59
59
  self.severity = @overrides[:severity]
60
60
  @overrides.delete :severity
61
61
 
62
+ if @overrides.key? :api_key
63
+ self.api_key = @overrides[:api_key]
64
+ @overrides.delete :api_key
65
+ end
66
+
62
67
  # Unwrap exceptions
63
68
  @exceptions = []
64
69
  ex = exception
@@ -138,16 +143,24 @@ module Bugsnag
138
143
  @severity || "error"
139
144
  end
140
145
 
146
+ def api_key=(api_key)
147
+ @api_key = api_key
148
+ end
149
+
150
+ def api_key
151
+ @api_key ||= @configuration.api_key
152
+ end
153
+
141
154
  # Deliver this notification to bugsnag.com Also runs through the middleware as required.
142
155
  def deliver
143
156
  return unless @configuration.should_notify?
144
157
 
145
158
  # Check we have at least an api_key
146
- if @configuration.api_key.nil?
159
+ if api_key.nil?
147
160
  Bugsnag.warn "No API key configured, couldn't notify"
148
161
  return
149
- elsif (@configuration.api_key =~ API_KEY_REGEX).nil?
150
- Bugsnag.warn "Your API key (#{@configuration.api_key}) is not valid, couldn't notify"
162
+ elsif api_key !~ API_KEY_REGEX
163
+ Bugsnag.warn "Your API key (#{api_key}) is not valid, couldn't notify"
151
164
  return
152
165
  end
153
166
 
@@ -179,7 +192,7 @@ module Bugsnag
179
192
 
180
193
  # Build the endpoint url
181
194
  endpoint = (@configuration.use_ssl ? "https://" : "http://") + @configuration.endpoint
182
- Bugsnag.log("Notifying #{endpoint} of #{@exceptions.last.class} from api_key #{@configuration.api_key}")
195
+ Bugsnag.log("Notifying #{endpoint} of #{@exceptions.last.class} from api_key #{api_key}")
183
196
 
184
197
  # Build the payload's exception event
185
198
  payload_event = {
@@ -199,7 +212,7 @@ module Bugsnag
199
212
 
200
213
  # Build the payload hash
201
214
  payload = {
202
- :apiKey => @configuration.api_key,
215
+ :apiKey => api_key,
203
216
  :notifier => {
204
217
  :name => NOTIFIER_NAME,
205
218
  :version => NOTIFIER_VERSION,
@@ -40,6 +40,14 @@ describe Bugsnag::Notification do
40
40
  Bugsnag.notify(BugsnagTestException.new("It crashed"))
41
41
  end
42
42
 
43
+ it "should let you override the api_key" do
44
+ Bugsnag::Notification.should_receive(:deliver_exception_payload) do |endpoint, payload|
45
+ payload[:apiKey].should be == "9d84383f9be2ca94902e45c756a9979d"
46
+ end
47
+
48
+ Bugsnag.notify(BugsnagTestException.new("It crashed"), :api_key => "9d84383f9be2ca94902e45c756a9979d")
49
+ end
50
+
43
51
  it "should use the env variable apiKey" do
44
52
  ENV["BUGSNAG_API_KEY"] = "c9d60ae4c7e70c4b6c4ebd3e8056d2b9"
45
53
 
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: 1.8.3
4
+ version: 1.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-30 00:00:00.000000000 Z
11
+ date: 2014-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json