diff --git a/lib/pp.rb b/lib/pp.rb index ed7e899..5721d72 100644 --- a/lib/pp.rb +++ b/lib/pp.rb @@ -470,11 +470,13 @@ def pretty_print_cycle(q) # :nodoc: class Range # :nodoc: def pretty_print(q) # :nodoc: - q.pp self.begin if self.begin + begin_nil = self.begin == nil + end_nil = self.end == nil + q.pp self.begin if !begin_nil || end_nil q.breakable '' q.text(self.exclude_end? ? '...' : '..') q.breakable '' - q.pp self.end if self.end + q.pp self.end if !end_nil || begin_nil end end diff --git a/test/test_pp.rb b/test/test_pp.rb index 57a3876..a180ee2 100644 --- a/test/test_pp.rb +++ b/test/test_pp.rb @@ -34,6 +34,10 @@ def test_range assert_equal("0...1\n", PP.pp(0...1, "".dup)) assert_equal("0...\n", PP.pp(0..., "".dup)) assert_equal("...1\n", PP.pp(...1, "".dup)) + assert_equal("..false\n", PP.pp(..false, "".dup)) + assert_equal("false..\n", PP.pp(false.., "".dup)) + assert_equal("false..false\n", PP.pp(false..false, "".dup)) + assert_equal("nil..nil\n", PP.pp(nil..nil, "".dup)) end end