enhanced_errors 2.1.3 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/doc/method_list.html CHANGED
@@ -73,23 +73,23 @@
73
73
 
74
74
  <li class="even ">
75
75
  <div class="item">
76
- <span class='object_link'><a href="Exception.html#binding_infos-instance_method" title="Exception#binding_infos (method)">#binding_infos</a></span>
77
- <small>Exception</small>
76
+ <span class='object_link'><a href="Context.html#binding_infos-instance_method" title="Context#binding_infos (method)">#binding_infos</a></span>
77
+ <small>Context</small>
78
78
  </div>
79
79
  </li>
80
80
 
81
81
 
82
82
  <li class="odd ">
83
83
  <div class="item">
84
- <span class='object_link'><a href="EnhancedErrors.html#binding_infos_array_to_string-class_method" title="EnhancedErrors.binding_infos_array_to_string (method)">binding_infos_array_to_string</a></span>
85
- <small>EnhancedErrors</small>
84
+ <span class='object_link'><a href="ExceptionBindingInfos.html#binding_infos-instance_method" title="ExceptionBindingInfos#binding_infos (method)">#binding_infos</a></span>
85
+ <small>ExceptionBindingInfos</small>
86
86
  </div>
87
87
  </li>
88
88
 
89
89
 
90
90
  <li class="even ">
91
91
  <div class="item">
92
- <span class='object_link'><a href="EnhancedErrors.html#capture_events_count-class_method" title="EnhancedErrors.capture_events_count (method)">capture_events_count</a></span>
92
+ <span class='object_link'><a href="EnhancedErrors.html#binding_infos_array_to_string-class_method" title="EnhancedErrors.binding_infos_array_to_string (method)">binding_infos_array_to_string</a></span>
93
93
  <small>EnhancedErrors</small>
94
94
  </div>
95
95
  </li>
@@ -97,7 +97,7 @@
97
97
 
98
98
  <li class="odd ">
99
99
  <div class="item">
100
- <span class='object_link'><a href="EnhancedErrors.html#capture_events_count=-class_method" title="EnhancedErrors.capture_events_count= (method)">capture_events_count=</a></span>
100
+ <span class='object_link'><a href="EnhancedErrors.html#capture_events_count-class_method" title="EnhancedErrors.capture_events_count (method)">capture_events_count</a></span>
101
101
  <small>EnhancedErrors</small>
102
102
  </div>
103
103
  </li>
@@ -105,7 +105,7 @@
105
105
 
106
106
  <li class="even ">
107
107
  <div class="item">
108
- <span class='object_link'><a href="EnhancedErrors.html#capture_limit_exceeded%3F-class_method" title="EnhancedErrors.capture_limit_exceeded? (method)">capture_limit_exceeded?</a></span>
108
+ <span class='object_link'><a href="EnhancedErrors.html#capture_events_count=-class_method" title="EnhancedErrors.capture_events_count= (method)">capture_events_count=</a></span>
109
109
  <small>EnhancedErrors</small>
110
110
  </div>
111
111
  </li>
@@ -113,7 +113,7 @@
113
113
 
114
114
  <li class="odd ">
115
115
  <div class="item">
116
- <span class='object_link'><a href="EnhancedErrors.html#capture_rescue-class_method" title="EnhancedErrors.capture_rescue (method)">capture_rescue</a></span>
116
+ <span class='object_link'><a href="EnhancedErrors.html#capture_limit_exceeded%3F-class_method" title="EnhancedErrors.capture_limit_exceeded? (method)">capture_limit_exceeded?</a></span>
117
117
  <small>EnhancedErrors</small>
118
118
  </div>
119
119
  </li>
@@ -121,7 +121,7 @@
121
121
 
122
122
  <li class="even ">
123
123
  <div class="item">
