Class: Objs::Element
- Inherits:
-
Gloo::Core::Obj
- Object
- Gloo::Core::Obj
- Objs::Element
- Defined in:
- lib/objs/element.rb
Constant Summary collapse
- KEYWORD =
'element'.freeze
- KEYWORD_SHORT =
'e'.freeze
- ID =
Element
'id'.freeze
- CLASSES =
'classes'.freeze
- ATTRIBUTES =
'attributes'.freeze
- CONTENT =
'content'.freeze
Class Method Summary collapse
-
.messages ⇒ Object
Get a list of message names that this object receives.
-
.render_obj(obj, render_ƒ, engine) ⇒ Object
Render an object which might be an element, a container of items, or something else.
- .render_thing(e, render_ƒ, engine) ⇒ Object
-
.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.
-
#attributes_hash ⇒ Object
Return the array of attributes if there are any.
-
#content_child ⇒ Object
Get all the children elements of the content.
-
#msg_render ⇒ Object
Get the expiration date for the certificate.
-
#multiline_value? ⇒ Boolean
Does this object support multi-line values? Initially only true for scripts.
-
#render_content(render_ƒ) ⇒ Object
Render the element content using the specified render function.
-
#render_html ⇒ Object
Render the element as HTML.
-
#render_text ⇒ Object
Render the element as text, without tags.
-
#set_value(new_value) ⇒ Object
Set the value with any necessary type conversions.
-
#tag ⇒ Object
Get the tag.
-
#tag_attributes ⇒ Object
Get all attributes of the tag.
-
#tag_close ⇒ Object
Get the closing tag.
-
#tag_open ⇒ Object
Get the opening tag.
Class Method Details
.messages ⇒ Object
Get a list of message names that this object receives.
167 168 169 |
# File 'lib/objs/element.rb', line 167 def self. return super + [ 'render' ] end |
.render_obj(obj, render_ƒ, engine) ⇒ Object
Render an object which might be an element, a container of items, or something else.
218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 |
# File 'lib/objs/element.rb', line 218 def self.render_obj obj, render_ |
.render_thing(e, render_ƒ, engine) ⇒ Object
242 243 244 245 246 247 248 249 |
# File 'lib/objs/element.rb', line 242 def self.render_thing e, render_ |
.short_typename ⇒ Object
The short name of the object type.
39 40 41 |
# File 'lib/objs/element.rb', line 39 def self.short_typename return KEYWORD_SHORT end |
.typename ⇒ Object
The name of the object type.
32 33 34 |
# File 'lib/objs/element.rb', line 32 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.
139 140 141 |
# File 'lib/objs/element.rb', line 139 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.
148 149 150 151 152 153 154 155 156 157 |
# File 'lib/objs/element.rb', line 148 def add_default_children fac = @engine.factory # Create attributes with ID and Classes attr = fac.create_can ATTRIBUTES, self fac.create_string ID, '', attr fac.create_string CLASSES, '', attr fac.create_can CONTENT, self end |
#attributes_hash ⇒ Object
Return the array of attributes if there are any.
61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/objs/element.rb', line 61 def attributes_hash attr_can = find_child ATTRIBUTES if attr_can && attr_can.children.size > 0 h = {} attr_can.children.each do |o| h[ o.name ] = o.value end return h end return {} end |
#content_child ⇒ Object
Get all the children elements of the content.
126 127 128 |
# File 'lib/objs/element.rb', line 126 def content_child return find_child CONTENT end |
#msg_render ⇒ Object
Get the expiration date for the certificate.
174 175 176 177 178 |
# File 'lib/objs/element.rb', line 174 def msg_render content = self.render_html @engine.heap.it.set_to content return content end |
#multiline_value? ⇒ Boolean
Does this object support multi-line values? Initially only true for scripts.
54 55 56 |
# File 'lib/objs/element.rb', line 54 def multiline_value? return false end |
#render_content(render_ƒ) ⇒ Object
Render the element content using the specified render function. This is a recursive function (through one of the other render functions).
207 208 209 210 211 212 |
# File 'lib/objs/element.rb', line 207 def render_content render_ |
#render_html ⇒ Object
Render the element as HTML.
188 189 190 191 192 |
# File 'lib/objs/element.rb', line 188 def render_html content_text = render_content :render_html return "#{tag_open}#{content_text}#{tag_close}" end |
#render_text ⇒ Object
Render the element as text, without tags.
197 198 199 200 201 |
# File 'lib/objs/element.rb', line 197 def render_text content_text = render_content :render_text return "#{content_text}" end |
#set_value(new_value) ⇒ Object
Set the value with any necessary type conversions.
46 47 48 |
# File 'lib/objs/element.rb', line 46 def set_value( new_value ) self.value = new_value.to_s end |
#tag ⇒ Object
Get the tag. This is the name, up until an ‘_’ char. Because name must be unique in the parent, and with HTML we need a way to have multiple of the same tag at the same level.
99 100 101 102 |
# File 'lib/objs/element.rb', line 99 def tag i = self.name.index( '_' ) return i ? self.name[ 0..(i-1) ] : self.name end |
#tag_attributes ⇒ Object
Get all attributes of the tag.
78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/objs/element.rb', line 78 def tag_attributes attr_h = attributes_hash return nil unless attr_h && attr_h.size > 0 attr_str = '' attr_h.each do |k,v| unless v.blank? attr_str << " #{k}=\"#{v}\"" end end return attr_str end |
#tag_close ⇒ Object
Get the closing tag.
119 120 121 |
# File 'lib/objs/element.rb', line 119 def tag_close return "</#{tag}>" end |
#tag_open ⇒ Object
Get the opening tag.
107 108 109 110 111 112 113 114 |
# File 'lib/objs/element.rb', line 107 def tag_open tag_attributes = self.tag_attributes if tag_attributes return "<#{tag}#{tag_attributes}>" else return "<#{tag}>" end end |