module LegacyFacter::Util::Parser
Constants
- STDERR_MESSAGE
- TIME
-
This regex was taken from Psych and adapted github.com/ruby/psych/blob/d2deaa9adfc88fc0b870df022a434d6431277d08/lib/psych/scalar_scanner.rb#L9 It is used to detect Time in YAML, but we use it to wrap time objects in quotes to be treated as strings.
Public Class Methods
Source
# File lib/facter/custom_facts/util/parser.rb, line 17 def self.extension_matches?(filename, ext) extension = case ext when String ext.downcase when Enumerable ext.collect(&:downcase) end [extension].flatten.to_a.include?(file_extension(filename).downcase) end
For support mutliple extensions you can pass an array of extensions as ext
.
Source
# File lib/facter/custom_facts/util/parser.rb, line 27 def self.file_extension(filename) File.extname(filename).sub('.', '') end
Source
# File lib/facter/custom_facts/util/parser.rb, line 35 def self.parser_for(filename) registration = @parsers.detect { |k| k[1].call(filename) } if registration.nil? NothingParser.new else registration[0].new(filename) end end
Source
# File lib/facter/custom_facts/util/parser.rb, line 31 def self.register(klass, &suitable) @parsers << [klass, suitable] end