@@ -73,7 +73,6 @@ class MockIO_AutoIndent
7373
7474 def initialize ( *params )
7575 @params = params
76- @calculated_indent
7776 end
7877
7978 def auto_indent ( &block )
@@ -82,14 +81,14 @@ def auto_indent(&block)
8281 end
8382
8483 class MockIO_DynamicPrompt
84+ attr_reader :prompt_list
85+
8586 def initialize ( params , &assertion )
8687 @params = params
87- @assertion = assertion
8888 end
8989
9090 def dynamic_prompt ( &block )
91- result = block . call ( @params )
92- @assertion . call ( result )
91+ @prompt_list = block . call ( @params )
9392 end
9493 end
9594
@@ -708,24 +707,25 @@ def test_dynamic_prompt_with_blank_line
708707
709708 def assert_dynamic_prompt ( input_with_prompt )
710709 expected_prompt_list , lines = input_with_prompt . transpose
711- dynamic_prompt_executed = false
712- io = MockIO_DynamicPrompt . new ( lines ) do |prompt_list |
713- error_message = <<~EOM
714- Expected dynamic prompt:
715- #{ expected_prompt_list . join ( "\n " ) }
716-
717- Actual dynamic prompt:
718- #{ prompt_list . join ( "\n " ) }
719- EOM
720- dynamic_prompt_executed = true
721- assert_equal ( expected_prompt_list , prompt_list , error_message )
722- end
723- @irb . context . io = io
724- @irb . scanner . set_prompt do |ltype , indent , continue , line_no |
710+ def @irb . prompt ( opens , continue , line_offset )
711+ ltype = @scanner . ltype_from_open_tokens ( opens )
712+ indent = @scanner . calc_indent_level ( opens )
713+ continue = opens . any? || continue
714+ line_no = @line_no + line_offset
725715 '%03d:%01d:%1s:%s ' % [ line_no , indent , ltype , continue ? '*' : '>' ]
726716 end
717+ io = MockIO_DynamicPrompt . new ( lines )
718+ @irb . context . io = io
727719 @irb . configure_io
728- assert dynamic_prompt_executed , "dynamic_prompt's assertions were not executed."
720+
721+ error_message = <<~EOM
722+ Expected dynamic prompt:
723+ #{ expected_prompt_list . join ( "\n " ) }
724+
725+ Actual dynamic prompt:
726+ #{ io . prompt_list . join ( "\n " ) }
727+ EOM
728+ assert_equal ( expected_prompt_list , io . prompt_list , error_message )
729729 end
730730 end
731731
0 commit comments