Class: Puppet::Pops::Lookup::ExplainTreeNode
Direct Known Subclasses
ExplainDataProvider, ExplainGlobal, ExplainInterpolate, ExplainInvalidKey, ExplainKeySegment, ExplainMerge, ExplainModule, ExplainPath, ExplainScope, ExplainSubLookup, ExplainTop
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods inherited from ExplainNode
#branches, #dump_on, #to_s
Constructor Details
Returns a new instance of ExplainTreeNode.
34
35
36
37
38
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 34
def initialize(parent)
@parent = parent
@event = nil
@texts = nil
end
|
Instance Attribute Details
31
32
33
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 31
def event
@event
end
|
32
33
34
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 32
def key
@key
end
|
31
32
33
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 31
def parent
@parent
end
|
31
32
33
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 31
def value
@value
end
|
Instance Method Details
#dump_outcome(io, indent) ⇒ Object
99
100
101
102
103
104
105
106
107
108
109
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 99
def dump_outcome(io, indent)
io << indent << 'No such key: "' << @key << "\"\n" if @event == :not_found
if [:found, :found_in_overrides, :found_in_defaults].include?(@event)
io << indent << 'Found key: "' << @key << '" value: '
dump_value(io, indent, @value)
io << ' in overrides' if @event == :found_in_overrides
io << ' in defaults' if @event == :found_in_defaults
io << "\n"
end
dump_texts(io, indent, @texts)
end
|
#dump_texts(io, indent, texts) ⇒ Object
111
112
113
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 111
def dump_texts(io, indent, texts)
texts.each { |text| io << indent << text << "\n" } unless texts.nil?
end
|
#dump_value(io, indent, value) ⇒ Object
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 115
def dump_value(io, indent, value)
case value
when Hash
io << '{'
unless value.empty?
inner_indent = increase_indent(indent)
value.reduce("\n") do |sep, (k, v)|
io << sep << inner_indent
dump_value(io, inner_indent, k)
io << ' => '
dump_value(io, inner_indent, v)
",\n"
end
io << "\n" << indent
end
io << '}'
when Array
io << '['
unless value.empty?
inner_indent = increase_indent(indent)
value.reduce("\n") do |sep, v|
io << sep << inner_indent
dump_value(io, inner_indent, v)
",\n"
end
io << "\n" << indent
end
io << ']'
else
io << value.inspect
end
end
|
#found(key, value) ⇒ Object
52
53
54
55
56
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 52
def found(key, value)
@key = key
@value = value
@event = :found
end
|
#found_in_defaults(key, value) ⇒ Object
46
47
48
49
50
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 46
def found_in_defaults(key, value)
@key = key
@value = value
@event = :found_in_defaults
end
|
#found_in_overrides(key, value) ⇒ Object
40
41
42
43
44
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 40
def found_in_overrides(key, value)
@key = key
@value = value
@event = :found_in_overrides
end
|
#increase_indent(indent) ⇒ Object
81
82
83
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 81
def increase_indent(indent)
indent + ' '
end
|
#module_not_found ⇒ Object
77
78
79
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 77
def module_not_found
@event = :module_not_found
end
|
#not_found(key) ⇒ Object
68
69
70
71
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 68
def not_found(key)
@key = key
@event = :not_found
end
|
#path_not_found ⇒ Object
73
74
75
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 73
def path_not_found
@event = :path_not_found
end
|
#result(value) ⇒ Object
58
59
60
61
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 58
def result(value)
@value = value
@event = :result
end
|
#text(text) ⇒ Object
63
64
65
66
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 63
def text(text)
@texts ||= []
@texts << text
end
|
85
86
87
88
89
90
91
92
93
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 85
def to_hash
hash = super
hash[:key] = @key unless @key.nil?
hash[:value] = @value if [:found, :found_in_defaults, :found_in_overrides, :result].include?(@event)
hash[:event] = @event unless @event.nil?
hash[:texts] = @texts unless @texts.nil?
hash[:type] = type
hash
end
|
95
96
97
|
# File 'lib/puppet/pops/lookup/explainer.rb', line 95
def type
:root
end
|