class Rbexy::Nodes::XmlNode
Attributes
children[R]
members[R]
name[R]
Public Class Methods
new(name, members, children)
click to toggle source
# File lib/rbexy/nodes.rb, line 64 def initialize(name, members, children) @name = name @members = members || [] @children = children end
Public Instance Methods
compile()
click to toggle source
# File lib/rbexy/nodes.rb, line 70 def compile base_tag = "rbexy_tag.#{Util.safe_tag_name(name)}(#{compile_members})" tag = if children.length > 0 [ "#{base_tag} { capture {", children.map(&:compile).map { |c| "@output_buffer << rbexy_prep_output(#{c})" }.join(";"), "} }" ].join else base_tag end + ".html_safe" if Rbexy.configuration.enable_context [ "(", "rbexy_context.push({});", "#{tag}.tap { rbexy_context.pop }", ")" ].join else tag end end
compile_members()
click to toggle source
# File lib/rbexy/nodes.rb, line 94 def compile_members members.each_with_object("") do |member, result| case member when ExpressionGroup result << "**#{member.compile}," when SilentNewline result << member.compile else result << "#{member.compile}," end end end