124
- <span class='object_link'><a href="EnhancedErrors.html#capture_rescue=-class_method" title="EnhancedErrors.capture_rescue= (method)">capture_rescue=</a></span>
124
+ <span class='object_link'><a href="EnhancedErrors.html#capture_rescue-class_method" title="EnhancedErrors.capture_rescue (method)">capture_rescue</a></span>
125
125
  <small>EnhancedErrors</small>
126
126
  </div>
127
127
  </li>
@@ -129,13 +129,21 @@
129
129
 
130
130
  <li class="odd ">
131
131
  <div class="item">
132
- <span class='object_link'><a href="Exception.html#captured_variables-instance_method" title="Exception#captured_variables (method)">#captured_variables</a></span>
133
- <small>Exception</small>
132
+ <span class='object_link'><a href="EnhancedErrors.html#capture_rescue=-class_method" title="EnhancedErrors.capture_rescue= (method)">capture_rescue=</a></span>
133
+ <small>EnhancedErrors</small>
134
134
  </div>
135
135
  </li>
136
136
 
137
137
 
138
138
  <li class="even ">
139
+ <div class="item">
140
+ <span class='object_link'><a href="ExceptionBindingInfos.html#captured_variables-instance_method" title="ExceptionBindingInfos#captured_variables (method)">#captured_variables</a></span>
141
+ <small>ExceptionBindingInfos</small>
142
+ </div>
143
+ </li>
144
+
145
+
146
+ <li class="odd ">
139
147
  <div class="item">
140
148
  <span class='object_link'><a href="EnhancedErrors.html#class_to_string-class_method" title="EnhancedErrors.class_to_string (method)">class_to_string</a></span>
141
149
  <small>EnhancedErrors</small>
@@ -143,7 +151,23 @@
143
151
  </li>
144
152
 
145
153
 
154
+ <li class="even ">
155
+ <div class="item">
156
+ <span class='object_link'><a href="EnhancedExceptionContext.html#clear_all-instance_method" title="EnhancedExceptionContext#clear_all (method)">#clear_all</a></span>
157
+ <small>EnhancedExceptionContext</small>
158
+ </div>
159
+ </li>
160
+
161
+
146
162
  <li class="odd ">
163
+ <div class="item">
164
+ <span class='object_link'><a href="EnhancedExceptionContext.html#clear_context-instance_method" title="EnhancedExceptionContext#clear_context (method)">#clear_context</a></span>
165
+ <small>EnhancedExceptionContext</small>
166
+ </div>
167
+ </li>
168
+
169
+
170
+ <li class="even ">
147
171
  <div class="item">
148
172
  <span class='object_link'><a href="Enhanced/Colors.html#code-class_method" title="Enhanced::Colors.code (method)">code</a></span>
149
173
  <small>Enhanced::Colors</small>
@@ -151,7 +175,7 @@
151
175
  </li>
152
176
 
153
177
 
154
- <li class="even ">
178
+ <li class="odd ">
155
179
  <div class="item">
156
180
  <span class='object_link'><a href="Enhanced/Colors.html#color-class_method" title="Enhanced::Colors.color (method)">color</a></span>
157
181
  <small>Enhanced::Colors</small>
@@ -159,7 +183,7 @@
159
183
  </li>
160
184
 
161
185
 
162
- <li class="odd ">
186
+ <li class="even ">
163
187
  <div class="item">
164
188
  <span class='object_link'><a href="EnhancedErrors.html#config_block-class_method" title="EnhancedErrors.config_block (method)">config_block</a></span>
165
189
  <small>EnhancedErrors</small>
@@ -167,6 +191,14 @@
167
191
  </li>
168
192
 
169
193
 
194
+ <li class="odd ">
195
+ <div class="item">
196
+ <span class='object_link'><a href="EnhancedExceptionContext.html#context_for-instance_method" title="EnhancedExceptionContext#context_for (method)">#context_for</a></span>
197
+ <small>EnhancedExceptionContext</small>
198
+ </div>
199
+ </li>
200
+
201
+
170
202
  <li class="even ">
171
203
  <div class="item">
