Module: LegacyFacter::Util::Parser

Defined in:
lib/custom_facts/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)


16
17
18
19
20
21
22
23
24
# File 'lib/custom_facts/util/parser.rb', line 16

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



26
27
28
# File 'lib/custom_facts/util/parser.rb', line 26

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

.parser_for(filename) ⇒ Object



34
35
36
37
38
39
40
41
42
# File 'lib/custom_facts/util/parser.rb', line 34

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



30
31
32
# File 'lib/custom_facts/util/parser.rb', line 30

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