bugsnag 1.1.2 → 1.1.3

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.
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source "http://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
- gem "multi_json", "~> 1.3.4"
5
+ gem "multi_json", "~> 1.0"
6
6
  gem "httparty", "~> 0.8.3"
7
7
 
8
8
  # Add dependencies to develop your gem here.
@@ -30,6 +30,6 @@ PLATFORMS
30
30
  DEPENDENCIES
31
31
  httparty (~> 0.8.3)
32
32
  jeweler (~> 1.6.4)
33
- multi_json (~> 1.3.4)
33
+ multi_json (~> 1.0)
34
34
  rcov
35
35
  shoulda
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.2
1
+ 1.1.3
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "bugsnag"
8
- s.version = "1.1.2"
8
+ s.version = "1.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["James Smith"]
12
- s.date = "2012-07-25"
12
+ s.date = "2012-09-12"
13
13
  s.description = "Ruby notifier for bugsnag.com"
14
14
  s.email = "james@bugsnag.com"
15
15
  s.extra_rdoc_files = [
@@ -54,20 +54,20 @@ Gem::Specification.new do |s|
54
54
  s.specification_version = 3
55
55
 
56
56
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
57
- s.add_runtime_dependency(%q<multi_json>, ["~> 1.3.4"])
57
+ s.add_runtime_dependency(%q<multi_json>, ["~> 1.0"])
58
58
  s.add_runtime_dependency(%q<httparty>, ["~> 0.8.3"])
59
59
  s.add_development_dependency(%q<shoulda>, [">= 0"])
60
60
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
61
61
  s.add_development_dependency(%q<rcov>, [">= 0"])
62
62
  else
63
- s.add_dependency(%q<multi_json>, ["~> 1.3.4"])
63
+ s.add_dependency(%q<multi_json>, ["~> 1.0"])
64
64
  s.add_dependency(%q<httparty>, ["~> 0.8.3"])
65
65
  s.add_dependency(%q<shoulda>, [">= 0"])
66
66
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
67
67
  s.add_dependency(%q<rcov>, [">= 0"])
68
68
  end
69
69
  else
70
- s.add_dependency(%q<multi_json>, ["~> 1.3.4"])
70
+ s.add_dependency(%q<multi_json>, ["~> 1.0"])
71
71
  s.add_dependency(%q<httparty>, ["~> 0.8.3"])
72
72
  s.add_dependency(%q<shoulda>, [">= 0"])
73
73
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
@@ -30,5 +30,22 @@ module Bugsnag
30
30
  def self.request_context(request)
31
31
  "#{request.request_method} #{request.path}" if request
32
32
  end
33
+
34
+ # Helper functions to work around MultiJson changes in 1.3+
35
+ def self.dump_json(object, options={})
36
+ if MultiJson.respond_to?(:adapter)
37
+ MultiJson.dump(object, options)
38
+ else
39
+ MultiJson.encode(object, options)
40
+ end
41
+ end
42
+
43
+ def self.load_json(json, options={})
44
+ if MultiJson.respond_to?(:adapter)
45
+ MultiJson.load(json, options)
46
+ else
47
+ MultiJson.decode(json, options)
48
+ end
49
+ end
33
50
  end
34
51
  end
@@ -80,7 +80,7 @@ module Bugsnag
80
80
  }.reject {|k,v| v.nil? }]
81
81
  }
82
82
 
83
- self.class.deliver_exception_payload(endpoint, MultiJson.dump(payload))
83
+ self.class.deliver_exception_payload(endpoint, Bugsnag::Helpers.dump_json(payload))
84
84
  end
85
85
 
86
86
  def ignore?
@@ -2,6 +2,11 @@ module Bugsnag
2
2
  class Rack
3
3
  def initialize(app)
4
4
  @app = app
5
+
6
+ # Automatically set the release_stage
7
+ Bugsnag.configuration.release_stage = ENV['RACK_ENV'] if ENV['RACK_ENV']
8
+
9
+ # Automatically set the project_root if possible
5
10
  if Bugsnag.configuration.project_root.nil? || Bugsnag.configuration.project_root.empty?
6
11
  if defined?(settings)
7
12
  Bugsnag.configuration.project_root = settings.root
@@ -20,44 +25,46 @@ module Bugsnag
20
25
  begin
21
26
  response = @app.call(env)
22
27
  rescue Exception => raised
23
- Bugsnag.auto_notify(raised, bugsnag_request_data(env))
28
+ Bugsnag.auto_notify(raised, self.class.bugsnag_request_data(env))
24
29
  raise
25
30
  end
26
31
 
27
32
  if env['rack.exception']
28
- Bugsnag.auto_notify(env['rack.exception'], bugsnag_request_data(env))
33
+ Bugsnag.auto_notify(env['rack.exception'], self.class.bugsnag_request_data(env))
29
34
  end
30
35
 
31
36
  response
32
37
  end