172
204
  <span class='object_link'><a href="EnhancedErrors.html#convert_binding_to_binding_info-class_method" title="EnhancedErrors.convert_binding_to_binding_info (method)">convert_binding_to_binding_info</a></span>
@@ -264,6 +296,14 @@
264
296
 
265
297
 
266
298
  <li class="even ">
299
+ <div class="item">
300
+ <span class='object_link'><a href="Context.html#initialize-instance_method" title="Context#initialize (method)">#initialize</a></span>
301
+ <small>Context</small>
302
+ </div>
303
+ </li>
304
+
305
+
306
+ <li class="odd ">
267
307
  <div class="item">
268
308
  <span class='object_link'><a href="EnhancedErrors.html#is_a_minitest%3F-class_method" title="EnhancedErrors.is_a_minitest? (method)">is_a_minitest?</a></span>
269
309
  <small>EnhancedErrors</small>
@@ -271,7 +311,7 @@
271
311
  </li>
272
312
 
273
313
 
274
- <li class="odd ">
314
+ <li class="even ">
275
315
  <div class="item">
276
316
  <span class='object_link'><a href="EnhancedErrors.html#is_rspec_example%3F-class_method" title="EnhancedErrors.is_rspec_example? (method)">is_rspec_example?</a></span>
277
317
  <small>EnhancedErrors</small>
@@ -279,7 +319,7 @@
279
319
  </li>
280
320
 
281
321
 
282
- <li class="even ">
322
+ <li class="odd ">
283
323
  <div class="item">
284
324
  <span class='object_link'><a href="EnhancedErrors.html#max_capture_events-class_method" title="EnhancedErrors.max_capture_events (method)">max_capture_events</a></span>
285
325
  <small>EnhancedErrors</small>
@@ -287,7 +327,7 @@
287
327
  </li>
288
328
 
289
329
 
290
- <li class="odd ">
330
+ <li class="even ">
291
331
  <div class="item">
292
332
  <span class='object_link'><a href="EnhancedErrors.html#max_capture_events=-class_method" title="EnhancedErrors.max_capture_events= (method)">max_capture_events=</a></span>
293
333
  <small>EnhancedErrors</small>
@@ -295,7 +335,7 @@
295
335
  </li>
296
336
 
297
337
 
298
- <li class="even ">
338
+ <li class="odd ">
299
339
  <div class="item">
300
340
  <span class='object_link'><a href="EnhancedErrors.html#max_length-class_method" title="EnhancedErrors.max_length (method)">max_length</a></span>
301
341
  <small>EnhancedErrors</small>
@@ -303,7 +343,7 @@
303
343
  </li>
304
344
 
305
345
 
306
- <li class="odd ">
346
+ <li class="even ">
307
347
  <div class="item">
308
348
  <span class='object_link'><a href="EnhancedErrors.html#mutex-class_method" title="EnhancedErrors.mutex (method)">mutex</a></span>
309
349
  <small>EnhancedErrors</small>
@@ -311,7 +351,7 @@
311
351
  </li>
312
352
 
313
353
 
314
- <li class="even ">
354
+ <li class="odd ">
315
355
  <div class="item">
316
356
  <span class='object_link'><a href="EnhancedErrors.html#on_capture-class_method" title="EnhancedErrors.on_capture (method)">on_capture</a></span>
317
357
  <small>EnhancedErrors</small>
@@ -319,7 +359,7 @@
319
359
  </li>
320
360
 
321
361
 
322
- <li class="odd ">
362
+ <li class="even ">
323
363
  <div class="item">
324
364
  <span class='object_link'><a href="EnhancedErrors.html#on_capture=-class_method" title="EnhancedErrors.on_capture= (method)">on_capture=</a></span>
325
365
  <small>EnhancedErrors</small>
@@ -327,7 +367,7 @@
327
367
  </li>
328
368
 
329
369
 
330
- <li class="even ">
370
+ <li class="odd ">
331
371
  <div class="item">
