Class: Puppet::Pops::Binder::BindingsModelDumper
Overview
Dumps a Pops::Binder::Bindings model in reverse polish notation; i.e. LISP style The intention is to use this for debugging output TODO: BAD NAME - A DUMP is a Ruby Serialization NOTE: use :break, :indent, :dedent in lists to do just that
Constant Summary
collapse
- Bindings =
Puppet::Pops::Binder::Bindings
Instance Attribute Summary collapse
#indent_count
Instance Method Summary
collapse
#do_dump, #dump, #format, #format_r, #indent
Constructor Details
Returns a new instance of BindingsModelDumper.
Instance Attribute Details
#expression_dumper ⇒ Object
11
12
13
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 11
def expression_dumper
@expression_dumper
end
|
#type_calculator ⇒ Object
10
11
12
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 10
def type_calculator
@type_calculator
end
|
Instance Method Details
#dump_Array(o) ⇒ Object
64
65
66
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 64
def dump_Array o
o.collect {|e| do_dump(e) }
end
|
#dump_ArrayMultibindProducerDescriptor(o) ⇒ Object
150
151
152
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 150
def dump_ArrayMultibindProducerDescriptor o
['multibind-array']
end
|
#dump_Binding(o) ⇒ Object
162
163
164
165
166
167
168
169
170
171
172
173
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 162
def dump_Binding o
result = ['bind', :indent]
result << 'override' if o.override
result << 'abstract' if o.abstract
result.concat([do_dump(o.type), o.name])
result << :break
result << "(in #{o.multibind_id})" if o.multibind_id
result << :break
result << ['to', do_dump(o.producer)] + do_dump(o.producer_args)
result << :dedent
result
end
|
#dump_Bindings(o) ⇒ Object
188
189
190
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 188
def dump_Bindings o
do_dump(o.bindings)
end
|
#dump_BindingsBuilder(o) ⇒ Object
23
24
25
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 23
def dump_BindingsBuilder o
do_dump(o.model)
end
|
#dump_BindingsContainerBuilder(o) ⇒ Object
27
28
29
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 27
def dump_BindingsContainerBuilder o
do_dump(o.model)
end
|
#dump_BindingsFactory(o) ⇒ Object
19
20
21
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 19
def dump_BindingsFactory o
do_dump(o.model)
end
|
#dump_ConstantProducerDescriptor(o) ⇒ Object
109
110
111
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 109
def dump_ConstantProducerDescriptor o
['constant', do_dump(o.value)]
end
|
#dump_ContributedBindings(o) ⇒ Object
212
213
214
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 212
def dump_ContributedBindings o
['contributed', o.name, do_dump(o.bindings)]
end
|
#dump_EvaluatingProducerDescriptor(o) ⇒ Object
113
114
115
116
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 113
def dump_EvaluatingProducerDescriptor o
result = dump_ProducerDescriptor(o)
result << expression_dumper.dump(o.expression)
end
|
#dump_FirstFoundProducerDescriptor(o) ⇒ Object
145
146
147
148
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 145
def dump_FirstFoundProducerDescriptor o
['first-found', do_dump(o.producers)]
end
|
#dump_Hash(o) ⇒ Object
68
69
70
71
72
73
74
75
76
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 68
def dump_Hash o
result = ["hash", :indent]
o.each do |elem|
result << :break
result << ["=>", :indent, do_dump(elem[0]), :break, do_dump(elem[1]), :dedent]
end
result << :dedent
result
end
|
#dump_HashLookupProducerDescriptor(o) ⇒ Object
138
139
140
141
142
143
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 138
def dump_HashLookupProducerDescriptor o
result = ['hash-lookup', do_dump(o.type), o.name, "[#{do_dump(o.key)}]"]
result << expression_dumper.dump(o.transformer) if o.transformer
result
end
|
#dump_HashMultibindProducerDescriptor(o) ⇒ Object
154
155
156
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 154
def dump_HashMultibindProducerDescriptor o
['multibind-hash']
end
|
#dump_Injector(o) ⇒ Object
43
44
45
46
47
48
49
50
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 43
def dump_Injector o
result = ['injector', :indent,
:break,
['entries', do_dump(o.instance_variable_get('@impl').instance_variable_get('@entries'))],
:dedent
]
result
end
|
#dump_InjectorEntry(o) ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 52
def dump_InjectorEntry o
result = ['entry', :indent]
result << :break
result << ['precedence', o.precedence]
result << :break
result << ['binding', do_dump(o.binding)]
result << :break
result << ['producer', do_dump(o.cached_producer)]
result << :dedent
result
end
|
#dump_InstanceProducerDescriptor(o) ⇒ Object
118
119
120
121
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 118
def dump_InstanceProducerDescriptor o
['instance', o.class_name]
end
|
#dump_Integer(o) ⇒ Object
78
79
80
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 78
def dump_Integer o
o.to_s
end
|
#dump_LayeredBindings(o) ⇒ Object
202
203
204
205
206
207
208
209
210
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 202
def dump_LayeredBindings o
result = ['layers', :indent]
o.layers.each do |layer|
result << :break
result << do_dump(layer)
end
result << :dedent
result
end
|
#dump_LookupProducerDescriptor(o) ⇒ Object
130
131
132
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 130
def dump_LookupProducerDescriptor o
['lookup', do_dump(o.type), o.name]
end
|
#dump_Multibinding(o) ⇒ Object
175
176
177
178
179
180
181
182
183
184
185
186
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 175
def dump_Multibinding o
result = ['multibind', o.id, :indent]
result << 'override' if o.override
result << 'abstract' if o.abstract
result.concat([do_dump(o.type), o.name])
result << :break
result << "(in #{o.multibind_id})" if o.multibind_id
result << :break
result << ['to', do_dump(o.producer)] + do_dump(o.producer_args)
result << :dedent
result
end
|
#dump_NamedArgument(o) ⇒ Object
158
159
160
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 158
def dump_NamedArgument o
"#{o.name} => #{do_dump(o.value)}"
end
|
#dump_NamedBindings(o) ⇒ Object
192
193
194
195
196
197
198
199
200
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 192
def dump_NamedBindings o
result = ['named-bindings', o.name, :indent]
o.bindings.each do |b|
result << :break
result << do_dump(b)
end
result << :dedent
result
end
|
#dump_NamedLayer(o) ⇒ Object
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 31
def dump_NamedLayer o
result = ['named-layer', (o.name.nil? ? '<no-name>': o.name), :indent]
if o.bindings
o.bindings.each do |b|
result << :break
result << do_dump(b)
end
end
result << :dedent
result
end
|
#dump_NilClass(o) ⇒ Object
87
88
89
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 87
def dump_NilClass o
"()"
end
|
#dump_NonCachingProducerDescriptor(o) ⇒ Object
105
106
107
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 105
def dump_NonCachingProducerDescriptor o
dump_ProducerDescriptor(o) + do_dump(o.producer)
end
|
#dump_Object(o) ⇒ Object
91
92
93
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 91
def dump_Object o
['dev-error-no-polymorph-dump-for:', o.class.to_s, o.to_s]
end
|
#dump_PAnyType(o) ⇒ Object
134
135
136
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 134
def dump_PAnyType o
type_calculator.string(o)
end
|
#dump_ProducerDescriptor(o) ⇒ Object
99
100
101
102
103
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 99
def dump_ProducerDescriptor o
result = [o.class.name]
result << expression_dumper.dump(o.transformer) if o.transformer
result
end
|
#dump_ProducerProducerDescriptor(o) ⇒ Object
123
124
125
126
127
128
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 123
def dump_ProducerProducerDescriptor o
result = ['producer-producer', do_dump(o.producer)]
result << expression_dumper.dump(o.transformer) if o.transformer
result
end
|
#dump_String(o) ⇒ Object
Dump a Ruby String in single quotes unless it is a number.
83
84
85
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 83
def dump_String o
"'#{o}'"
end
|
#is_nop?(o) ⇒ Boolean
95
96
97
|
# File 'lib/puppet/pops/binder/bindings_model_dumper.rb', line 95
def is_nop? o
o.nil? || o.is_a?(Model::Nop) || o.is_a?(AST::Nop)
end
|