Class: Command::Results::XMLFormatter

Inherits:
Formatter
  • Object
show all
Defined in:
lib/command-set/results.rb

Overview

A trivial and obvious Formatter: produces well-formed XML fragments based on events. It even indents. Might be handy for more complicated output processing, since you could feed the document to a XSLT processor.

Instance Attribute Summary

Attributes inherited from Formatter

#advice

Instance Method Summary collapse

Methods inherited from Formatter

#apply_advice, #default_advice, #finish, inherited, #notify, #receive_advice, #saw_begin_list, #saw_end_list, #saw_item, #start

Constructor Details

#initialize(out = nil, err = nil, indent = " ", newline = "\n") ⇒ XMLFormatter

Returns a new instance of XMLFormatter.



824
825
826
827
828
829
# File 'lib/command-set/results.rb', line 824

def initialize(out = nil, err = nil, indent="  ", newline="\n")
  super(out, err)
  @indent = indent
  @newline = newline
  @indent_level=0
end

Instance Method Details

#closed_begin_list(name) ⇒ Object



835
836
837
838
# File 'lib/command-set/results.rb', line 835

def closed_begin_list(name)
  line "<#{name}#{xmlize_options(name)}>"
  @indent_level += 1
end

#closed_end_list(name) ⇒ Object



844
845
846
847
848
849
850
851
# File 'lib/command-set/results.rb', line 844

def closed_end_list(name)
  @indent_level -= 1
  if @indent_level < 0
    @indent_level = 0 
    return
  end
  line "</#{name}>"
end

#closed_item(value) ⇒ Object



840
841
842
# File 'lib/command-set/results.rb', line 840

def closed_item(value)
  line "<item value=\"#{value}\"#{xmlize_options(value)} />"
end

#line(string) ⇒ Object



831
832
833
# File 'lib/command-set/results.rb', line 831

def line(string)
  print "#{@indent * @indent_level}#{string}#@newline"
end