class Puppet::Pops::Model::TreeDumper
Base class for formatted textual dump of a “model”
Attributes
indent_count[RW]
Public Class Methods
new(initial_indentation = 0)
click to toggle source
# File lib/puppet/pops/model/tree_dumper.rb 5 def initialize initial_indentation = 0 6 @@dump_visitor ||= Puppet::Pops::Visitor.new(nil,"dump",0,0) 7 @indent_count = initial_indentation 8 end
Public Instance Methods
do_dump(o)
click to toggle source
# File lib/puppet/pops/model/tree_dumper.rb 14 def do_dump(o) 15 @@dump_visitor.visit_this_0(self, o) 16 end
dump(o)
click to toggle source
# File lib/puppet/pops/model/tree_dumper.rb 10 def dump(o) 11 format(do_dump(o)) 12 end
format(x)
click to toggle source
# File lib/puppet/pops/model/tree_dumper.rb 22 def format(x) 23 result = "" 24 parts = format_r(x) 25 parts.each_index do |i| 26 if i > 0 27 # separate with space unless previous ends with whitespace or ( 28 result << ' ' if parts[i] != ")" && parts[i-1] !~ /.*(?:\s+|\()$/ && parts[i] !~ /^\s+/ 29 end 30 result << parts[i].to_s 31 end 32 result 33 end
format_r(x)
click to toggle source
# File lib/puppet/pops/model/tree_dumper.rb 35 def format_r(x) 36 result = [] 37 case x 38 when :break 39 result << "\n" + indent 40 when :indent 41 @indent_count += 1 42 when :dedent 43 @indent_count -= 1 44 when Array 45 result << '(' 46 result += x.collect {|a| format_r(a) }.flatten 47 result << ')' 48 when Symbol 49 result << x.to_s # Allows Symbols in arrays e.g. ["text", =>, "text"] 50 else 51 result << x 52 end 53 result 54 end
indent()
click to toggle source
# File lib/puppet/pops/model/tree_dumper.rb 18 def indent 19 " " * indent_count 20 end
is_nop?(o)
click to toggle source
# File lib/puppet/pops/model/tree_dumper.rb 56 def is_nop? o 57 o.nil? || o.is_a?(Puppet::Pops::Model::Nop) 58 end