module LegacyFacter::Util::Parser
Constants
- 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
extension_matches?(filename, ext)
click to toggle source
For support mutliple extensions you can pass an array of extensions as
ext
.
# File lib/facter/custom_facts/util/parser.rb, line 14 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
file_extension(filename)
click to toggle source
# File lib/facter/custom_facts/util/parser.rb, line 24 def self.file_extension(filename) File.extname(filename).sub('.', '') end
parser_for(filename)
click to toggle source
# File lib/facter/custom_facts/util/parser.rb, line 32 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
register(klass, &suitable)
click to toggle source
# File lib/facter/custom_facts/util/parser.rb, line 28 def self.register(klass, &suitable) @parsers << [klass, suitable] end