332
372
  <span class='object_link'><a href="EnhancedErrors.html#on_capture_hook-class_method" title="EnhancedErrors.on_capture_hook (method)">on_capture_hook</a></span>
333
373
  <small>EnhancedErrors</small>
@@ -335,7 +375,7 @@
335
375
  </li>
336
376
 
337
377
 
338
- <li class="odd ">
378
+ <li class="even ">
339
379
  <div class="item">
340
380
  <span class='object_link'><a href="EnhancedErrors.html#on_format-class_method" title="EnhancedErrors.on_format (method)">on_format</a></span>
341
381
  <small>EnhancedErrors</small>
@@ -343,7 +383,7 @@
343
383
  </li>
344
384
 
345
385
 
346
- <li class="even ">
386
+ <li class="odd ">
347
387
  <div class="item">
348
388
  <span class='object_link'><a href="EnhancedErrors.html#on_format=-class_method" title="EnhancedErrors.on_format= (method)">on_format=</a></span>
349
389
  <small>EnhancedErrors</small>
@@ -351,7 +391,7 @@
351
391
  </li>
352
392
 
353
393
 
354
- <li class="odd ">
394
+ <li class="even ">
355
395
  <div class="item">
356
396
  <span class='object_link'><a href="Minitest.html#original_run_one_method-class_method" title="Minitest.original_run_one_method (method)">original_run_one_method</a></span>
357
397
  <small>Minitest</small>
@@ -359,7 +399,7 @@
359
399
  </li>
360
400
 
361
401
 
362
- <li class="even ">
402
+ <li class="odd ">
363
403
  <div class="item">
364
404
  <span class='object_link'><a href="EnhancedErrors.html#override_exception_message-class_method" title="EnhancedErrors.override_exception_message (method)">override_exception_message</a></span>
365
405
  <small>EnhancedErrors</small>
@@ -367,7 +407,7 @@
367
407
  </li>
368
408
 
369
409
 
370
- <li class="odd ">
410
+ <li class="even ">
371
411
  <div class="item">
372
412
  <span class='object_link'><a href="EnhancedErrors.html#override_messages-class_method" title="EnhancedErrors.override_messages (method)">override_messages</a></span>
373
413
  <small>EnhancedErrors</small>
@@ -375,7 +415,7 @@
375
415
  </li>
376
416
 
377
417
 
378
- <li class="even ">
418
+ <li class="odd ">
379
419
  <div class="item">
380
420
  <span class='object_link'><a href="EnhancedErrors.html#override_rspec_message-class_method" title="EnhancedErrors.override_rspec_message (method)">override_rspec_message</a></span>
381
421
  <small>EnhancedErrors</small>
@@ -383,7 +423,7 @@
383
423
  </li>
384
424
 
385
425
 
386
- <li class="odd ">
426
+ <li class="even ">
387
427
  <div class="item">
388
428
  <span class='object_link'><a href="EnhancedErrors.html#reset!-class_method" title="EnhancedErrors.reset! (method)">reset!</a></span>
389
429
  <small>EnhancedErrors</small>
@@ -391,7 +431,7 @@
391
431
  </li>
392
432
 
393
433
 
394
- <li class="even ">
434
+ <li class="odd ">
395
435
  <div class="item">
396
436
  <span class='object_link'><a href="Minitest.html#run_one_method-class_method" title="Minitest.run_one_method (method)">run_one_method</a></span>
397
437
  <small>Minitest</small>
@@ -399,7 +439,7 @@
399
439
  </li>
400
440
 
401
441
 
402
- <li class="odd ">
442
+ <li class="even ">
403
443
  <div class="item">
404
444
  <span class='object_link'><a href="EnhancedErrors.html#running_in_ci%3F-class_method" title="EnhancedErrors.running_in_ci? (method)">running_in_ci?</a></span>
405
445
  <small>EnhancedErrors</small>
@@ -407,7 +447,7 @@
407
447
  </li>
408
448
 
409
449
 
