Class: Prompt
- Inherits:
-
Gloo::Core::Obj
- Object
- Gloo::Core::Obj
- Prompt
- Defined in:
- lib/prompt.rb
Overview
- Author
-
Eric Crane (eric.crane@mac.com)
- Copyright
-
Copyright © 2019 Eric Crane. All rights reserved.
Show a CLI prompt and collect user input.
Constant Summary collapse
- KEYWORD =
'prompt'.freeze
- KEYWORD_SHORT =
'ask'.freeze
- PROMPT =
'prompt'.freeze
- RESULT =
'result'.freeze
- DEFAULT =
'default'.freeze
Class Method Summary collapse
-
.messages ⇒ Object
Get a list of message names that this object receives.
-
.short_typename ⇒ Object
The short name of the object type.
-
.typename ⇒ Object
The name of the object type.
Instance Method Summary collapse
-
#add_children_on_create? ⇒ Boolean
Does this object have children to add when an object is created in interactive mode? This does not apply during obj load, etc.
-
#add_default_children ⇒ Object
Add children to this object.
-
#default_value ⇒ Object
Get the default value.
-
#msg_multiline ⇒ Object
Show a multiline prompt and get the user’s input.
-
#msg_run ⇒ Object
Show the prompt and get the user’s input.
-
#prompt_value ⇒ Object
Get the prompt from the child object.
-
#set_result(data) ⇒ Object
Set the result of the system call.
Class Method Details
.messages ⇒ Object
Get a list of message names that this object receives.
96 97 98 |
# File 'lib/prompt.rb', line 96 def self. return super + %w[run multiline] end |
.short_typename ⇒ Object
The short name of the object type.
25 26 27 |
# File 'lib/prompt.rb', line 25 def self.short_typename return KEYWORD_SHORT end |
.typename ⇒ Object
The name of the object type.
18 19 20 |
# File 'lib/prompt.rb', line 18 def self.typename return KEYWORD end |
Instance Method Details
#add_children_on_create? ⇒ Boolean
Does this object have children to add when an object is created in interactive mode? This does not apply during obj load, etc.
73 74 75 |
# File 'lib/prompt.rb', line 73 def add_children_on_create? return true end |
#add_default_children ⇒ Object
Add children to this object. This is used by containers to add children needed for default configurations.
82 83 84 85 86 |
# File 'lib/prompt.rb', line 82 def add_default_children fac = @engine.factory fac.create_string PROMPT, '>', self fac.create_string RESULT, nil, self end |
#default_value ⇒ Object
Get the default value. This is an optional field. If present, it starts the prompt with the default value. Returns nil if there is none.
46 47 48 49 50 51 |
# File 'lib/prompt.rb', line 46 def default_value o = find_child DEFAULT return nil unless o return o.value end |
#msg_multiline ⇒ Object
Show a multiline prompt and get the user’s input.
103 104 105 106 107 108 109 |
# File 'lib/prompt.rb', line 103 def msg_multiline prompt = prompt_value return unless prompt result = @engine.platform.prompt.multiline( prompt ) set_result result.join end |
#msg_run ⇒ Object
Show the prompt and get the user’s input.
114 115 116 117 118 119 120 |
# File 'lib/prompt.rb', line 114 def msg_run prompt = prompt_value return unless prompt result = @engine.platform.prompt.ask( prompt, default_value ) set_result result end |
#prompt_value ⇒ Object
Get the prompt from the child object. Returns nil if there is none.
33 34 35 36 37 38 |
# File 'lib/prompt.rb', line 33 def prompt_value o = find_child PROMPT return nil unless o return o.value end |
#set_result(data) ⇒ Object
Set the result of the system call.
56 57 58 59 60 61 |
# File 'lib/prompt.rb', line 56 def set_result( data ) r = find_child RESULT return nil unless r r.set_value data end |