Module: Facter::Util::Parser

Defined in:
lib/facter/util/parser.rb

Defined Under Namespace

Modules: KeyValuePairOutputFormat Classes: Base, JsonParser, NothingParser, PowershellParser, ScriptParser, TextParser, YamlParser

Class Method Summary collapse

Class Method Details

.extension_matches?(filename, ext) ⇒ Boolean

For support mutliple extensions you can pass an array of extensions as ext.

Returns:

  • (Boolean)


13
14
15
16
17
18
19
20
21
# File 'lib/facter/util/parser.rb', line 13

def self.extension_matches?(filename, ext)
  extension = case ext
  when String
    ext.downcase
  when Enumerable
    ext.collect {|x| x.downcase }
  end
  [extension].flatten.to_a.include?(file_extension(filename).downcase)
end

.file_extension(filename) ⇒ Object



23
24
25
# File 'lib/facter/util/parser.rb', line 23

def self.file_extension(filename)
  File.extname(filename).sub(".", '')
end

.parser_for(filename) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/facter/util/parser.rb', line 31

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) ⇒ Object



27
28
29
# File 'lib/facter/util/parser.rb', line 27

def self.register(klass, &suitable)
  @parsers << [klass, suitable]
end