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