Skip to content

Commit ac30b69

Browse files
authored
Merge pull request #757 from rahim/fix-generator-error-no-method-error
Fix JSON::GeneratorError#detailed_message with Ruby < 3.2
2 parents f3e1136 + 2e015ff commit ac30b69

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

lib/json/common.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,13 @@ def initialize(message, invalid_object = nil)
152152
end
153153

154154
def detailed_message(...)
155+
# Exception#detailed_message doesn't exist until Ruby 3.2
156+
super_message = defined?(super) ? super : message
157+
155158
if @invalid_object.nil?
156-
super
159+
super_message
157160
else
158-
"#{super}\nInvalid object: #{@invalid_object.inspect}"
161+
"#{super_message}\nInvalid object: #{@invalid_object.inspect}"
159162
end
160163
end
161164
end

test/json/json_generator_test.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,14 @@ def test_json_generate
410410
end
411411
end
412412

413+
def test_json_generate_error_detailed_message
414+
error = assert_raise JSON::GeneratorError do
415+
generate(["\xea"])
416+
end
417+
418+
assert_not_nil(error.detailed_message)
419+
end
420+
413421
def test_json_generate_unsupported_types
414422
assert_raise JSON::GeneratorError do
415423
generate(Object.new, strict: true)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy