Class: LegacyFacter::Util::Parser::Base
- Inherits:
-
Object
- Object
- LegacyFacter::Util::Parser::Base
- Defined in:
- lib/custom_facts/util/parser.rb
Direct Known Subclasses
JsonParser, PowershellParser, ScriptParser, TextParser, YamlParser
Instance Attribute Summary collapse
-
#filename ⇒ Object
readonly
Returns the value of attribute filename.
Instance Method Summary collapse
- #content ⇒ Object
-
#initialize(filename, content = nil) ⇒ Base
constructor
A new instance of Base.
- #parse_executable_output(output) ⇒ Object
- #parse_results ⇒ Object
-
#results ⇒ Object
results on the base class is really meant to be just an exception handler wrapper.
Constructor Details
#initialize(filename, content = nil) ⇒ Base
Returns a new instance of Base.
46 47 48 49 |
# File 'lib/custom_facts/util/parser.rb', line 46 def initialize(filename, content = nil) @filename = filename @content = content end |
Instance Attribute Details
#filename ⇒ Object (readonly)
Returns the value of attribute filename.
44 45 46 |
# File 'lib/custom_facts/util/parser.rb', line 44 def filename @filename end |
Instance Method Details
#content ⇒ Object
51 52 53 |
# File 'lib/custom_facts/util/parser.rb', line 51 def content @content ||= Facter::Util::FileHelper.safe_read(filename, nil) end |
#parse_executable_output(output) ⇒ Object
68 69 70 71 72 73 74 75 76 77 |
# File 'lib/custom_facts/util/parser.rb', line 68 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.})") end res = KeyValuePairOutputFormat.parse output unless res.is_a?(Hash) res end |
#parse_results ⇒ Object
64 65 66 |
# File 'lib/custom_facts/util/parser.rb', line 64 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.
57 58 59 60 61 62 |
# File 'lib/custom_facts/util/parser.rb', line 57 def results parse_results rescue Exception => e Facter.log_exception(e, "Failed to handle #{filename} as #{self.class} facts: #{e.}") nil end |