enhanced_errors 0.1.3 → 0.1.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d1c7e272782dc0e8d9b0d41ae7836fe1c4f21a1278e8f7166d778abe6027de01
4
- data.tar.gz: 5c2d742bfe53aa52a889c160267820a1439f8905e3329acd962be5c37ad8eab4
3
+ metadata.gz: 8fe5b1005d924a2d75afc6603d81b9a858b44158a94f97e71381ee12f0d9f691
4
+ data.tar.gz: 8a574198151511f3b7774d95fb06217ba6739a258d8092724bd1fc2238071634
5
5
  SHA512:
6
- metadata.gz: 702f2835ec5cc4cb9b92223ba7a3d88636fc8d9dc0e2f2d82a69d1956fd0e81363b18ff272b1b342b7af4147b1d980835e432ce01164b37e7e3ec591595b6862
7
- data.tar.gz: ae0de7863558ef646236ef8c53f54b41ed0bf6cfb917a3f2e00f4561afed20f0a2e4d4f5b9178b47c1e483d09acb314a5679ba4f3c34b5ca1e443987429ef6cb
6
+ metadata.gz: 5b6674b41ae75c55c5433ebd58cb3a214198183345993931f2a88e6df0eb58b2c0908ea1103c6c296a7899fb554570c65ec72d19c58377ef611718423810b83e
7
+ data.tar.gz: 5885b07b737a9758ec18bca9f55a7d0b305cb0b5300decd0250999dc08a2d470dcb014085db913af6fafab3b8b64e1e30dd8d6f54a5681dda491fee27fd3fb88
data/README.md CHANGED
@@ -337,7 +337,7 @@ gem 'awesome_print'
337
337
  ## Performance Considerations
338
338
 
339
339
  - **Minimal Overhead**: Since TracePoint is only activated during exception raising and rescuing, the performance impact is negligible during normal operation.
340
- - **Production Safe**: The gem is designed to be safe for production use, giving you valuable insights without compromising performance.
340
+ - **Production Safe**: The gem is designed to be safe for production use, giving you valuable insights without compromising performance. Although this is the case, I'd still suggest letting it get well-vetted before making the leap.
341
341
 
342
342
  ## Contributing
343
343
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "enhanced_errors"
3
- spec.version = "0.1.3"
3
+ spec.version = "0.1.4"
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."
@@ -13,4 +13,22 @@ def foo
13
13
  end
14
14
  end
15
15
 
16
+ def baz
17
+ i.dontexist
18
+ end
19
+
20
+ def boo
21
+ seeme = 'youshould'
22
+ baz
23
+ rescue => e
24
+ puts e.message
25
+ end
26
+
27
+
28
+ puts "\n--- Example with raise ---\n\n\n"
29
+
16
30
  foo
31
+
32
+ puts "\n--- Example with raise and rescue (requires ruby 3.2 or greater to see rescue) ---\n\n\n"
33
+
34
+ boo
@@ -335,7 +335,8 @@ class EnhancedErrors
335
335
  # @param binding_info [Hash] The binding information to format.
336
336
  # @return [String] The formatted string.
337
337
  def binding_info_string(binding_info)
338
- result = "\n#{Colors.green("#{binding_info[:capture_type].capitalize}: ")}#{Colors.blue(binding_info[:source])}"
338
+ capture_type = binding_info[:capture_type].to_s.capitalize
339
+ result = "#{Colors.red(capture_type)}: #{Colors.blue(binding_info[:source])}"
339
340
 
340
341
  result += method_and_args_desc(binding_info[:method_and_args])
341
342
 
@@ -363,7 +364,7 @@ class EnhancedErrors
363
364
  if result.length > max_length
364
365
  result = result[0...max_length] + "... (truncated)"
365
366
  end
366
- result + "\n\n"
367
+ result + "\n"
367
368
  end
368
369
 
369
370
  private
@@ -378,13 +379,12 @@ class EnhancedErrors
378
379
  events << :rescue if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.3.0')
379
380
 
380
381
  @trace = TracePoint.new(*events) do |tp|
381
- next if Thread.current[:enhanced_errors_processing]
382
+ next if Thread.current[:enhanced_errors_processing] || tp.raised_exception.is_a?(NoMemoryError)
382
383
  Thread.current[:enhanced_errors_processing] = true
383
384
  exception = tp.raised_exception
384
385
  capture_me = EnhancedErrors.eligible_for_capture.call(exception)
385
386
  next unless capture_me
386
387
 
387
-
388
388
  exception = tp.raised_exception
389
389
  binding_context = tp.binding
390
390
 
@@ -444,7 +444,7 @@ class EnhancedErrors
444
444
  globals: globals
445
445
  },
446
446
  exception: exception.class.name,
447
- capture_type: capture_type
447
+ capture_type: capture_type.to_s
448
448
  }
449
449
 
450
450
  if on_capture_hook
@@ -1,7 +1,7 @@
1
1
  module ErrorEnhancements
2
2
  def message
3
3
  original_message = super()
4
- "#{original_message}#{variables_message}"
4
+ "#{original_message}\n#{variables_message}"
5
5
  rescue => e
6
6
  puts "Error in message method: #{e.message}"
7
7
  original_message
@@ -29,6 +29,7 @@ module ErrorEnhancements
29
29
  # Grab the last rescue binding if we have one
30
30
 
31
31
  bindings_of_interest = []
32
+
32
33
  binding_infos.each do |info|
33
34
  if info[:capture_type] == 'raise' && !info[:library]
34
35
  bindings_of_interest << info
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: 0.1.3
4
+ version: 0.1.4
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-10-24 00:00:00.000000000 Z
11
+ date: 2024-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print