410
- <li class="even ">
450
+ <li class="odd ">
411
451
  <div class="item">
412
452
  <span class='object_link'><a href="EnhancedErrors.html#safe_prepend_module-class_method" title="EnhancedErrors.safe_prepend_module (method)">safe_prepend_module</a></span>
413
453
  <small>EnhancedErrors</small>
@@ -415,7 +455,7 @@
415
455
  </li>
416
456
 
417
457
 
418
- <li class="odd ">
458
+ <li class="even ">
419
459
  <div class="item">
420
460
  <span class='object_link'><a href="EnhancedErrors.html#skip_list-class_method" title="EnhancedErrors.skip_list (method)">skip_list</a></span>
421
461
  <small>EnhancedErrors</small>
@@ -423,7 +463,7 @@
423
463
  </li>
424
464
 
425
465
 
426
- <li class="even ">
466
+ <li class="odd ">
427
467
  <div class="item">
428
468
  <span class='object_link'><a href="EnhancedErrors.html#start_minitest_binding_capture-class_method" title="EnhancedErrors.start_minitest_binding_capture (method)">start_minitest_binding_capture</a></span>
429
469
  <small>EnhancedErrors</small>
@@ -431,7 +471,7 @@
431
471
  </li>
432
472
 
433
473
 
434
- <li class="odd ">
474
+ <li class="even ">
435
475
  <div class="item">
436
476
  <span class='object_link'><a href="EnhancedErrors.html#start_rspec_binding_capture-class_method" title="EnhancedErrors.start_rspec_binding_capture (method)">start_rspec_binding_capture</a></span>
437
477
  <small>EnhancedErrors</small>
@@ -439,7 +479,7 @@
439
479
  </li>
440
480
 
441
481
 
442
- <li class="even ">
482
+ <li class="odd ">
443
483
  <div class="item">
444
484
  <span class='object_link'><a href="EnhancedErrors.html#stop_minitest_binding_capture-class_method" title="EnhancedErrors.stop_minitest_binding_capture (method)">stop_minitest_binding_capture</a></span>
445
485
  <small>EnhancedErrors</small>
@@ -447,7 +487,7 @@
447
487
  </li>
448
488
 
449
489
 
450
- <li class="odd ">
490
+ <li class="even ">
451
491
  <div class="item">
452
492
  <span class='object_link'><a href="EnhancedErrors.html#stop_rspec_binding_capture-class_method" title="EnhancedErrors.stop_rspec_binding_capture (method)">stop_rspec_binding_capture</a></span>
453
493
  <small>EnhancedErrors</small>
@@ -455,6 +495,14 @@
455
495
  </li>
456
496
 
457
497
 
498
+ <li class="odd ">
499
+ <div class="item">
500
+ <span class='object_link'><a href="EnhancedExceptionContext.html#store_context-instance_method" title="EnhancedExceptionContext#store_context (method)">#store_context</a></span>
501
+ <small>EnhancedExceptionContext</small>
502
+ </div>
503
+ </li>
504
+
505
+
458
506
  <li class="even ">
459
507
  <div class="item">
460
508
  <span class='object_link'><a href="EnhancedErrors.html#validate_binding_format-class_method" title="EnhancedErrors.validate_binding_format (method)">validate_binding_format</a></span>
@@ -82,11 +82,11 @@
82
82
  <p class="children">
83
83
 
84
84
 
85
- <strong class="modules">Modules:</strong> <span class='object_link'><a href="Enhanced.html" title="Enhanced (module)">Enhanced</a></span>, <span class='object_link'><a href="Minitest.html" title="Minitest (module)">Minitest</a></span>
85
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Enhanced.html" title="Enhanced (module)">Enhanced</a></span>, <span class='object_link'><a href="EnhancedExceptionContext.html" title="EnhancedExceptionContext (module)">EnhancedExceptionContext</a></span>, <span class='object_link'><a href="ExceptionBindingInfos.html" title="ExceptionBindingInfos (module)">ExceptionBindingInfos</a></span>, <span class='object_link'><a href="Minitest.html" title="Minitest (module)">Minitest</a></span>
86
86
 
