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
56 def initialize(parent)
57   @parent = parent
58   @event = nil
59 end

Public Instance Methods

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