enhanced_errors 2.1.3 → 2.2.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.
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