87
87
 
88
88
 
89
- <strong class="classes">Classes:</strong> <span class='object_link'><a href="EnhancedErrors.html" title="EnhancedErrors (class)">EnhancedErrors</a></span>, <span class='object_link'><a href="Exception.html" title="Exception (class)">Exception</a></span>
89
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Context.html" title="Context (class)">Context</a></span>, <span class='object_link'><a href="EnhancedErrors.html" title="EnhancedErrors (class)">EnhancedErrors</a></span>, <span class='object_link'><a href="Exception.html" title="Exception (class)">Exception</a></span>
90
90
 
91
91
 
92
92
  </p>
@@ -122,7 +122,7 @@
122
122
  </div>
123
123
 
124
124
  <div id="footer">
125
- Generated on Mon Dec 16 11:33:57 2024 by
125
+ Generated on Tue Dec 17 14:09:26 2024 by
126
126
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
127
127
  0.9.37 (ruby-3.3.6).
128
128
  </div>
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "enhanced_errors"
3
- spec.version = "2.1.3"
3
+ spec.version = "2.2.0"
4
4
  spec.authors = ["Eric Beland"]
5
5
 
6
6
  spec.summary = "Automatically enhance your errors with messages containing variable values from the moment they were raised."
@@ -14,10 +14,6 @@ RSpec.configure do |config|
14
14
  EnhancedErrors.start_rspec_binding_capture
15
15
  end
16
16
 
17
- config.before(:example) do |_example|
18
- EnhancedErrors.start_rspec_binding_capture
19
- end
20
-
21
17
  config.after(:example) do |example|
22
18
  EnhancedErrors.override_rspec_message(example, EnhancedErrors.stop_rspec_binding_capture)
23
19
  end
@@ -0,0 +1,7 @@
1
+ class Context
2
+ attr_accessor :binding_infos
3
+
4
+ def initialize
5
+ @binding_infos = []
6
+ end
7
+ end
@@ -0,0 +1,47 @@
1
+ require 'weakref'
2
+
3
+ require_relative 'context'
4
+
5
+ require 'weakref'
6
+ require 'monitor'
7
+
8
+ module EnhancedExceptionContext
9
+ extend self
10
+
11
+ REGISTRY = {}
12
+ MUTEX = Monitor.new
13
+
14
+ def store_context(exception, context)
15
+ MUTEX.synchronize do
16
+ REGISTRY[exception.object_id] = { weak_exc: WeakRef.new(exception), context: context }
17
+ end
18
+ end
19
+
20
+ def context_for(exception)
21
+ MUTEX.synchronize do
22
+ entry = REGISTRY[exception.object_id]
23
+ return nil unless entry
24
+
25
+ begin
26
+ _ = entry[:weak_exc].__getobj__ # ensure exception is still alive
27
+ entry[:context]
28
+ rescue RefError
29
+ # Exception no longer alive, clean up
30
+ REGISTRY.delete(exception.object_id)
31
+ nil
32
+ end
33
+ end
34
+ end
35
+
36
+ def clear_context(exception)
37
+ MUTEX.synchronize do
38
+ REGISTRY.delete(exception.object_id)
39
+ end
40
+ end
41
+
42
+ def clear_all
43
+ MUTEX.synchronize do
44
+ REGISTRY.clear
45
+ end
46
+ end
47
+ end
@@ -1,6 +1,16 @@
1
1
  # exception.rb
2
+ require_relative 'enhanced_exception_context'
3
+
4
+ module ExceptionBindingInfos
5
+ def binding_infos
6
+ ctx = EnhancedExceptionContext.context_for(self)
7
+ unless ctx
8
+ ctx = Context.new
9
+ EnhancedExceptionContext.store_context(self, ctx)
10
+ end
11
+ ctx.binding_infos
12
+ end
2
13
 
3
- class Exception
4
14
  def captured_variables
5
15
  if binding_infos.any?
6
16
  bindings_of_interest = select_binding_infos
@@ -12,10 +22,6 @@ class Exception
12
22
  ''
13
23
  end
14
24
 
15
- def binding_infos
16
- @binding_infos ||= []
17
- end
18
-
19
25
  private
20
26
 
21
27
  def select_binding_infos
@@ -43,3 +49,7 @@ class Exception
43
49
  bindings_of_interest.compact
44
50
  end
45
51
  end
52
+
53
+ class Exception
54
+ prepend ExceptionBindingInfos
55
+ end
@@ -202,15 +202,16 @@ class EnhancedErrors
202
202
  when nil
203
203
  return nil
204
204
  when RSpec::Core::MultipleExceptionError
205
- override_exception_message(exception_obj.all_exceptions.first, binding_or_bindings)
205
+ exception_obj.all_exceptions.each do |exception|
206
+ override_exception_message(exception, binding_or_bindings)
207
+ end
206
208
  else
207
209
  override_exception_message(exception_obj, binding_or_bindings)
208
210
  end
209
-
210
211
  end
211
212
 
212
213
  def override_exception_message(exception, binding_or_bindings)
213
- return nil unless exception
214
+ return nil unless exception && exception.respond_to?(:message)
214
215
  rspec_binding = !(binding_or_bindings.nil? || binding_or_bindings.empty?)
215
216
  exception_binding = (exception.binding_infos.length > 0)
216
217
  has_message = !(exception.respond_to?(:unaltered_message))
@@ -225,7 +226,6 @@ class EnhancedErrors
225
226
  exception.define_singleton_method(:message) do
226
227
  "#{message_str}#{variable_str}"
227
228
  end
228
- exception
229
229
  end
230
230
 
231
231
  def add_to_skip_list(*vars)
@@ -304,6 +304,7 @@ class EnhancedErrors
304
304
  end
305
305
 
306
306
  def start_minitest_binding_capture
307
+ EnhancedExceptionContext.clear_all
307
308
  return if enforce_capture_limit
308
309
  @enabled = true if @enabled.nil?
309
310
  mutex.synchronize do
@@ -385,7 +386,7 @@ class EnhancedErrors
385
386
  binding_info = convert_binding_to_binding_info(@rspec_example_binding) if @rspec_example_binding
386
387
  @capture_next_binding = false
387
388
  @rspec_example_binding = nil
388
- binding_info
389
+ return binding_info
389
390
  end
390
391
  end
391
392
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enhanced_errors
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Beland
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-16 00:00:00.000000000 Z
11
+ date: 2024-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print
@@ -84,12 +84,15 @@ files:
84
84
  - benchmark/benchmark.rb
85
85
  - benchmark/memory_bench.rb
86
86
  - benchmark/stackprofile.rb
87
+ - doc/Context.html
87
88
  - doc/Enhanced.html
88
89
  - doc/Enhanced/Colors.html
89
90
  - doc/Enhanced/Integrations.html
90
91
  - doc/Enhanced/Integrations/RSpecErrorFailureMessage.html
91
92
  - doc/EnhancedErrors.html
93
+ - doc/EnhancedExceptionContext.html
92
94
  - doc/Exception.html
95
+ - doc/ExceptionBindingInfos.html
93
96
  - doc/Minitest.html
94
97
  - doc/_index.html
95
98
  - doc/class_list.html
@@ -113,6 +116,8 @@ files:
113
116
  - examples/demo_minitest.rb
114
117
  - examples/demo_rspec.rb
115
118
  - lib/enhanced/colors.rb
119
+ - lib/enhanced/context.rb
120
+ - lib/enhanced/enhanced_exception_context.rb
116
121
  - lib/enhanced/exception.rb
117
122
  - lib/enhanced/minitest_patch.rb
118
123
  - lib/enhanced_errors.rb