bugsnag 1.3.6 → 1.3.7

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/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.6
1
+ 1.3.7
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "bugsnag"
8
- s.version = "1.3.6"
7
+ s.name = %q{bugsnag}
8
+ s.version = "1.3.7"
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 = "2013-05-02"
13
- s.description = "Ruby notifier for bugsnag.com"
14
- s.email = "james@bugsnag.com"
12
+ s.date = %q{2013-05-30}
13
+ s.description = %q{Ruby notifier for bugsnag.com}
14
+ s.email = %q{james@bugsnag.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
17
  "README.md"
@@ -54,36 +54,38 @@ Gem::Specification.new do |s|
54
54
  "lib/bugsnag/version.rb",
55
55
  "lib/resque/failure/bugsnag.rb",
56
56
  "rails/init.rb",
57
+ "spec/helper_spec.rb",
57
58
  "spec/middleware_spec.rb",
58
59
  "spec/notification_spec.rb",
59
60
  "spec/rack_spec.rb",
60
61
  "spec/spec_helper.rb"
61
62
  ]
62
- s.homepage = "http://github.com/bugsnag/bugsnag-ruby"
63
+ s.homepage = %q{http://github.com/bugsnag/bugsnag-ruby}
63
64
  s.licenses = ["MIT"]
64
65
  s.require_paths = ["lib"]
65
- s.rubygems_version = "1.8.24"
66
- s.summary = "Ruby notifier for bugsnag.com"
66
+ s.rubygems_version = %q{1.3.6}
67
+ s.summary = %q{Ruby notifier for bugsnag.com}
67
68
 
68
69
  if s.respond_to? :specification_version then
70
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
69
71
  s.specification_version = 3
70
72
 
71
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
73
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
72
74
  s.add_runtime_dependency(%q<multi_json>, ["~> 1.0"])
73
- s.add_runtime_dependency(%q<httparty>, ["< 1.0", ">= 0.6"])
75
+ s.add_runtime_dependency(%q<httparty>, [">= 0.6", "< 1.0"])
74
76
  s.add_development_dependency(%q<rspec>, ["~> 2.11.0"])
75
77
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
76
78
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
77
79
  else
78
80
  s.add_dependency(%q<multi_json>, ["~> 1.0"])
79
- s.add_dependency(%q<httparty>, ["< 1.0", ">= 0.6"])
81
+ s.add_dependency(%q<httparty>, [">= 0.6", "< 1.0"])
80
82
  s.add_dependency(%q<rspec>, ["~> 2.11.0"])
81
83
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
82
84
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
83
85
  end
84
86
  else
85
87
  s.add_dependency(%q<multi_json>, ["~> 1.0"])
86
- s.add_dependency(%q<httparty>, ["< 1.0", ">= 0.6"])
88
+ s.add_dependency(%q<httparty>, [">= 0.6", "< 1.0"])
87
89
  s.add_dependency(%q<rspec>, ["~> 2.11.0"])
88
90
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
89
91
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
@@ -32,6 +32,14 @@ module Bugsnag
32
32
  obj.to_s unless obj.to_s =~ /#<.*>/
33
33
  end
34
34
  end
35
+
36
+ def self.cleanup_url(url, filters = nil)
37
+ return url unless filters
38
+
39
+ filter_regex = Regexp.new("([?&](?:[^&=]*#{filters.to_a.join('|[^&=]*')}[^&=]*)=)[^&]*")
40
+
41
+ url.gsub(filter_regex, '\1[FILTERED]')
42
+ end
35
43
 
36
44
  def self.reduce_hash_size(hash)
37
45
  return {} unless hash.is_a?(Hash)
@@ -21,7 +21,7 @@ module Bugsnag::Middleware
21
21
  # Build the clean url (hide the port if it is obvious)
22
22
  url = "#{request.scheme}://#{request.host}"
23
23
  url << ":#{request.port}" unless [80, 443].include?(request.port)
24
- url << request.fullpath
24
+ url << Bugsnag::Helpers.cleanup_url(request.fullpath, notification.configuration.params_filters)
25
25
 
26
26
  # Add a request tab
27
27
  notification.add_tab(:request, {
@@ -19,7 +19,7 @@ module Bugsnag::Middleware
19
19
  # Build the clean url
20
20
  url = "#{request.protocol}#{request.host}"
21
21
  url << ":#{request.port}" unless [80, 443].include?(request.port)
22
- url << request.fullpath
22
+ url << Helpers.cleanup_url(request.fullpath, notification.configuration.params_filters)
23
23
 
24
24
  # Add a request tab
25
25
  notification.add_tab(:request, {
@@ -21,8 +21,14 @@ module Bugsnag::Middleware
21
21
  # Set the user_id
22
22
  if best_scope
23
23
  scope_key = "warden.user.#{best_scope}.key"
24
- user_id = session[scope_key][1][0] rescue nil
25
- notification.user_id = user_id unless user_id.nil?
24
+ scope = session[scope_key]
25
+ if scope.is_a? Array
26
+ user_ids = scope.detect {|el| el.is_a? Array}
27
+ if user_ids
28
+ user_id = user_ids.first
29
+ notification.user_id = user_id unless user_id.nil?
30
+ end
31
+ end
26
32
  end
27
33
 
28
34
  # Extract useful user information
@@ -21,6 +21,7 @@ module Bugsnag
21
21
 
22
22
  attr_accessor :context
23
23
  attr_accessor :user_id
24
+ attr_accessor :configuration
24
25
 
25
26
  class << self
26
27
  def deliver_exception_payload(endpoint, payload)
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bugsnag::Helpers do
4
+ it "should work with no filters configured" do
5
+ url = Bugsnag::Helpers.cleanup_url "/dir/page?param1=value1&param2=value2"
6
+
7
+ url.should == "/dir/page?param1=value1&param2=value2"
8
+ end
9
+
10
+ it "should not filter with no get params" do
11
+ url = Bugsnag::Helpers.cleanup_url "/dir/page"
12
+
13
+ url.should == "/dir/page"
14
+ end
15
+
16
+ it "should leave a url alone if no filters match" do
17
+ url = Bugsnag::Helpers.cleanup_url "/dir/page?param1=value1&param2=value2", ["param3"]
18
+
19
+ url.should == "/dir/page?param1=value1&param2=value2"
20
+ end
21
+
22
+ it "should filter a single get param" do
23
+ url = Bugsnag::Helpers.cleanup_url "/dir/page?param1=value1&param2=value2", ["param1"]
24
+
25
+ url.should == "/dir/page?param1=[FILTERED]&param2=value2"
26
+ end
27
+
28
+ it "should filter a get param that contains a filtered term" do
29
+ url = Bugsnag::Helpers.cleanup_url '/dir/page?param1=value1&param2=value2&bla=yes', ["param"]
30
+
31
+ url.should == "/dir/page?param1=[FILTERED]&param2=[FILTERED]&bla=yes"
32
+ end
33
+
34
+ it "should filter multiple matches" do
35
+ url = Bugsnag::Helpers.cleanup_url "/dir/page?param1=value1&param2=value2&param3=value3", ["param1", "param2"]
36
+
37
+ url.should == "/dir/page?param1=[FILTERED]&param2=[FILTERED]&param3=value3"
38
+ end
39
+ end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bugsnag
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 1
8
7
  - 3
9
- - 6
10
- version: 1.3.6
8
+ - 7
9
+ version: 1.3.7
11
10
  platform: ruby
12
11
  authors:
13
12
  - James Smith
@@ -15,92 +14,82 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2013-05-02 00:00:00 Z
17
+ date: 2013-05-30 00:00:00 +01:00
18
+ default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- requirement: &id001 !ruby/object:Gem::Requirement
22
- none: false
21
+ prerelease: false
22
+ type: :runtime
23
+ name: multi_json
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
23
25
  requirements:
24
26
  - - ~>
25
27
  - !ruby/object:Gem::Version
26
- hash: 15
27
28
  segments:
28
29
  - 1
29
30
  - 0
30
31
  version: "1.0"
31
- version_requirements: *id001
32
+ requirement: *id001
33
+ - !ruby/object:Gem::Dependency
32
34
  prerelease: false
33
35
  type: :runtime
34
- name: multi_json
35
- - !ruby/object:Gem::Dependency
36
- requirement: &id002 !ruby/object:Gem::Requirement
37
- none: false
36
+ name: httparty
37
+ version_requirements: &id002 !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - <
40
- - !ruby/object:Gem::Version
41
- hash: 15
42
- segments:
43
- - 1
44
- - 0
45
- version: "1.0"
46
39
  - - ">="
47
40
  - !ruby/object:Gem::Version
48
- hash: 7
49
41
  segments:
50
42
  - 0
51
43
  - 6
52
44
  version: "0.6"
53
- version_requirements: *id002
54
- prerelease: false
55
- type: :runtime
56
- name: httparty
45
+ - - <
46
+ - !ruby/object:Gem::Version
47
+ segments:
48
+ - 1
49
+ - 0
50
+ version: "1.0"
51
+ requirement: *id002
57
52
  - !ruby/object:Gem::Dependency
58
- requirement: &id003 !ruby/object:Gem::Requirement
59
- none: false
53
+ prerelease: false
54
+ type: :development
55
+ name: rspec
56
+ version_requirements: &id003 !ruby/object:Gem::Requirement
60
57
  requirements:
61
58
  - - ~>
62
59
  - !ruby/object:Gem::Version
63
- hash: 35
64
60
  segments:
65
61
  - 2
66
62
  - 11
67
63
  - 0
68
64
  version: 2.11.0
69
- version_requirements: *id003
65
+ requirement: *id003
66
+ - !ruby/object:Gem::Dependency
70
67
  prerelease: false
71
68
  type: :development
72
- name: rspec
73
- - !ruby/object:Gem::Dependency
74
- requirement: &id004 !ruby/object:Gem::Requirement
75
- none: false
69
+ name: rdoc
70
+ version_requirements: &id004 !ruby/object:Gem::Requirement
76
71
  requirements:
77
72
  - - ~>
78
73
  - !ruby/object:Gem::Version
79
- hash: 31
80
74
  segments:
81
75
  - 3
82
76
  - 12
83
77
  version: "3.12"
84
- version_requirements: *id004
78
+ requirement: *id004
79
+ - !ruby/object:Gem::Dependency
85
80
  prerelease: false
86
81
  type: :development
87
- name: rdoc
88
- - !ruby/object:Gem::Dependency
89
- requirement: &id005 !ruby/object:Gem::Requirement
90
- none: false
82
+ name: jeweler
83
+ version_requirements: &id005 !ruby/object:Gem::Requirement
91
84
  requirements:
92
85
  - - ~>
93
86
  - !ruby/object:Gem::Version
94
- hash: 63
95
87
  segments:
96
88
  - 1
97
89
  - 8
98
90
  - 4
99
91
  version: 1.8.4
100
- version_requirements: *id005
101
- prerelease: false
102
- type: :development
103
- name: jeweler
92
+ requirement: *id005
104
93
  description: Ruby notifier for bugsnag.com
105
94
  email: james@bugsnag.com
106
95
  executables: []
@@ -148,10 +137,12 @@ files:
148
137
  - lib/bugsnag/version.rb
149
138
  - lib/resque/failure/bugsnag.rb
150
139
  - rails/init.rb
140
+ - spec/helper_spec.rb
151
141
  - spec/middleware_spec.rb
152
142
  - spec/notification_spec.rb
153
143
  - spec/rack_spec.rb
154
144
  - spec/spec_helper.rb
145
+ has_rdoc: true
155
146
  homepage: http://github.com/bugsnag/bugsnag-ruby
156
147
  licenses:
157
148
  - MIT
@@ -161,27 +152,23 @@ rdoc_options: []
161
152
  require_paths:
162
153
  - lib
163
154
  required_ruby_version: !ruby/object:Gem::Requirement
164
- none: false
165
155
  requirements:
166
156
  - - ">="
167
157
  - !ruby/object:Gem::Version
168
- hash: 3
169
158
  segments:
170
159
  - 0
171
160
  version: "0"
172
161
  required_rubygems_version: !ruby/object:Gem::Requirement
173
- none: false
174
162
  requirements:
175
163
  - - ">="
176
164
  - !ruby/object:Gem::Version
177
- hash: 3
178
165
  segments:
179
166
  - 0
180
167
  version: "0"
181
168
  requirements: []
182
169
 
183
170
  rubyforge_project:
184
- rubygems_version: 1.8.24
171
+ rubygems_version: 1.3.6
185
172
  signing_key:
186
173
  specification_version: 3
187
174
  summary: Ruby notifier for bugsnag.com