Class: TTYtest::Terminal

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/ttytest/terminal.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(driver_terminal) ⇒ Terminal

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Internal constructor.

See Also:

  • use this or other new_* methods instead.


17
18
19
20
# File 'lib/ttytest/terminal.rb', line 17

def initialize(driver_terminal)
  @driver_terminal = driver_terminal
  @max_wait_time = TTYtest.default_max_wait_time
end

Instance Attribute Details

#max_wait_timeInteger

The maximum amount of time (in seconds) to retry an assertion before failing and raising a MatchError.

Returns:

  • (Integer)

    the current value of max_wait_time



9
10
11
# File 'lib/ttytest/terminal.rb', line 9

def max_wait_time
  @max_wait_time
end

Instance Method Details

#captureCapture

Capture represents the current state of the terminal.

Returns:

  • (Capture)

    The current state of the terminal when called



148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/ttytest/terminal.rb', line 148

def_delegators :@driver_terminal,
:send_keys, :send_keys_one_at_a_time,
:send_line, :send_line_then_sleep,
:send_lines, :send_lines_then_sleep, :send_line_then_sleep_and_repeat,
:send_line_exact, :send_lines_exact,
:send_newline, :send_newlines,
:send_enter, :send_enters,
:send_delete, :send_deletes,
:send_backspace, :send_backspaces,
:send_left_arrow, :send_left_arrows, :send_right_arrow, :send_right_arrows,
:send_down_arrow, :send_down_arrows, :send_up_arrow, :send_up_arrows,
:send_keys_exact, :send_home, :send_end, :send_clear, :send_escape, :send_escapes,
:capture

#cursor_hidden?true, false

Returns:

  • (true, false)

See Also:



190
191
192
193
194
# File 'lib/ttytest/terminal.rb', line 190

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#cursor_visible?true, false

Returns:

  • (true, false)

See Also:



190
191
192
193
194
# File 'lib/ttytest/terminal.rb', line 190

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#cursor_xInteger

Returns:

  • (Integer)

See Also:



190
191
192
193
194
# File 'lib/ttytest/terminal.rb', line 190

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#cursor_yInteger

Returns:

  • (Integer)

See Also:



190
191
192
193
194
# File 'lib/ttytest/terminal.rb', line 190

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#heightInteger

Returns:

  • (Integer)

See Also:



190
191
192
193
194
# File 'lib/ttytest/terminal.rb', line 190

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

Prints the current state of the terminal to stdout. See capture to get the raw string.



190
191
192
193
194
# File 'lib/ttytest/terminal.rb', line 190

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

Prints the current state of the terminal as an array to stdout. See rows to get the raw array.



190
191
192
193
194
# File 'lib/ttytest/terminal.rb', line 190

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#row(row) ⇒ String

Returns:

  • (String)

See Also:



190
191
192
193
194
# File 'lib/ttytest/terminal.rb', line 190

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#rowsArray<String>

Returns:

  • (Array<String>)

See Also:



190
191
192
193
194
# File 'lib/ttytest/terminal.rb', line 190

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?

#send_backspaceObject

Simulate typing the backspace key in the terminal.



# File 'lib/ttytest/terminal.rb', line 90


#send_backspaces(number_of_times) ⇒ Object

Simulates typing backspace the specified number of times.

Parameters:

  • number (Integer)

    of times to send backspace



# File 'lib/ttytest/terminal.rb', line 93


#send_clearObject

Clears the screen in the terminal using ascii clear command.



# File 'lib/ttytest/terminal.rb', line 135


#send_deleteObject

Simulate typing the delete key in the terminal.



# File 'lib/ttytest/terminal.rb', line 83


#send_deletes(number_of_times) ⇒ Object

Simulates typing delete the specified number of times.

Parameters:

  • number (Integer)

    of times to send delete



# File 'lib/ttytest/terminal.rb', line 86


#send_down_arrowObject

Simulate typing the down arrow key in the terminal.



# File 'lib/ttytest/terminal.rb', line 111


#send_down_arrows(number_of_times) ⇒ Object

Simulates typing the down arrow the specified number of times.

Parameters:

  • number (Integer)

    of times to send down arrow



# File 'lib/ttytest/terminal.rb', line 114


#send_endObject

Simulates typing in the End key in the terminal.



# File 'lib/ttytest/terminal.rb', line 132


#send_enterObject

Simulate typing enter by sending newline character to the terminal.



# File 'lib/ttytest/terminal.rb', line 76


#send_enters(number_of_times) ⇒ Object

Simulates sending newline the specified number of times.

Parameters:

  • number (Integer)

    of times to send newline



# File 'lib/ttytest/terminal.rb', line 79


#send_escapeObject

Simulates typing in the Escape (ESC) key in the terminal.



# File 'lib/ttytest/terminal.rb', line 138


#send_escapes(number_of_times) ⇒ Object

Simulates typing in the Escape (ESC) key in the terminal the specified number of times.

Parameters:

  • number (Integer)

    of times to send escape



# File 'lib/ttytest/terminal.rb', line 141


