class AfterDo::Loader::Config
Attributes
config_path[R]
Public Class Methods
new(config_path)
click to toggle source
Calls superclass method
# File lib/after_do/loader/config.rb, line 7 def initialize(config_path) @config_path = config_path super(parse_config) end
Private Instance Methods
constantize_classes!(config_hash)
click to toggle source
# File lib/after_do/loader/config.rb, line 27 def constantize_classes!(config_hash) config_hash['aspects'].each do |aspect| aspect['klass'] = AfterDo.const_get(aspect['klass']) aspect['advices'].each do |advice| advice['targets'].each do |target| target['klass'] = find_classes(target['klass']) end end end config_hash end
find_classes(target)
click to toggle source
# File lib/after_do/loader/config.rb, line 41 def find_classes(target) if target =~ />$/ AfterDo.const_get(target.gsub(/\s+>$/, '')).subclasses else [AfterDo.const_get(target.gsub(/\s+>$/, ''))] end end
parse_config()
click to toggle source
# File lib/after_do/loader/config.rb, line 18 def parse_config config_hash = YAML.load_file(config_path) config = constantize_classes!(config_hash) RecursiveOpenStruct.new(config, recurse_over_arrays: true) rescue raise Errors::InvalidConfig end