Module: Glimmer::DSL::XML::NodeParentExpression

Includes:
Glimmer, ParentExpression
Included in:
HtmlExpression, MetaExpression, TagExpression, XmlExpression, XmlNodeExpression
Defined in:
lib/glimmer/dsl/xml/node_parent_expression.rb

Instance Method Summary collapse

Instance Method Details

#add_content(parent, keyword, *args, &block) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/glimmer/dsl/xml/node_parent_expression.rb', line 33

def add_content(parent, keyword, *args, &block)
  return_value = block.call(parent)
  if !return_value.is_a?(Glimmer::XML::Node) and !parent.children.include?(return_value)
    text = return_value.to_s
    first_match = text.match(/[#][^{]+[{][^}]+[}]/)
    match = first_match
    while (match)
      instance_eval(parent.text_command(match.pre_match))
      tag_text = match.to_s
      instance_eval(parent.rubyize(tag_text))
      text = tag_text
      post_match = match.post_match
      match = text.match(/[#]\w+[{]\w+[}]/)
    end
    instance_eval(parent.text_command(post_match)) if post_match
    parent.children << return_value unless first_match
  end
end