Module: Cucumber::Runtime::UserInterface
- Included in:
- Cucumber::Runtime
- Defined in:
- lib/cucumber/runtime/user_interface.rb
Instance Attribute Summary collapse
-
#visitor ⇒ Object
writeonly
Sets the attribute visitor.
Instance Method Summary collapse
-
#ask(question, timeout_seconds) ⇒ Object
Suspends execution and prompts
question
to the console (STDOUT). -
#attach(src, media_type, filename) ⇒ Object
Embed
src
of MIME typemime_type
into the output.
Instance Attribute Details
#visitor=(value) ⇒ Object (writeonly)
Sets the attribute visitor
8 9 10 |
# File 'lib/cucumber/runtime/user_interface.rb', line 8 def visitor=(value) @visitor = value end |
Instance Method Details
#ask(question, timeout_seconds) ⇒ Object
Suspends execution and prompts question
to the console (STDOUT). An operator (manual tester) can then enter a line of text and hit <ENTER>. The entered text is returned, and both question
and the result is added to the output using #puts.
If you want a beep to happen (to grab the manual tester’s attention), just prepend ASCII character 7 to the question:
ask("#{7.chr}How many cukes are in the external system?")
If that doesn’t issue a beep, you can shell out to something else that makes a sound before invoking #ask.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/cucumber/runtime/user_interface.rb', line 23 def ask(question, timeout_seconds) $stdout.puts(question) $stdout.flush puts(question) answer = if Cucumber::JRUBY jruby_gets(timeout_seconds) else mri_gets(timeout_seconds) end raise("Waited for input for #{timeout_seconds} seconds, then timed out.") unless answer puts(answer) answer end |
#attach(src, media_type, filename) ⇒ Object
Embed src
of MIME type mime_type
into the output. The src
argument may be a path to a file, or if it’s an image it may also be a Base64 encoded image. The embedded data may or may not be ignored, depending on what kind of formatter(s) are active.
44 45 46 |
# File 'lib/cucumber/runtime/user_interface.rb', line 44 def attach(src, media_type, filename) @visitor.attach(src, media_type, filename) end |