Class: Select
- Inherits:
-
Gloo::Core::Obj
- Object
- Gloo::Core::Obj
- Select
- Defined in:
- lib/select.rb
Overview
- Author
-
Eric Crane ([email protected])
- Copyright
-
Copyright © 2020 Eric Crane. All rights reserved.
Show a CLI prompt and user selection from a list.
Constant Summary collapse
- KEYWORD =
'select'.freeze
- KEYWORD_SHORT =
'sel'.freeze
- PROMPT =
'prompt'.freeze
- OPTIONS =
'options'.freeze
- RESULT =
'result'.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.
-
#key_for_option(selected) ⇒ Object
Get the value of the selected item.
-
#msg_run ⇒ Object
Show the prompt and get the user’s selection.
-
#options ⇒ Object
Get the list of options for selection.
-
#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.
106 107 108 |
# File 'lib/select.rb', line 106 def self. return super + %w[run] end |
.short_typename ⇒ Object
The short name of the object type.
25 26 27 |
# File 'lib/select.rb', line 25 def self.short_typename return KEYWORD_SHORT end |
.typename ⇒ Object
The name of the object type.
18 19 20 |
# File 'lib/select.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.
83 84 85 |
# File 'lib/select.rb', line 83 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.
92 93 94 95 96 97 |
# File 'lib/select.rb', line 92 def add_default_children fac = @engine.factory fac.create_string PROMPT, '>', self fac.create_can OPTIONS, self fac.create_string RESULT, nil, self end |
#key_for_option(selected) ⇒ Object
Get the value of the selected item.
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/select.rb', line 53 def key_for_option( selected ) o = find_child OPTIONS return nil unless o o.children.each do |c| return c.value if c.name == selected end return nil end |
#msg_run ⇒ Object
Show the prompt and get the user’s selection.
113 114 115 116 117 118 119 120 121 |
# File 'lib/select.rb', line 113 def msg_run prompt = prompt_value return unless prompt # Page size was part of the tty-prompt but not used now. # per = Gloo::App::Settings.page_size( @engine ) result = @engine.platform.prompt.select( prompt, ) set_result self.key_for_option( result ) end |
#options ⇒ Object
Get the list of options for selection.
43 44 45 46 47 48 |
# File 'lib/select.rb', line 43 def o = find_child OPTIONS return [] unless o return o.children.map( &:name ) 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/select.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.
67 68 69 70 71 72 |
# File 'lib/select.rb', line 67 def set_result( data ) r = find_child RESULT return nil unless r r.set_value data end |