Skip to content

Commit 7b51b3c

Browse files
tompngmatzbot
authored andcommitted
[ruby/pp] Fix pretty printing range begin/end with false or nil
ruby/pp@6d9c0f255a
1 parent 0de7e6c commit 7b51b3c

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

lib/pp.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -488,11 +488,12 @@ def pretty_print_cycle(q) # :nodoc:
488488

489489
class Range # :nodoc:
490490
def pretty_print(q) # :nodoc:
491-
q.pp self.begin if self.begin
491+
both_nil = self.begin == nil && self.end == nil
492+
q.pp self.begin if self.begin != nil || both_nil
492493
q.breakable ''
493494
q.text(self.exclude_end? ? '...' : '..')
494495
q.breakable ''
495-
q.pp self.end if self.end
496+
q.pp self.end if self.end != nil || both_nil
496497
end
497498
end
498499

test/test_pp.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ def test_range
3434
assert_equal("0...1\n", PP.pp(0...1, "".dup))
3535
assert_equal("0...\n", PP.pp(0..., "".dup))
3636
assert_equal("...1\n", PP.pp(...1, "".dup))
37+
assert_equal("..false\n", PP.pp(..false, "".dup))
38+
assert_equal("false..\n", PP.pp(false.., "".dup))
39+
assert_equal("false..false\n", PP.pp(false..false, "".dup))
40+
assert_equal("nil..nil\n", PP.pp(nil..nil, "".dup))
3741
end
3842
end
3943

0 commit comments

Comments
 (0)