class Puppet::Pops::Lookup::ExplainTreeNode

Attributes

event[R]
key[RW]
parent[R]
value[R]

Public Class Methods

new(parent) click to toggle source
   # File lib/puppet/pops/lookup/explainer.rb
55 def initialize(parent)
56   @parent = parent
57   @event = nil
58 end

Public Instance Methods

dump_outcome(io, indent) click to toggle source
    # File lib/puppet/pops/lookup/explainer.rb
110 def dump_outcome(io, indent)
111   case @event
112   when :not_found
113     io << indent << 'No such key: "' << @key << "\"\n"
114   when :found, :found_in_overrides, :found_in_defaults
115     io << indent << 'Found key: "' << @key << '" value: '
116     dump_value(io, indent, @value)
117     io << ' in overrides' if @event == :found_in_overrides
118     io << ' in defaults' if @event == :found_in_defaults
119     io << "\n"
120   end
121   dump_texts(io, indent)
122 end
dump_value(io, indent, value) click to toggle source
    # File lib/puppet/pops/lookup/explainer.rb
124 def dump_value(io, indent, value)
125   case value
126   when Hash
127     io << '{'
128     unless value.empty?
129       inner_indent = increase_indent(indent)
130       value.reduce("\n") do |sep, (k, v)|
131         io << sep << inner_indent
132         dump_value(io, inner_indent, k)
133         io << ' => '
134         dump_value(io, inner_indent, v)
135         ",\n"
136       end
137       io << "\n" << indent
138     end
139     io << '}'
140   when Array
141     io << '['
142     unless value.empty?
143       inner_indent = increase_indent(indent)
144       value.reduce("\n") do |sep, v|
145         io << sep << inner_indent
146         dump_value(io, inner_indent, v)
147         ",\n"
148       end
149       io << "\n" << indent
150     end
151     io << ']'
152   else
153     io << value.inspect
154   end
155 end
found(key, value) click to toggle source
   # File lib/puppet/pops/lookup/explainer.rb
72 def found(key, value)
73   @key = key.to_s
74   @value = value
75   @event = :found
76 end
found_in_defaults(key, value) click to toggle source
   # File lib/puppet/pops/lookup/explainer.rb
66 def found_in_defaults(key, value)
67   @key = key.to_s
68   @value = value
69   @event = :found_in_defaults
70 end
found_in_overrides(key, value) click to toggle source
   # File lib/puppet/pops/lookup/explainer.rb
60 def found_in_overrides(key, value)
61   @key = key.to_s
62   @value = value
63   @event = :found_in_overrides
64 end
increase_indent(indent) click to toggle source
   # File lib/puppet/pops/lookup/explainer.rb
92 def increase_indent(indent)
93   indent + '  '
94 end
location_not_found() click to toggle source
   # File lib/puppet/pops/lookup/explainer.rb
88 def location_not_found
89   @event = :location_not_found
90 end
not_found(key) click to toggle source
   # File lib/puppet/pops/lookup/explainer.rb
83 def not_found(key)
84   @key = key.to_s
85   @event = :not_found
86 end
result(value) click to toggle source
   # File lib/puppet/pops/lookup/explainer.rb
78 def result(value)
79   @value = value
80   @event = :result
81 end
to_hash() click to toggle source
    # File lib/puppet/pops/lookup/explainer.rb
 96 def to_hash
 97   hash = super
 98   hash[:key] = @key unless @key.nil?
 99   hash[:value] = @value if [:found, :found_in_defaults, :found_in_overrides, :result].include?(@event)
100   hash[:event] = @event unless @event.nil?
101   hash[:texts] = @texts unless @texts.nil?
102   hash[:type] = type
103   hash
104 end
to_s() click to toggle source
    # File lib/puppet/pops/lookup/explainer.rb
157 def to_s
158   "#{self.class.name}: #{@key}, #{@event}"
159 end
type() click to toggle source
    # File lib/puppet/pops/lookup/explainer.rb
106 def type
107   :root
108 end