bugsnag 6.10.0 → 6.11.0
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.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +4 -0
- data/CHANGELOG.md +20 -0
- data/Gemfile +1 -0
- data/README.md +1 -0
- data/VERSION +1 -1
- data/features/fixtures/docker-compose.yml +13 -0
- data/features/fixtures/rails3/app/app/controllers/breadcrumbs_controller.rb +19 -0
- data/features/fixtures/rails3/app/app/controllers/session_tracking_controller.rb +10 -6
- data/features/fixtures/rails3/app/config/initializers/bugsnag.rb +8 -2
- data/features/fixtures/rails3/app/config/routes.rb +1 -0
- data/features/fixtures/rails4/app/Gemfile +5 -1
- data/features/fixtures/rails4/app/app/controllers/breadcrumbs_controller.rb +26 -0
- data/features/fixtures/rails4/app/app/controllers/mongo_controller.rb +23 -0
- data/features/fixtures/rails4/app/app/controllers/session_tracking_controller.rb +9 -5
- data/features/fixtures/rails4/app/app/jobs/application_job.rb +2 -0
- data/features/fixtures/rails4/app/app/jobs/notify_job.rb +5 -0
- data/features/fixtures/rails4/app/app/models/mongo_model.rb +6 -0
- data/features/fixtures/rails4/app/config/initializers/bugsnag.rb +7 -1
- data/features/fixtures/rails4/app/config/mongoid.yml +22 -0
- data/features/fixtures/rails4/app/config/routes.rb +2 -0
- data/features/fixtures/rails5/app/Gemfile +4 -0
- data/features/fixtures/rails5/app/app/controllers/breadcrumbs_controller.rb +24 -0
- data/features/fixtures/rails5/app/app/controllers/mongo_controller.rb +22 -0
- data/features/fixtures/rails5/app/app/controllers/session_tracking_controller.rb +9 -5
- data/features/fixtures/rails5/app/app/jobs/notify_job.rb +5 -0
- data/features/fixtures/rails5/app/app/models/mongo_model.rb +6 -0
- data/features/fixtures/rails5/app/config/initializers/bugsnag.rb +7 -1
- data/features/fixtures/rails5/app/config/mongoid.yml +23 -0
- data/features/fixtures/rails5/app/config/routes.rb +11 -1
- data/features/rails_features/auto_capture_sessions.feature +55 -5
- data/features/rails_features/breadcrumbs.feature +135 -0
- data/features/rails_features/mongo_breadcrumbs.feature +100 -0
- data/features/steps/ruby_notifier_steps.rb +6 -0
- data/lib/bugsnag.rb +59 -3
- data/lib/bugsnag/breadcrumbs/breadcrumb.rb +76 -0
- data/lib/bugsnag/breadcrumbs/breadcrumbs.rb +14 -0
- data/lib/bugsnag/breadcrumbs/validator.rb +59 -0
- data/lib/bugsnag/configuration.rb +103 -6
- data/lib/bugsnag/integrations/mongo.rb +132 -0
- data/lib/bugsnag/integrations/rails/rails_breadcrumbs.rb +118 -0
- data/lib/bugsnag/integrations/railtie.rb +28 -1
- data/lib/bugsnag/middleware/breadcrumbs.rb +21 -0
- data/lib/bugsnag/report.rb +30 -1
- data/lib/bugsnag/session_tracker.rb +1 -0
- data/lib/bugsnag/utility/circular_buffer.rb +62 -0
- data/spec/breadcrumbs/breadcrumb_spec.rb +93 -0
- data/spec/breadcrumbs/validator_spec.rb +200 -0
- data/spec/bugsnag_spec.rb +230 -0
- data/spec/configuration_spec.rb +176 -2
- data/spec/integrations/mongo_spec.rb +262 -0
- data/spec/report_spec.rb +149 -0
- data/spec/session_tracker_spec.rb +24 -2
- data/spec/utility/circular_buffer_spec.rb +98 -0
- metadata +27 -2
data/spec/report_spec.rb
CHANGED
@@ -1101,6 +1101,155 @@ describe Bugsnag::Report do
|
|
1101
1101
|
}
|
1102
1102
|
end
|
1103
1103
|
|
1104
|
+
describe "breadcrumbs" do
|
1105
|
+
let(:timestamp_regex) { /^\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:[\d\.]+Z$/ }
|
1106
|
+
|
1107
|
+
it "includes left breadcrumbs" do
|
1108
|
+
Bugsnag.leave_breadcrumb("Test breadcrumb")
|
1109
|
+
notify_test_exception
|
1110
|
+
expect(Bugsnag).to have_sent_notification { |payload, headers|
|
1111
|
+
event = get_event_from_payload(payload)
|
1112
|
+
expect(event["breadcrumbs"].size).to eq(1)
|
1113
|
+
expect(event["breadcrumbs"].first).to match({
|
1114
|
+
"name" => "Test breadcrumb",
|
1115
|
+
"type" => "manual",
|
1116
|
+
"metaData" => {},
|
1117
|
+
"timestamp" => match(timestamp_regex)
|
1118
|
+
})
|
1119
|
+
}
|
1120
|
+
end
|
1121
|
+
|
1122
|
+
it "filters left breadcrumbs" do
|
1123
|
+
Bugsnag.leave_breadcrumb("Test breadcrumb", {
|
1124
|
+
:forbidden_key => false,
|
1125
|
+
:allowed_key => true
|
1126
|
+
})
|
1127
|
+
Bugsnag.configuration.meta_data_filters << "forbidden"
|
1128
|
+
notify_test_exception
|
1129
|
+
expect(Bugsnag).to have_sent_notification { |payload, headers|
|
1130
|
+
event = get_event_from_payload(payload)
|
1131
|
+
expect(event["breadcrumbs"].size).to eq(1)
|
1132
|
+
expect(event["breadcrumbs"].first).to match({
|
1133
|
+
"name" => "Test breadcrumb",
|
1134
|
+
"type" => "manual",
|
1135
|
+
"metaData" => {
|
1136
|
+
"forbidden_key" => "[FILTERED]",
|
1137
|
+
"allowed_key" => true
|
1138
|
+
},
|
1139
|
+
"timestamp" => match(timestamp_regex)
|
1140
|
+
})
|
1141
|
+
}
|
1142
|
+
end
|
1143
|
+
|
1144
|
+
it "defaults to an empty array" do
|
1145
|
+
notify_test_exception
|
1146
|
+
expect(Bugsnag).to have_sent_notification { |payload, headers|
|
1147
|
+
event = get_event_from_payload(payload)
|
1148
|
+
expect(event["breadcrumbs"].size).to eq(0)
|
1149
|
+
}
|
1150
|
+
end
|
1151
|
+
|
1152
|
+
it "allows breadcrumbs to be editted in callbacks" do
|
1153
|
+
Bugsnag.leave_breadcrumb("Test breadcrumb")
|
1154
|
+
Bugsnag.before_notify_callbacks << Proc.new { |report|
|
1155
|
+
breadcrumb = report.breadcrumbs.first
|
1156
|
+
breadcrumb.meta_data = {:a => 1, :b => 2}
|
1157
|
+
}
|
1158
|
+
notify_test_exception
|
1159
|
+
expect(Bugsnag).to have_sent_notification { |payload, headers|
|
1160
|
+
event = get_event_from_payload(payload)
|
1161
|
+
expect(event["breadcrumbs"].size).to eq(1)
|
1162
|
+
expect(event["breadcrumbs"].first).to match({
|
1163
|
+
"name" => "Test breadcrumb",
|
1164
|
+
"type" => "manual",
|
1165
|
+
"metaData" => {"a" => 1, "b" => 2},
|
1166
|
+
"timestamp" => match(timestamp_regex)
|
1167
|
+
})
|
1168
|
+
}
|
1169
|
+
end
|
1170
|
+
end
|
1171
|
+
|
1172
|
+
describe "#summary" do
|
1173
|
+
it "provides a hash of the name, message, and severity" do
|
1174
|
+
begin
|
1175
|
+
1/0
|
1176
|
+
rescue ZeroDivisionError => e
|
1177
|
+
report = Bugsnag::Report.new(e, Bugsnag.configuration)
|
1178
|
+
|
1179
|
+
expect(report.summary).to eq({
|
1180
|
+
:error_class => "ZeroDivisionError",
|
1181
|
+
:message => "divided by 0",
|
1182
|
+
:severity => "warning"
|
1183
|
+
})
|
1184
|
+
end
|
1185
|
+
end
|
1186
|
+
|
1187
|
+
it "handles strings" do
|
1188
|
+
report = Bugsnag::Report.new("test string", Bugsnag.configuration)
|
1189
|
+
|
1190
|
+
expect(report.summary).to eq({
|
1191
|
+
:error_class => "RuntimeError",
|
1192
|
+
:message => "test string",
|
1193
|
+
:severity => "warning"
|
1194
|
+
})
|
1195
|
+
end
|
1196
|
+
|
1197
|
+
it "handles error edge cases" do
|
1198
|
+
report = Bugsnag::Report.new(Timeout::Error, Bugsnag.configuration)
|
1199
|
+
|
1200
|
+
expect(report.summary).to eq({
|
1201
|
+
:error_class => "Timeout::Error",
|
1202
|
+
:message => "Timeout::Error",
|
1203
|
+
:severity => "warning"
|
1204
|
+
})
|
1205
|
+
end
|
1206
|
+
|
1207
|
+
it "handles empty exceptions" do
|
1208
|
+
begin
|
1209
|
+
1/0
|
1210
|
+
rescue ZeroDivisionError => e
|
1211
|
+
report = Bugsnag::Report.new(e, Bugsnag.configuration)
|
1212
|
+
|
1213
|
+
report.exceptions = []
|
1214
|
+
|
1215
|
+
expect(report.summary).to eq({
|
1216
|
+
:error_class => "Unknown",
|
1217
|
+
:severity => "warning"
|
1218
|
+
})
|
1219
|
+
end
|
1220
|
+
end
|
1221
|
+
|
1222
|
+
it "handles removed exceptions" do
|
1223
|
+
begin
|
1224
|
+
1/0
|
1225
|
+
rescue ZeroDivisionError => e
|
1226
|
+
report = Bugsnag::Report.new(e, Bugsnag.configuration)
|
1227
|
+
|
1228
|
+
report.exceptions = nil
|
1229
|
+
|
1230
|
+
expect(report.summary).to eq({
|
1231
|
+
:error_class => "Unknown",
|
1232
|
+
:severity => "warning"
|
1233
|
+
})
|
1234
|
+
end
|
1235
|
+
end
|
1236
|
+
|
1237
|
+
it "handles exceptions being replaced" do
|
1238
|
+
begin
|
1239
|
+
1/0
|
1240
|
+
rescue ZeroDivisionError => e
|
1241
|
+
report = Bugsnag::Report.new(e, Bugsnag.configuration)
|
1242
|
+
|
1243
|
+
report.exceptions = "no one should ever do this"
|
1244
|
+
|
1245
|
+
expect(report.summary).to eq({
|
1246
|
+
:error_class => "Unknown",
|
1247
|
+
:severity => "warning"
|
1248
|
+
})
|
1249
|
+
end
|
1250
|
+
end
|
1251
|
+
end
|
1252
|
+
|
1104
1253
|
if defined?(JRUBY_VERSION)
|
1105
1254
|
|
1106
1255
|
it "should work with java.lang.Throwables" do
|
@@ -2,6 +2,14 @@
|
|
2
2
|
require 'webrick'
|
3
3
|
require 'spec_helper'
|
4
4
|
require 'json'
|
5
|
+
require 'concurrent'
|
6
|
+
|
7
|
+
# Enable reset of session_counts between each example
|
8
|
+
module Bugsnag
|
9
|
+
class SessionTracker
|
10
|
+
attr_accessor :session_counts
|
11
|
+
end
|
12
|
+
end
|
5
13
|
|
6
14
|
describe Bugsnag::SessionTracker do
|
7
15
|
server = nil
|
@@ -19,6 +27,10 @@ describe Bugsnag::SessionTracker do
|
|
19
27
|
Thread.new{ server.start }
|
20
28
|
end
|
21
29
|
|
30
|
+
after(:each) do
|
31
|
+
Bugsnag.instance_variable_set(:@session_tracker, Bugsnag::SessionTracker.new)
|
32
|
+
end
|
33
|
+
|
22
34
|
after do
|
23
35
|
Bugsnag.configure do |conf|
|
24
36
|
conf.auto_capture_sessions = false
|
@@ -60,11 +72,21 @@ describe Bugsnag::SessionTracker do
|
|
60
72
|
expect(session_one[:id]).to_not eq(session_two[:id])
|
61
73
|
end
|
62
74
|
|
75
|
+
it 'will not create sessions if Configuration.enable_sessions is false' do
|
76
|
+
Bugsnag.configure do |conf|
|
77
|
+
conf.set_endpoints("http://localhost:#{server.config[:Port]}", nil)
|
78
|
+
end
|
79
|
+
expect(Bugsnag.configuration.enable_sessions).to eq(false)
|
80
|
+
expect(Bugsnag.session_tracker.session_counts.size).to eq(0)
|
81
|
+
Bugsnag.start_session
|
82
|
+
expect(Bugsnag.session_tracker.session_counts.size).to eq(0)
|
83
|
+
end
|
84
|
+
|
63
85
|
it 'sends sessions when send_sessions is called' do
|
64
86
|
Bugsnag.configure do |conf|
|
65
87
|
conf.auto_capture_sessions = true
|
66
88
|
conf.delivery_method = :synchronous
|
67
|
-
conf.
|
89
|
+
conf.set_endpoints("http://localhost:#{server.config[:Port]}", "http://localhost:#{server.config[:Port]}")
|
68
90
|
end
|
69
91
|
WebMock.allow_net_connect!
|
70
92
|
Bugsnag.start_session
|
@@ -84,7 +106,7 @@ describe Bugsnag::SessionTracker do
|
|
84
106
|
conf.auto_capture_sessions = true
|
85
107
|
conf.release_stage = "test_stage"
|
86
108
|
conf.delivery_method = :synchronous
|
87
|
-
conf.
|
109
|
+
conf.set_endpoints("http://localhost:#{server.config[:Port]}", "http://localhost:#{server.config[:Port]}")
|
88
110
|
end
|
89
111
|
WebMock.allow_net_connect!
|
90
112
|
Bugsnag.start_session
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'bugsnag/utility/circular_buffer'
|
5
|
+
|
6
|
+
RSpec.describe Bugsnag::Utility::CircularBuffer do
|
7
|
+
describe "#initialize" do
|
8
|
+
it "contains no items" do
|
9
|
+
buffer = Bugsnag::Utility::CircularBuffer.new
|
10
|
+
|
11
|
+
expect(buffer.to_a).to eq([])
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#max_items" do
|
16
|
+
it "defaults to 25" do
|
17
|
+
buffer = Bugsnag::Utility::CircularBuffer.new
|
18
|
+
|
19
|
+
expect(buffer.max_items).to equal 25
|
20
|
+
end
|
21
|
+
|
22
|
+
it "can be set during #initialize" do
|
23
|
+
buffer = Bugsnag::Utility::CircularBuffer.new(10)
|
24
|
+
|
25
|
+
expect(buffer.max_items).to equal 10
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "#max_items=" do
|
30
|
+
it "changes #max_items" do
|
31
|
+
buffer = Bugsnag::Utility::CircularBuffer.new(10)
|
32
|
+
buffer.max_items = 17
|
33
|
+
|
34
|
+
expect(buffer.max_items).to equal(17)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "shifts any excess items when reduced" do
|
38
|
+
buffer = Bugsnag::Utility::CircularBuffer.new(10)
|
39
|
+
(0...10).each { |x| buffer << x }
|
40
|
+
buffer.max_items = 3
|
41
|
+
|
42
|
+
expect(buffer.to_a).to eq([7, 8, 9])
|
43
|
+
end
|
44
|
+
|
45
|
+
it "increases the maximum capacity" do
|
46
|
+
buffer = Bugsnag::Utility::CircularBuffer.new(3)
|
47
|
+
buffer << 1
|
48
|
+
buffer << 2
|
49
|
+
buffer << 3
|
50
|
+
|
51
|
+
expect(buffer.to_a).to eq([1, 2, 3])
|
52
|
+
|
53
|
+
buffer.max_items = 5
|
54
|
+
buffer << 4
|
55
|
+
buffer << 5
|
56
|
+
|
57
|
+
expect(buffer.to_a).to eq([1, 2, 3, 4, 5])
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe "#<<" do
|
62
|
+
it "adds items to the buffer" do
|
63
|
+
buffer = Bugsnag::Utility::CircularBuffer.new
|
64
|
+
buffer << 1
|
65
|
+
expect(buffer.to_a).to eq([1])
|
66
|
+
end
|
67
|
+
|
68
|
+
it "shifts items it #max_items is exceeded" do
|
69
|
+
buffer = Bugsnag::Utility::CircularBuffer.new(5)
|
70
|
+
(0...10).each { |x| buffer << x }
|
71
|
+
|
72
|
+
expect(buffer.to_a).to eq([5, 6, 7, 8, 9])
|
73
|
+
end
|
74
|
+
|
75
|
+
it "can be chained" do
|
76
|
+
buffer = Bugsnag::Utility::CircularBuffer.new
|
77
|
+
buffer << 1 << 2 << 3 << 4 << 5
|
78
|
+
|
79
|
+
expect(buffer.to_a).to eq([1, 2, 3, 4, 5])
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe "#each" do
|
84
|
+
it "can be iterated over" do
|
85
|
+
buffer = Bugsnag::Utility::CircularBuffer.new
|
86
|
+
buffer << 1
|
87
|
+
buffer << 2
|
88
|
+
buffer << 3
|
89
|
+
|
90
|
+
output = []
|
91
|
+
buffer.each do |x|
|
92
|
+
output << x
|
93
|
+
end
|
94
|
+
|
95
|
+
expect(output).to eq([1, 2, 3])
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
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: 6.
|
4
|
+
version: 6.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -210,6 +210,7 @@ files:
|
|
210
210
|
- features/fixtures/rails3/app/app/controllers/application_controller.rb
|
211
211
|
- features/fixtures/rails3/app/app/controllers/auto_notify_controller.rb
|
212
212
|
- features/fixtures/rails3/app/app/controllers/before_notify_controller.rb
|
213
|
+
- features/fixtures/rails3/app/app/controllers/breadcrumbs_controller.rb
|
213
214
|
- features/fixtures/rails3/app/app/controllers/handled_controller.rb
|
214
215
|
- features/fixtures/rails3/app/app/controllers/ignore_classes_controller.rb
|
215
216
|
- features/fixtures/rails3/app/app/controllers/metadata_filters_controller.rb
|
@@ -269,11 +270,13 @@ files:
|
|
269
270
|
- features/fixtures/rails4/app/app/controllers/application_controller.rb
|
270
271
|
- features/fixtures/rails4/app/app/controllers/auto_notify_controller.rb
|
271
272
|
- features/fixtures/rails4/app/app/controllers/before_notify_controller.rb
|
273
|
+
- features/fixtures/rails4/app/app/controllers/breadcrumbs_controller.rb
|
272
274
|
- features/fixtures/rails4/app/app/controllers/concerns/.keep
|
273
275
|
- features/fixtures/rails4/app/app/controllers/devise_controller.rb
|
274
276
|
- features/fixtures/rails4/app/app/controllers/handled_controller.rb
|
275
277
|
- features/fixtures/rails4/app/app/controllers/ignore_classes_controller.rb
|
276
278
|
- features/fixtures/rails4/app/app/controllers/metadata_filters_controller.rb
|
279
|
+
- features/fixtures/rails4/app/app/controllers/mongo_controller.rb
|
277
280
|
- features/fixtures/rails4/app/app/controllers/project_root_controller.rb
|
278
281
|
- features/fixtures/rails4/app/app/controllers/release_stage_controller.rb
|
279
282
|
- features/fixtures/rails4/app/app/controllers/send_code_controller.rb
|
@@ -281,9 +284,12 @@ files:
|
|
281
284
|
- features/fixtures/rails4/app/app/controllers/session_tracking_controller.rb
|
282
285
|
- features/fixtures/rails4/app/app/controllers/unhandled_controller.rb
|
283
286
|
- features/fixtures/rails4/app/app/helpers/application_helper.rb
|
287
|
+
- features/fixtures/rails4/app/app/jobs/application_job.rb
|
288
|
+
- features/fixtures/rails4/app/app/jobs/notify_job.rb
|
284
289
|
- features/fixtures/rails4/app/app/mailers/.keep
|
285
290
|
- features/fixtures/rails4/app/app/models/.keep
|
286
291
|
- features/fixtures/rails4/app/app/models/concerns/.keep
|
292
|
+
- features/fixtures/rails4/app/app/models/mongo_model.rb
|
287
293
|
- features/fixtures/rails4/app/app/models/user.rb
|
288
294
|
- features/fixtures/rails4/app/app/views/layouts/application.html.erb
|
289
295
|
- features/fixtures/rails4/app/config.ru
|
@@ -306,6 +312,7 @@ files:
|
|
306
312
|
- features/fixtures/rails4/app/config/initializers/wrap_parameters.rb
|
307
313
|
- features/fixtures/rails4/app/config/locales/devise.en.yml
|
308
314
|
- features/fixtures/rails4/app/config/locales/en.yml
|
315
|
+
- features/fixtures/rails4/app/config/mongoid.yml
|
309
316
|
- features/fixtures/rails4/app/config/routes.rb
|
310
317
|
- features/fixtures/rails4/app/db/migrate/20180420160315_devise_create_users.rb
|
311
318
|
- features/fixtures/rails4/app/db/seeds.rb
|
@@ -344,11 +351,13 @@ files:
|
|
344
351
|
- features/fixtures/rails5/app/app/controllers/application_controller.rb
|
345
352
|
- features/fixtures/rails5/app/app/controllers/auto_notify_controller.rb
|
346
353
|
- features/fixtures/rails5/app/app/controllers/before_notify_controller.rb
|
354
|
+
- features/fixtures/rails5/app/app/controllers/breadcrumbs_controller.rb
|
347
355
|
- features/fixtures/rails5/app/app/controllers/clearance_controller.rb
|
348
356
|
- features/fixtures/rails5/app/app/controllers/concerns/.keep
|
349
357
|
- features/fixtures/rails5/app/app/controllers/handled_controller.rb
|
350
358
|
- features/fixtures/rails5/app/app/controllers/ignore_classes_controller.rb
|
351
359
|
- features/fixtures/rails5/app/app/controllers/metadata_filters_controller.rb
|
360
|
+
- features/fixtures/rails5/app/app/controllers/mongo_controller.rb
|
352
361
|
- features/fixtures/rails5/app/app/controllers/project_root_controller.rb
|
353
362
|
- features/fixtures/rails5/app/app/controllers/release_stage_controller.rb
|
354
363
|
- features/fixtures/rails5/app/app/controllers/send_code_controller.rb
|
@@ -357,9 +366,11 @@ files:
|
|
357
366
|
- features/fixtures/rails5/app/app/controllers/unhandled_controller.rb
|
358
367
|
- features/fixtures/rails5/app/app/helpers/application_helper.rb
|
359
368
|
- features/fixtures/rails5/app/app/jobs/application_job.rb
|
369
|
+
- features/fixtures/rails5/app/app/jobs/notify_job.rb
|
360
370
|
- features/fixtures/rails5/app/app/mailers/application_mailer.rb
|
361
371
|
- features/fixtures/rails5/app/app/models/application_record.rb
|
362
372
|
- features/fixtures/rails5/app/app/models/concerns/.keep
|
373
|
+
- features/fixtures/rails5/app/app/models/mongo_model.rb
|
363
374
|
- features/fixtures/rails5/app/app/models/user.rb
|
364
375
|
- features/fixtures/rails5/app/app/views/layouts/application.html.erb
|
365
376
|
- features/fixtures/rails5/app/app/views/layouts/mailer.html.erb
|
@@ -387,6 +398,7 @@ files:
|
|
387
398
|
- features/fixtures/rails5/app/config/initializers/wrap_parameters.rb
|
388
399
|
- features/fixtures/rails5/app/config/locales/devise.en.yml
|
389
400
|
- features/fixtures/rails5/app/config/locales/en.yml
|
401
|
+
- features/fixtures/rails5/app/config/mongoid.yml
|
390
402
|
- features/fixtures/rails5/app/config/puma.rb
|
391
403
|
- features/fixtures/rails5/app/config/routes.rb
|
392
404
|
- features/fixtures/rails5/app/config/secrets.yml
|
@@ -460,9 +472,11 @@ files:
|
|
460
472
|
- features/rails_features/auto_capture_sessions.feature
|
461
473
|
- features/rails_features/auto_notify.feature
|
462
474
|
- features/rails_features/before_notify.feature
|
475
|
+
- features/rails_features/breadcrumbs.feature
|
463
476
|
- features/rails_features/handled.feature
|
464
477
|
- features/rails_features/ignore_classes.feature
|
465
478
|
- features/rails_features/meta_data_filters.feature
|
479
|
+
- features/rails_features/mongo_breadcrumbs.feature
|
466
480
|
- features/rails_features/project_root.feature
|
467
481
|
- features/rails_features/release_stage.feature
|
468
482
|
- features/rails_features/send_code.feature
|
@@ -474,6 +488,9 @@ files:
|
|
474
488
|
- features/support/env.rb
|
475
489
|
- issue_template.md
|
476
490
|
- lib/bugsnag.rb
|
491
|
+
- lib/bugsnag/breadcrumbs/breadcrumb.rb
|
492
|
+
- lib/bugsnag/breadcrumbs/breadcrumbs.rb
|
493
|
+
- lib/bugsnag/breadcrumbs/validator.rb
|
477
494
|
- lib/bugsnag/cleaner.rb
|
478
495
|
- lib/bugsnag/configuration.rb
|
479
496
|
- lib/bugsnag/delivery.rb
|
@@ -482,16 +499,19 @@ files:
|
|
482
499
|
- lib/bugsnag/helpers.rb
|
483
500
|
- lib/bugsnag/integrations/delayed_job.rb
|
484
501
|
- lib/bugsnag/integrations/mailman.rb
|
502
|
+
- lib/bugsnag/integrations/mongo.rb
|
485
503
|
- lib/bugsnag/integrations/que.rb
|
486
504
|
- lib/bugsnag/integrations/rack.rb
|
487
505
|
- lib/bugsnag/integrations/rails/active_record_rescue.rb
|
488
506
|
- lib/bugsnag/integrations/rails/controller_methods.rb
|
507
|
+
- lib/bugsnag/integrations/rails/rails_breadcrumbs.rb
|
489
508
|
- lib/bugsnag/integrations/railtie.rb
|
490
509
|
- lib/bugsnag/integrations/rake.rb
|
491
510
|
- lib/bugsnag/integrations/resque.rb
|
492
511
|
- lib/bugsnag/integrations/shoryuken.rb
|
493
512
|
- lib/bugsnag/integrations/sidekiq.rb
|
494
513
|
- lib/bugsnag/meta_data.rb
|
514
|
+
- lib/bugsnag/middleware/breadcrumbs.rb
|
495
515
|
- lib/bugsnag/middleware/callbacks.rb
|
496
516
|
- lib/bugsnag/middleware/classify_error.rb
|
497
517
|
- lib/bugsnag/middleware/clearance_user.rb
|
@@ -512,8 +532,11 @@ files:
|
|
512
532
|
- lib/bugsnag/stacktrace.rb
|
513
533
|
- lib/bugsnag/tasks.rb
|
514
534
|
- lib/bugsnag/tasks/bugsnag.rake
|
535
|
+
- lib/bugsnag/utility/circular_buffer.rb
|
515
536
|
- lib/bugsnag/version.rb
|
516
537
|
- lib/generators/bugsnag/bugsnag_generator.rb
|
538
|
+
- spec/breadcrumbs/breadcrumb_spec.rb
|
539
|
+
- spec/breadcrumbs/validator_spec.rb
|
517
540
|
- spec/bugsnag_spec.rb
|
518
541
|
- spec/cleaner_spec.rb
|
519
542
|
- spec/configuration_spec.rb
|
@@ -540,6 +563,7 @@ files:
|
|
540
563
|
- spec/integrations/clearance_user_spec.rb
|
541
564
|
- spec/integrations/logger_spec.rb
|
542
565
|
- spec/integrations/mailman_spec.rb
|
566
|
+
- spec/integrations/mongo_spec.rb
|
543
567
|
- spec/integrations/que_spec.rb
|
544
568
|
- spec/integrations/rack_spec.rb
|
545
569
|
- spec/integrations/rails3_request_spec.rb
|
@@ -555,6 +579,7 @@ files:
|
|
555
579
|
- spec/session_tracker_spec.rb
|
556
580
|
- spec/spec_helper.rb
|
557
581
|
- spec/stacktrace_spec.rb
|
582
|
+
- spec/utility/circular_buffer_spec.rb
|
558
583
|
homepage: https://github.com/bugsnag/bugsnag-ruby
|
559
584
|
licenses:
|
560
585
|
- MIT
|