class ActiveRecordDoctor::Loader
A class used for loading user-provided configuration files.
Attributes
config[R]
recognized_detectors[R]
recognized_globals[R]
Public Class Methods
new(config, recognized_globals, recognized_detectors, &block)
click to toggle source
# File lib/active_record_doctor/config/loader.rb, line 82 def initialize(config, recognized_globals, recognized_detectors, &block) @config = config @recognized_globals = recognized_globals @recognized_detectors = recognized_detectors instance_eval(&block) end
Public Instance Methods
detector(name, settings)
click to toggle source
# File lib/active_record_doctor/config/loader.rb, line 106 def detector(name, settings) name = name.to_sym recognized_settings = recognized_detectors[name] if recognized_settings.nil? raise ActiveRecordDoctor::Error::UnrecognizedDetectorName[ name, recognized_detectors.keys ] end if config.detectors.include?(name) raise ActiveRecordDoctor::Error::DetectorConfiguredTwice[name] end unrecognized_settings = settings.keys - recognized_settings unless unrecognized_settings.empty? raise ActiveRecordDoctor::Error::UnrecognizedDetectorSettings[ name, unrecognized_settings, recognized_settings ] end config.detectors[name] = settings end
global(name, value)
click to toggle source
# File lib/active_record_doctor/config/loader.rb, line 89 def global(name, value) name = name.to_sym unless recognized_globals.include?(name) raise ActiveRecordDoctor::Error::UnrecognizedGlobalSetting[ name, recognized_globals ] end if config.globals.include?(name) raise ActiveRecordDoctor::Error::DuplicateGlobalSetting[name] end config.globals[name] = value end