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
|