Class Amrita::PreFormatter
|
|
:expand_attr |
[R] |
|
:formatter |
[R] |
|
new(formatter, expand_attr=false)
|
# File lib/amrita/format.rb, line 465
def initialize(formatter, expand_attr=false)
@formatter = formatter
@expand_attr = expand_attr
@result_str = ""
@result_array = []
end
# File lib/amrita/format.rb, line 472
def pre_format(node)
@formatter.with_stream(self) do
node.pre_format1(self)
end
end
# File lib/amrita/format.rb, line 478
def <<(x)
case x
when Element
@result_array << SanitizedString[@result_str] unless @result_str == ""
@result_array << x
@result_str = ""
when String
@result_str << x
when NodeArray
x.array.each do |n|
n.pre_format1(self)
end
when Node
@formatter.format(x)
else
@result_str << x.to_s
end
self
end
# File lib/amrita/format.rb, line 498
def result
@result_array << SanitizedString[@result_str] unless @result_str == ""
case @result_array.size
when 0
Null
when 1
@result_array[0]
else
@result_array
end
end
# File lib/amrita/format.rb, line 510
def result_as_top
Node::to_node(result)
end