bugsnag 1.3.6 → 1.3.7

Sign up to get free protection for your applications and to get access to all the features.
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