Class: PuppetDebugger::InputResponders::Vars
Constant Summary
collapse
- COMMAND_WORDS =
%w[vars ls].freeze
- SUMMARY =
'List all the variables in the current scopes.'
- COMMAND_GROUP =
:scope
Instance Attribute Summary
#debugger
Instance Method Summary
collapse
command_completion, command_group, command_words, details, execute, #modules_paths, #puppet_debugger_lib_dir, summary
Instance Method Details
#find_resources(resources, filter = []) ⇒ Object
40
41
42
43
44
45
|
# File 'lib/plugins/puppet-debugger/input_responders/vars.rb', line 40
def find_resources(resources, filter = [])
filter_string = filter.join(' ').downcase
resources.find_all do |resource|
resource.name.to_s.downcase.include?(filter_string) || resource.type.to_s.downcase.include?(filter_string)
end
end
|
#parameters_to_h(resource) ⇒ Object
32
33
34
35
36
37
38
|
# File 'lib/plugins/puppet-debugger/input_responders/vars.rb', line 32
def parameters_to_h(resource)
resource.parameters.each_with_object({}) do |param, params|
name = param.first.to_s
params[name] = param.last.respond_to?(:value) ? param.last.value : param.last
params
end
end
|
#resource_parameters(resources, filter = []) ⇒ Object
24
25
26
27
28
29
30
|
# File 'lib/plugins/puppet-debugger/input_responders/vars.rb', line 24
def resource_parameters(resources, filter = [])
find_resources(resources, filter).each_with_object({}) do |resource, acc|
name = "#{resource.type}[#{resource.name}]"
acc[name] = parameters_to_h(resource)
acc
end
end
|
#run(args = []) ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/plugins/puppet-debugger/input_responders/vars.rb', line 11
def run(args = [])
filter = args
unless filter.empty?
parameters = resource_parameters(debugger.catalog.resources, filter)
return parameters.ai(sort_keys: true, indent: -1)
end
variables = debugger.scope.to_hash.delete_if { |key, _value| debugger.node.facts.values.key?(key) }
variables['facts'] = 'removed by the puppet-debugger' if variables.key?('facts')
output = 'Facts were removed for easier viewing'.ai + "\n"
output + variables.ai(sort_keys: true, indent: -1)
end
|