Class: Puppet::Pops::Model::TreeDumper Private
- Defined in:
- lib/puppet/pops/model/tree_dumper.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Base class for formatted textual dump of a “model”
Direct Known Subclasses
Instance Attribute Summary collapse
- #indent_count ⇒ Object private
Instance Method Summary collapse
- #do_dump(o) ⇒ Object private
- #dump(o) ⇒ Object private
- #format(x) ⇒ Object private
- #format_r(x) ⇒ Object private
- #indent ⇒ Object private
-
#initialize(initial_indentation = 0) ⇒ TreeDumper
constructor
private
A new instance of TreeDumper.
- #is_nop?(o) ⇒ Boolean private
Constructor Details
#initialize(initial_indentation = 0) ⇒ TreeDumper
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of TreeDumper.
5 6 7 8 |
# File 'lib/puppet/pops/model/tree_dumper.rb', line 5 def initialize initial_indentation = 0 @@dump_visitor ||= Puppet::Pops::Visitor.new(nil,"dump",0,0) @indent_count = initial_indentation end |
Instance Attribute Details
#indent_count ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
4 5 6 |
# File 'lib/puppet/pops/model/tree_dumper.rb', line 4 def indent_count @indent_count end |
Instance Method Details
#do_dump(o) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
14 15 16 |
# File 'lib/puppet/pops/model/tree_dumper.rb', line 14 def do_dump(o) @@dump_visitor.visit_this_0(self, o) end |
#dump(o) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
10 11 12 |
# File 'lib/puppet/pops/model/tree_dumper.rb', line 10 def dump(o) format(do_dump(o)) end |
#format(x) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/puppet/pops/model/tree_dumper.rb', line 22 def format(x) result = "" parts = format_r(x) parts.each_index do |i| if i > 0 # separate with space unless previous ends with whitepsace or ( result << ' ' if parts[i] != ")" && parts[i-1] !~ /.*(?:\s+|\()$/ && parts[i] !~ /^\s+/ end result << parts[i].to_s end result end |
#format_r(x) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/puppet/pops/model/tree_dumper.rb', line 35 def format_r(x) result = [] case x when :break result << "\n" + indent when :indent @indent_count += 1 when :dedent @indent_count -= 1 when Array result << '(' result += x.collect {|a| format_r(a) }.flatten result << ')' when Symbol result << x.to_s # Allows Symbols in arrays e.g. ["text", =>, "text"] else result << x end result end |
#indent ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
18 19 20 |
# File 'lib/puppet/pops/model/tree_dumper.rb', line 18 def indent " " * indent_count end |