#send_homeObject

Simulates typing in the Home key in the terminal.



# File 'lib/ttytest/terminal.rb', line 129


#send_keys(*keys) ⇒ Object

Simulate typing keys into the terminal. For canonical cli’s/shells which read line by line.

Parameters:

  • keys (String)

    keys to send to the terminal



# File 'lib/ttytest/terminal.rb', line 22


#send_keys_exact(keys) ⇒ Object

Send tmux send-keys command to the terminal, such as DC or Enter, to simulate pressing that key in the terminal.

Parameters:

  • keys (String)

    the line to send to the terminal



# File 'lib/ttytest/terminal.rb', line 125


#send_keys_one_at_a_time(keys) ⇒ Object

Simulate typing keys into the terminal. For noncanonical cli’s/shells which read character by character.

Parameters:

  • keys (String)

    keys to send to the terminal



# File 'lib/ttytest/terminal.rb', line 26


#send_left_arrowObject

Simulate typing the left arrow key in the terminal.



# File 'lib/ttytest/terminal.rb', line 97


#send_left_arrows(number_of_times) ⇒ Object

Simulates typing left arrow the specified number of times.

Parameters:

  • number (Integer)

    of times to send left arrow



# File 'lib/ttytest/terminal.rb', line 100


#send_line(line) ⇒ Object

Simulate sending a line to the terminal and hitting enter. Can send multiline input, but if you want to send several commands at once, see send_lines(lines) If no newline is at the the line, it will be appended automatically.

Parameters:

  • line (String)

    the line to send to the terminal



# File 'lib/ttytest/terminal.rb', line 30


#send_line_exact(line) ⇒ Object

Simulate sending a line exactly as is to the terminal and hitting enter. Can send multiline input, but if you want to send several commands at once, see send_lines(lines) If no newline is at the the line, it will be appended automatically.

Parameters:

  • line (String)

    the line to send to the terminal



# File 'lib/ttytest/terminal.rb', line 46


#send_line_then_sleep(line, sleep_time) ⇒ Object

Simulate sending a line to the terminal and hitting enter, then sleeping for sleep_time.

Parameters:

  • line (String)

    the line to send to the terminal

  • sleep_time (Integer)

    the amount of time to sleep after sending the line



# File 'lib/ttytest/terminal.rb', line 36


#send_line_then_sleep_and_repeat(lines, sleep_time) ⇒ Object

Simulate sending a line to the terminal and hitting enter, then sleeping for sleep_time. before sending the next line.

Parameters:

  • line (String)

    the line to send to the terminal

  • sleep_time (Integer)

    the amount of time to sleep after sending the line



# File 'lib/ttytest/terminal.rb', line 63


#send_lines(lines) ⇒ Object

Simulate sending a multiple lines to the terminal and hitting enter after each line. If no newline is at the end of any of the lines, it will be appended automatically.

Parameters:

  • lines (String)

    array of lines to send to the terminal



# File 'lib/ttytest/terminal.rb', line 41


#send_lines_exact(lines) ⇒ Object

Simulate sending a multiple lines exactly as is to the terminal and hitting enter after each line. If no newline is at the end of any of the lines, it will be appended automatically.

Parameters:

  • lines (String)

    array of lines to send to the terminal



# File 'lib/ttytest/terminal.rb', line 52


#send_lines_then_sleep(lines, sleep_time) ⇒ Object

Simulate sending multiples lines to the terminal and hitting enter after each line. After sending all lines, then wait for the sleep_time.

Parameters:

  • line (String)

    the line to send to the terminal

  • sleep_time (Integer)

    the amount of time to sleep after sending the line



# File 'lib/ttytest/terminal.rb', line 57


#send_newlineObject

Simulate typing enter by sending newline character to the terminal.



# File 'lib/ttytest/terminal.rb', line 69


#send_newlines(number_of_times) ⇒ Object

Simulates sending newline the specified number of times.

Parameters:

  • number_of_times (Integer)

    number of times to send newline



# File 'lib/ttytest/terminal.rb', line 72


#send_right_arrowObject

Simulate typing the right arrow key in the terminal.



# File 'lib/ttytest/terminal.rb', line 104


#send_right_arrows(number_of_times) ⇒ Object

Simulates typing right arrow the specified number of times.

Parameters:

  • number (Integer)

    of times to send right arrow



# File 'lib/ttytest/terminal.rb', line 107


#send_up_arrowObject

Simulate typing the up arrow key in the terminal.



# File 'lib/ttytest/terminal.rb', line 118


#send_up_arrows(number_of_times) ⇒ Object

Simulates typing the up arrow the specified number of times.

Parameters:

  • number (Integer)

    of times to send up arrow



# File 'lib/ttytest/terminal.rb', line 121


#widthInteger

Returns:

  • (Integer)

See Also:



190
191
192
193
194
# File 'lib/ttytest/terminal.rb', line 190

def_delegators :capture, :print, :print_rows,
:rows, :row,
:width, :height,
:cursor_x, :cursor_y,
:cursor_visible?, :cursor_hidden?