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