Class: LegacyFacter::Util::Parser::Base
- Inherits:
-
Object
- Object
- LegacyFacter::Util::Parser::Base
show all
- Defined in:
- lib/custom_facts/util/parser.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(filename, content = nil) ⇒ Base
Returns a new instance of Base.
47
48
49
50
|
# File 'lib/custom_facts/util/parser.rb', line 47
def initialize(filename, content = nil)
@filename = filename
@content = content
end
|
Instance Attribute Details
#filename ⇒ Object
45
46
47
|
# File 'lib/custom_facts/util/parser.rb', line 45
def filename
@filename
end
|
Instance Method Details
#content ⇒ Object
52
53
54
|
# File 'lib/custom_facts/util/parser.rb', line 52
def content
@content ||= File.read(filename)
end
|
#parse_executable_output(output) ⇒ Object
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/custom_facts/util/parser.rb', line 69
def parse_executable_output(output)
res = nil
begin
res = YAML.safe_load output
rescue Exception => e
Facter.debug("Could not parse executable fact output as YAML or JSON (#{e.message})")
end
res = KeyValuePairOutputFormat.parse output unless res.is_a?(Hash)
res
end
|
#parse_results ⇒ Object
65
66
67
|
# File 'lib/custom_facts/util/parser.rb', line 65
def parse_results
raise ArgumentError, 'Subclasses must respond to parse_results'
end
|
#results ⇒ Object
results on the base class is really meant to be just an exception handler wrapper.
58
59
60
61
62
63
|
# File 'lib/custom_facts/util/parser.rb', line 58
def results
parse_results
rescue Exception => e
LegacyFacter.log_exception(e, "Failed to handle #{filename} as #{self.class} facts: #{e.message}")
nil
end
|