class ClientForPoslynx::FakePosTerminal::ConsoleUserInterface::UserTextLineFetcher
Attributes
entry_validator[R]
result_listener[R]
ui_context[R]
Public Class Methods
new(ui_context, entry_validator, result_listener)
click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/user_text_line_fetcher.rb, line 12 def initialize(ui_context, entry_validator, result_listener) @ui_context = ui_context @entry_validator = entry_validator @result_listener = result_listener end
Public Instance Methods
call()
click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/user_text_line_fetcher.rb, line 18 def call save_cursor_position start_wait_loop end
handle_valid_entry(entry)
click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/user_text_line_fetcher.rb, line 41 def handle_valid_entry(entry) self.user_text_line_handler = nil restore_cursor_position result_listener.call entry end
receive_line(line)
click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/user_text_line_fetcher.rb, line 30 def receive_line(line) term_manipulator.raw_mode! entry = line.strip if valid_entry?( entry ) handle_valid_entry entry else start_wait_loop end end
start_wait_loop()
click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/user_text_line_fetcher.rb, line 23 def start_wait_loop restore_cursor_position clear_to_end_of_line term_manipulator.interactive_mode! self.user_text_line_handler = method( :receive_line ) end
valid_entry?(entry)
click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/user_text_line_fetcher.rb, line 47 def valid_entry?(entry) entry_validator.call( entry ) end