def initialize(assigns = {}, helpers = nil, &block)
@streams = [[]]
@assigns = assigns
@elements = {}
@@default.each do |k, v|
instance_variable_set("@#{k}", @assigns[k] || v)
end
if helpers.nil?
@helpers = nil
else
@helpers = helpers.dup
for iv in helpers.instance_variables
instance_variable_set(iv, helpers.instance_variable_get(iv))
end
end
unless assigns.nil? || assigns.empty?
for iv, val in assigns
instance_variable_set("@#{iv}", val)
unless @helpers.nil?
@helpers.instance_variable_set("@#{iv}", val)
end
end
end
@builder = ::Builder::XmlMarkup.new(:indent => @indent, :target => @streams.last)
class << @builder
attr_accessor :target, :level
end
if block
text(capture(&block))
end
end