class ConfigFiles::LoaderFactory

Attributes

options[R]

Public Class Methods

call(file_name, options={include_default: true}) click to toggle source
# File lib/config_files/loader_factory.rb, line 5
def call(file_name, options={include_default: true})
  new(options).call(file_name)
end
new(options) click to toggle source
# File lib/config_files/loader_factory.rb, line 40
def initialize(options) #Note the check below is necessary, because we only want to do it if it is explicity set
  @options=default_options.merge(options)
  if include_default_loaders?
    @options[:loaders]=default_loaders.merge(loaders)
  end
end

Public Instance Methods

call(file_name) click to toggle source
# File lib/config_files/loader_factory.rb, line 48
def call(file_name)
  loaders.detect{|_, extensions| extensions.include?(::File.extname(file_name).strip.downcase[1..-1])}&.first || default_loader
end

Private Instance Methods

default_loader() click to toggle source
# File lib/config_files/loader_factory.rb, line 20
def default_loader
  options[:default_loader]
end
default_loaders() click to toggle source
# File lib/config_files/loader_factory.rb, line 13
def default_loaders
  {
    Loaders::Yaml => ['yaml', 'yml'],
    Loaders::Json =>  ['json']
  }
end
default_options() click to toggle source
# File lib/config_files/loader_factory.rb, line 24
def default_options
  {
    include_default: true,
    default_loader: Loaders::Yaml,
    loaders: default_loaders
  }
end
include_default_loaders?() click to toggle source
# File lib/config_files/loader_factory.rb, line 32
def include_default_loaders?
  options[:include_default]
end
loaders() click to toggle source
# File lib/config_files/loader_factory.rb, line 36
def loaders
  options[:loaders]
end