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 +1 -1
- data/bugsnag.gemspec +14 -12
- data/lib/bugsnag/helpers.rb +8 -0
- data/lib/bugsnag/middleware/rack_request.rb +1 -1
- data/lib/bugsnag/middleware/rails2_request.rb +1 -1
- data/lib/bugsnag/middleware/warden_user.rb +8 -2
- data/lib/bugsnag/notification.rb +1 -0
- data/spec/helper_spec.rb +39 -0
- metadata +36 -49
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.
|
1
|
+
1.3.7
|
data/bugsnag.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "1.3.
|
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 =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
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 =
|
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 =
|
66
|
-
s.summary =
|
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::
|
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>, ["
|
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>, ["
|
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>, ["
|
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"])
|
data/lib/bugsnag/helpers.rb
CHANGED
@@ -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
|
-
|
25
|
-
|
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
|
data/lib/bugsnag/notification.rb
CHANGED
data/spec/helper_spec.rb
ADDED
@@ -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¶m2=value2"
|
6
|
+
|
7
|
+
url.should == "/dir/page?param1=value1¶m2=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¶m2=value2", ["param3"]
|
18
|
+
|
19
|
+
url.should == "/dir/page?param1=value1¶m2=value2"
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should filter a single get param" do
|
23
|
+
url = Bugsnag::Helpers.cleanup_url "/dir/page?param1=value1¶m2=value2", ["param1"]
|
24
|
+
|
25
|
+
url.should == "/dir/page?param1=[FILTERED]¶m2=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¶m2=value2&bla=yes', ["param"]
|
30
|
+
|
31
|
+
url.should == "/dir/page?param1=[FILTERED]¶m2=[FILTERED]&bla=yes"
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should filter multiple matches" do
|
35
|
+
url = Bugsnag::Helpers.cleanup_url "/dir/page?param1=value1¶m2=value2¶m3=value3", ["param1", "param2"]
|
36
|
+
|
37
|
+
url.should == "/dir/page?param1=[FILTERED]¶m2=[FILTERED]¶m3=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
|
-
|
5
|
-
prerelease:
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 1
|
8
7
|
- 3
|
9
|
-
-
|
10
|
-
version: 1.3.
|
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-
|
17
|
+
date: 2013-05-30 00:00:00 +01:00
|
18
|
+
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
|
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
|
-
|
32
|
+
requirement: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
32
34
|
prerelease: false
|
33
35
|
type: :runtime
|
34
|
-
name:
|
35
|
-
|
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
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
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
|
-
|
59
|
-
|
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
|
-
|
65
|
+
requirement: *id003
|
66
|
+
- !ruby/object:Gem::Dependency
|
70
67
|
prerelease: false
|
71
68
|
type: :development
|
72
|
-
name:
|
73
|
-
|
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
|
-
|
78
|
+
requirement: *id004
|
79
|
+
- !ruby/object:Gem::Dependency
|
85
80
|
prerelease: false
|
86
81
|
type: :development
|
87
|
-
name:
|
88
|
-
|
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
|
-
|
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.
|
171
|
+
rubygems_version: 1.3.6
|
185
172
|
signing_key:
|
186
173
|
specification_version: 3
|
187
174
|
summary: Ruby notifier for bugsnag.com
|