Class: Gloo::Objs::Repeat
- Inherits:
-
Core::Obj
- Object
- Core::Baseo
- Core::Obj
- Gloo::Objs::Repeat
- Defined in:
- lib/gloo/objs/ctrl/repeat.rb
Constant Summary collapse
- KEYWORD =
'repeat'.freeze
- KEYWORD_SHORT =
'repeat'.freeze
- TIMES =
'times'.freeze
- INDEX =
'index'.freeze
- DO =
'do'.freeze
Constants inherited from Core::Baseo
Core::Baseo::NOT_IMPLEMENTED_ERR
Instance Attribute Summary
Attributes inherited from Core::Obj
Attributes inherited from Core::Baseo
Class Method Summary collapse
-
.doc_data ⇒ Object
Get the object's documentation data.
-
.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.
-
#msg_run ⇒ Object
Run the repeat loop.
-
#run_do ⇒ Object
Run the do script once.
-
#set_index(index) ⇒ Object
Set the index of the current iteration.
-
#times ⇒ Object
Get the URI from the child object.
Methods inherited from Core::Obj
#add_child, can_create?, #can_receive_message?, #child_count, #child_index, #contains_child?, #delete_children, #dispatch, #display_value, #find_add_child, #find_child, #find_child_resolve_alias, #find_child_value, help, inherited, #initialize, #is_alias?, #is_container?, #is_function?, #msg_blank?, #msg_contains?, #msg_reload, #msg_responds_to?, #msg_unload, #multiline_value?, #pn, #remove_child, #render, #root?, #send_message, #set_parent, #set_value, #sql_value, #type_display, #value_display, #value_is_array?, #value_is_blank?, #value_string?
Methods inherited from Core::Baseo
Constructor Details
This class inherits a constructor from Gloo::Core::Obj
Class Method Details
.doc_data ⇒ Object
Get the object's documentation data.
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/gloo/objs/ctrl/repeat.rb', line 112 def self.doc_data { :name => KEYWORD, :shortcut => KEYWORD_SHORT, :description => 'Run a script a given number of times.', :children => [ 'times (integer) — Default: 0. The number of times to run the script.', 'index (integer) — Default: 0. The current iteration when the repeat loop is running.', 'do (script) — The action to perform for each iteration of the loop.' ], :messages => [ 'run — Run the script for the given number of times.' ], :examples => <<~EXAMPLES.strip repeat [can] : s [string] : on_load [script] : put $.screen_cols / 2 into repeat.x.times tell repeat.x to run show repeat.s tell repeat.y to run show repeat.s x [repeat] : times [integer] : 30 index [integer] : 0 do [script] : put repeat.s + '-' into repeat.s y [repeat] : times [integer] : 10 index [integer] : 0 do [script] : show repeat.y.index EXAMPLES } end |
.messages ⇒ Object
Get a list of message names that this object receives.
91 92 93 |
# File 'lib/gloo/objs/ctrl/repeat.rb', line 91 def self. return super + [ 'run' ] end |
.short_typename ⇒ Object
The short name of the object type.
27 28 29 |
# File 'lib/gloo/objs/ctrl/repeat.rb', line 27 def self.short_typename return KEYWORD_SHORT end |
.typename ⇒ Object
The name of the object type.
20 21 22 |
# File 'lib/gloo/objs/ctrl/repeat.rb', line 20 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.
68 69 70 |
# File 'lib/gloo/objs/ctrl/repeat.rb', line 68 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.
77 78 79 80 81 82 |
# File 'lib/gloo/objs/ctrl/repeat.rb', line 77 def add_default_children fac = @engine.factory fac.create_int TIMES, 0, self fac.create_int INDEX, 0, self fac.create_script DO, '', self end |
#msg_run ⇒ Object
Run the repeat loop.
98 99 100 101 102 103 |
# File 'lib/gloo/objs/ctrl/repeat.rb', line 98 def msg_run times.times do |index| set_index index run_do end end |
#run_do ⇒ Object
Run the do script once.
42 43 44 45 46 47 |
# File 'lib/gloo/objs/ctrl/repeat.rb', line 42 def run_do o = find_child DO return unless o Gloo::Exec::Dispatch.( @engine, 'run', o ) end |
#set_index(index) ⇒ Object
Set the index of the current iteration.
52 53 54 55 56 57 |
# File 'lib/gloo/objs/ctrl/repeat.rb', line 52 def set_index( index ) o = find_child INDEX return unless o o.set_value index end |
#times ⇒ Object
Get the URI from the child object. Returns nil if there is none.
35 36 37 |
# File 'lib/gloo/objs/ctrl/repeat.rb', line 35 def times return find_child_value( TIMES ) || 0 end |