Class: Clack::Testing::PromptDriver
- Inherits:
-
Object
- Object
- Clack::Testing::PromptDriver
- Defined in:
- lib/clack/testing.rb
Overview
DSL for building a key sequence to feed to a prompt.
Instance Attribute Summary collapse
-
#keys ⇒ Array<String>
readonly
Accumulated key sequence.
Instance Method Summary collapse
-
#backspace ⇒ Object
Press Backspace.
-
#cancel ⇒ Object
Press Escape to cancel.
-
#ctrl_d ⇒ Object
Press Ctrl+D (submit multiline text).
-
#down ⇒ Object
Press arrow down.
-
#initialize ⇒ PromptDriver
constructor
A new instance of PromptDriver.
-
#key(key) ⇒ Object
Press an arbitrary key by name or character.
-
#left ⇒ Object
Press arrow left.
-
#right ⇒ Object
Press arrow right.
-
#submit ⇒ Object
Press Enter to submit.
-
#tab ⇒ Object
Press Tab.
-
#toggle ⇒ Object
Press Space (toggle selection in multiselect).
-
#type(text) ⇒ Object
Type a string of text character by character.
-
#up ⇒ Object
Press arrow up.
Constructor Details
#initialize ⇒ PromptDriver
Returns a new instance of PromptDriver.
61 62 63 |
# File 'lib/clack/testing.rb', line 61 def initialize @keys = [] end |
Instance Attribute Details
#keys ⇒ Array<String> (readonly)
Returns accumulated key sequence.
59 60 61 |
# File 'lib/clack/testing.rb', line 59 def keys @keys end |
Instance Method Details
#backspace ⇒ Object
Press Backspace.
96 |
# File 'lib/clack/testing.rb', line 96 def backspace = @keys << KEYS[:backspace] |
#cancel ⇒ Object
Press Escape to cancel.
75 |
# File 'lib/clack/testing.rb', line 75 def cancel = @keys << KEYS[:escape] |
#ctrl_d ⇒ Object
Press Ctrl+D (submit multiline text).
99 |
# File 'lib/clack/testing.rb', line 99 def ctrl_d = @keys << KEYS[:ctrl_d] |
#down ⇒ Object
Press arrow down.
78 |
# File 'lib/clack/testing.rb', line 78 def down = @keys << KEYS[:down] |
#key(key) ⇒ Object
Press an arbitrary key by name or character.
103 104 105 |
# File 'lib/clack/testing.rb', line 103 def key(key) @keys << (key.is_a?(Symbol) ? KEYS.fetch(key) : key) end |
#left ⇒ Object
Press arrow left.
84 |
# File 'lib/clack/testing.rb', line 84 def left = @keys << KEYS[:left] |
#right ⇒ Object
Press arrow right.
87 |
# File 'lib/clack/testing.rb', line 87 def right = @keys << KEYS[:right] |
#submit ⇒ Object
Press Enter to submit.
72 |
# File 'lib/clack/testing.rb', line 72 def submit = @keys << KEYS[:enter] |
#toggle ⇒ Object
Press Space (toggle selection in multiselect).
90 |
# File 'lib/clack/testing.rb', line 90 def toggle = @keys << KEYS[:space] |
#type(text) ⇒ Object
Type a string of text character by character.
67 68 69 |
# File 'lib/clack/testing.rb', line 67 def type(text) text.each_char { |char| @keys << char } end |