33
-
34
- private
35
- def bugsnag_request_data(env)
36
- request = ::Rack::Request.new(env)
37
-
38
- session = env["rack.session"]
39
- params = env["action_dispatch.request.parameters"] || request.params
40
- user_id = session[:session_id] || session["session_id"] if session
41
-
42
- {
43
- :user_id => user_id,
44
- :context => Bugsnag::Helpers.param_context(params) || Bugsnag::Helpers.request_context(request),
45
- :meta_data => {
46
- :request => {
47
- :url => request.url,
48
- :controller => params[:controller],
49
- :action => params[:action],
50
- :params => bugsnag_filter_if_filtering(env, Bugsnag::Helpers.cleanup_hash(params.to_hash)),
51
- },
52
- :session => bugsnag_filter_if_filtering(env, Bugsnag::Helpers.cleanup_hash(session)),
53
- :environment => bugsnag_filter_if_filtering(env, Bugsnag::Helpers.cleanup_hash(env))
38
+
39
+ class << self
40
+ def bugsnag_request_data(env)
41
+ request = ::Rack::Request.new(env)
42
+
43
+ session = env["rack.session"]
44
+ params = env["action_dispatch.request.parameters"] || request.params
45
+ user_id = session[:session_id] || session["session_id"] rescue nil
46
+
47
+ {
48
+ :user_id => user_id,
49
+ :context => Bugsnag::Helpers.param_context(params) || Bugsnag::Helpers.request_context(request),
50
+ :meta_data => {
51
+ :request => {
52
+ :url => request.url,
53
+ :controller => params[:controller],
54
+ :action => params[:action],
55
+ :params => bugsnag_filter_if_filtering(env, Bugsnag::Helpers.cleanup_hash(params.to_hash)),
56
+ },
57
+ :session => bugsnag_filter_if_filtering(env, Bugsnag::Helpers.cleanup_hash(session)),
58
+ :environment => bugsnag_filter_if_filtering(env, Bugsnag::Helpers.cleanup_hash(env))
59
+ }
54
60
  }
55
- }
56
- end
61
+ end
57
62
 
58
- def bugsnag_filter_if_filtering(env, hash)
59
- @params_filters ||= env["action_dispatch.parameter_filter"]
60
- Bugsnag::Helpers.apply_filters(hash, @params_filters)
63
+ private
64
+ def bugsnag_filter_if_filtering(env, hash)
65
+ @params_filters ||= env["action_dispatch.parameter_filter"]
66
+ Bugsnag::Helpers.apply_filters(hash, @params_filters)
67
+ end
61
68
  end
62
69
  end
63
70
  end
@@ -10,7 +10,11 @@ module Bugsnag
10
10
  end
11
11
 
12
12
  initializer "bugsnag.use_rack_middleware" do |app|
13
- app.config.middleware.use "Bugsnag::Rack"
13
+ begin
14
+ app.config.middleware.insert_after ActionDispatch::ShowExceptions, "Bugsnag::Rack"
15
+ rescue
16
+ app.config.middleware.use "Bugsnag::Rack"
17
+ end
14
18
  end
15
19
 
16
20
  config.after_initialize do
@@ -26,7 +26,7 @@ namespace :bugsnag do
26
26
  + "/deploy"
27
27
 
28
28
  HTTParty.post(endpoint, {
29
- :body => MultiJson.dump(payload),
29
+ :body => Bugsnag::Helpers.dump_json(payload),
30
30
  :headers => {"Content-Type" => "application/json"}
31
31
  })
32
32
  rescue Exception => e
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bugsnag
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 2
10
- version: 1.1.2
9
+ - 3
10
+ version: 1.1.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - James Smith
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-07-25 00:00:00 Z
18
+ date: 2012-09-12 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  requirement: &id001 !ruby/object:Gem::Requirement
@@ -23,16 +23,15 @@ dependencies:
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- hash: 19
26
+ hash: 15
27
27
  segments:
28
28
  - 1
29
- - 3
30
- - 4
31
- version: 1.3.4
32
- version_requirements: *id001
33
- name: multi_json
29
+ - 0
30
+ version: "1.0"
34
31
  prerelease: false
35
32
  type: :runtime
33
+ name: multi_json
34
+ version_requirements: *id001
36
35
  - !ruby/object:Gem::Dependency
37
36
  requirement: &id002 !ruby/object:Gem::Requirement
38
37
  none: false
@@ -45,10 +44,10 @@ dependencies:
45
44
  - 8
46
45
  - 3
47
46
  version: 0.8.3
48
- version_requirements: *id002
49
- name: httparty
50
47
  prerelease: false
51
48
  type: :runtime
49
+ name: httparty
50
+ version_requirements: *id002
52
51
  - !ruby/object:Gem::Dependency
53
52
  requirement: &id003 !ruby/object:Gem::Requirement
54
53
  none: false
@@ -59,10 +58,10 @@ dependencies:
59
58
  segments:
60
59
  - 0
61
60
  version: "0"
62
- version_requirements: *id003
63
- name: shoulda
64
61
  prerelease: false
65
62
  type: :development
63
+ name: shoulda
64
+ version_requirements: *id003
66
65
  - !ruby/object:Gem::Dependency
67
66
  requirement: &id004 !ruby/object:Gem::Requirement
68
67
  none: false
@@ -75,10 +74,10 @@ dependencies:
75
74
  - 6
76
75
  - 4
77
76
  version: 1.6.4
78
- version_requirements: *id004
79
- name: jeweler
80
77
  prerelease: false
81
78
  type: :development
79
+ name: jeweler
80
+ version_requirements: *id004
82
81
  - !ruby/object:Gem::Dependency
83
82
  requirement: &id005 !ruby/object:Gem::Requirement
84
83
  none: false
@@ -89,10 +88,10 @@ dependencies:
89
88
  segments:
90
89
  - 0
91
90
  version: "0"
92
- version_requirements: *id005
93
- name: rcov
94
91
  prerelease: false
95
92
  type: :development
93
+ name: rcov
94
+ version_requirements: *id005
96
95
  description: Ruby notifier for bugsnag.com
97
96
  email: james@bugsnag.com
98
97
  executables: []