lib/undies/output.rb in undies-2.0.0 vs lib/undies/output.rb in undies-2.1.0
- old
+ new
@@ -1,13 +1,12 @@
-require 'undies/node'
-require 'undies/element'
require 'undies/node_buffer'
module Undies
class Output
attr_reader :io, :options, :pp, :node_buffer
+ attr_accessor :pp_use_indent
# the output class wraps an IO stream, gathers pretty printing options,
# and handles buffering nodes and pretty printing to the stream
def initialize(io, opts={})
@@ -21,11 +20,11 @@
raise ArgumentError, "please provide a hash to set options with"
end
# setup any pretty printing
@pp = opts[:pp]
- self.pp_level = 0
+ self.pp_level = opts[:pp_level] || 0
self.pp_use_indent = true
@options = opts
end
@@ -36,25 +35,16 @@
def pp_level=(value)
@pp_indent = @pp ? "\n#{' '*value*@pp}" : ""
@pp_level = value
end
- def pp_use_indent=(value)
- @pp_use_indent = value
- end
-
def <<(data)
@io << (@pp_use_indent ? "#{@pp_indent}#{data}" : data.to_s)
end
- def node(data="")
+ def node(obj)
self.node_buffer.pull(self)
- self.node_buffer.push(Node.new(data))
- end
-
- def element(name, attrs={}, &block)
- self.node_buffer.pull(self)
- self.node_buffer.push(Element.new(name, attrs, &block))
+ self.node_buffer.push(obj)
end
def flush
self.node_buffer.flush(self)
end