module ClientForPoslynx::FakePosTerminal::ConsoleUserInterface::IsUI_Component

This module is included by classes acting as components of the console UI, needing to perform console I/O interactions.

Private Instance Methods

clear_screen() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 138
def clear_screen
  print "\x1b[2J"
end
clear_to_end_of_line() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 162
def clear_to_end_of_line
  print "\x1b[K"
end
clear_to_end_of_screen() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 142
def clear_to_end_of_screen
  print "\x1b[J"
end
content_fmt() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 134
def content_fmt
  ConsoleUserInterface::ContentFormatter
end
cursor_to_top_left() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 158
def cursor_to_top_left
  print "\x1b[1;1H"
end
display_content(content, options = {}) click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 44
def display_content(content, options = {})
  clear_first = options.fetch(:clear){ true }
  clear_screen if clear_first
  write_status_line
  write_top_border

  puts content

  write_bottom_border
end
display_signature_entry_box() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 79
def display_signature_entry_box
  display_content content_fmt.signature_entry_box
end
fetch_button_selection( button_labels, selection_listener ) click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 97
def fetch_button_selection( button_labels, selection_listener )
  prompt_for_button_selection button_labels
  fetch_user_button_number_selection button_labels.length, ->(button_num) do
    selection_label = button_labels[ button_num - 1 ]
    selection_listener.call selection_label
  end
end
fetch_confirmation(result_listener) click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 83
def fetch_confirmation(result_listener)
  fetch_button_selection(
    %w[ OK Cancel ],
    ->(button_label) {
      result = case button_label
        when 'OK'     then true
        when 'Cancel' then false
        else               nil
      end
      result_listener.call result
    }
  )
end
fetch_user_button_number_selection(button_count, selection_listener) click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 117
def fetch_user_button_number_selection(button_count, selection_listener)
  UserButtonNumberSelectionFetcher.new( ui_context, button_count, selection_listener ).start_process
end
idle!() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 34
def idle!
  term_manipulator.raw_mode!
  self.user_text_line_handler = nil
end
prompt_for_button_selection(button_labels) click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 105
def prompt_for_button_selection(button_labels)
  puts
  print "Enter the number for your button selection: "
  save_cursor_position
  puts '', ''
  button_labels.each_with_index do |label, idx|
    button_num = idx + 1
    puts ' %d) %s' % [ button_num, label ]
  end
  restore_cursor_position
end
reset(idle_prompt=nil) click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 39
def reset(idle_prompt=nil)
  self.idle_prompt = idle_prompt if idle_prompt
  display_content content_fmt.welcome_with_idle_prompt self.idle_prompt
end
restore_cursor_position() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 150
def restore_cursor_position
  print "\x1b[u"
end
save_cursor_position() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 146
def save_cursor_position
  print "\x1b[s"
end
show_message(text_lines) click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 68
def show_message(text_lines)
  display_content content_fmt.multiline_message( text_lines )
end
show_message_with_buttons(text_lines, button_labels) click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 72
def show_message_with_buttons(text_lines, button_labels)
  content =
    content_fmt.multiline_message( text_lines ) <<
    content_fmt.buttons( button_labels )
  display_content content
end
to_start_of_line() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 154
def to_start_of_line
  print "\x1b[0G"
end
ui_context() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 18
def ui_context
  raise NotImplementedError, "Inheriting-class responsibility"
end
update_status_line(new_text=nil) click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 55
def update_status_line(new_text=nil)
  self.status_line = new_text unless new_text.nil?
  save_cursor_position
  write_status_line
  restore_cursor_position
end
write_bottom_border() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 128
        def write_bottom_border
          puts <<-EOS
|__________________________________________________________________|
          EOS
        end
write_status_line() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 62
def write_status_line
  cursor_to_top_left
  clear_to_end_of_line
  puts " << #{status_line} >>"
end
write_top_border() click to toggle source
# File lib/client_for_poslynx/fake_pos_terminal/console_user_interface/is_ui_component.rb, line 121
        def write_top_border
          puts <<-EOS
 __________________________________________________________________
|                                                                  |
          EOS
        end