Class: Gloo::Objs::Erb
- Inherits:
-
Core::Obj
- Object
- Core::Baseo
- Core::Obj
- Gloo::Objs::Erb
- Defined in:
- lib/gloo/objs/system/erb.rb
Constant Summary collapse
- KEYWORD =
'erb'.freeze
- KEYWORD_SHORT =
'erb'.freeze
- TEMPLATE =
'template'.freeze
- PARAMS =
'params'.freeze
- RESULT =
'result'.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 ERB template conversion.
-
#param_hash ⇒ Object
Get a hash with parameters for the ERB render.
-
#set_result(data) ⇒ Object
Set the result of the ERB template conversion.
-
#template_value ⇒ Object
Get the ERB template.
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.
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 145 146 147 148 149 150 |
# File 'lib/gloo/objs/system/erb.rb', line 120 def self.doc_data { :name => KEYWORD, :shortcut => KEYWORD_SHORT, :description => 'Use the ERB templating system to generate ' \ 'content. For example, you can use the ERB object for ' \ 'string interpolation.', :children => [ 'template (text) — The template that will be used when the ERB object is run.', 'params (container) — The collection of children values used when the template is rendered.', 'result (text) — The result of the template rendering.' ], :messages => [ 'run — Render the result based on the template and the parameter values.' ], :examples => <<~EXAMPLES.strip e [can] : erb [erb] : template [text] : BEGIN Hello <%= first %> <%= last %>! END params [container] : first [string] : Eric last [string] : Crane result [text] : on_load [script] : run e.erb show e.erb.result EXAMPLES } end |
.messages ⇒ Object
Get a list of message names that this object receives.
98 99 100 |
# File 'lib/gloo/objs/system/erb.rb', line 98 def self. return super + [ 'run' ] end |
.short_typename ⇒ Object
The short name of the object type.
28 29 30 |
# File 'lib/gloo/objs/system/erb.rb', line 28 def self.short_typename return KEYWORD_SHORT end |
.typename ⇒ Object
The name of the object type.
21 22 23 |
# File 'lib/gloo/objs/system/erb.rb', line 21 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.
75 76 77 |
# File 'lib/gloo/objs/system/erb.rb', line 75 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.
84 85 86 87 88 89 |
# File 'lib/gloo/objs/system/erb.rb', line 84 def add_default_children fac = @engine.factory fac.create_text TEMPLATE, '', self fac.create_can PARAMS, self fac.create_text RESULT, '', self end |
#msg_run ⇒ Object
Run the ERB template conversion.
105 106 107 108 109 110 111 |
# File 'lib/gloo/objs/system/erb.rb', line 105 def msg_run tmpl = template_value return unless tmpl render = ERB.new( tmpl ) set_result render.result_with_hash( param_hash ) end |
#param_hash ⇒ Object
Get a hash with parameters for the ERB render.
54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/gloo/objs/system/erb.rb', line 54 def param_hash h = {} body = find_child PARAMS body.children.each do |child| child = Gloo::Objs::Alias.resolve_alias( @engine, child ) h[ child.name ] = child.value end return h end |
#set_result(data) ⇒ Object
Set the result of the ERB template conversion.
44 45 46 47 48 49 |
# File 'lib/gloo/objs/system/erb.rb', line 44 def set_result( data ) r = find_child_resolve_alias RESULT return unless r r.set_value data end |
#template_value ⇒ Object
Get the ERB template.
35 36 37 38 39 |
# File 'lib/gloo/objs/system/erb.rb', line 35 def template_value tmpl = find_child TEMPLATE tmpl = Gloo::Objs::Alias.resolve_alias( @engine, tmpl ) return tmpl&.value end |