class ClientForPoslynx::FakePosTerminal::ConsoleUserInterface::UserRawTextLineFetcher

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_raw_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_raw_text_line_fetcher.rb, line 18
def call
  start_wait_loop
end
handle_valid_entry(entry) click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/user_raw_text_line_fetcher.rb, line 36
def handle_valid_entry(entry)
  self.user_text_line_handler = nil
  result_listener.call entry
end
receive_line(line) click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/user_raw_text_line_fetcher.rb, line 26
def receive_line(line)
  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_raw_text_line_fetcher.rb, line 22
def start_wait_loop
  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_raw_text_line_fetcher.rb, line 41
def valid_entry?(entry)
  entry_validator.call( entry )
end