Class: Stellwerk::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/stellwerk/config.rb

Defined Under Namespace

Classes: UnknownRule

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filepath) ⇒ Config

Returns a new instance of Config.



9
10
11
12
13
# File 'lib/stellwerk/config.rb', line 9

def initialize(filepath)
  config = YAML.load_file(filepath)

  @rules = initialize_rules(config["rules"])
end

Instance Attribute Details

#rulesObject (readonly)

Returns the value of attribute rules.



7
8
9
# File 'lib/stellwerk/config.rb', line 7

def rules
  @rules
end

Instance Method Details

#initialize_rules(rules_config) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/stellwerk/config.rb', line 15

def initialize_rules(rules_config)
  rules_config.map do |rule_name, rule_config|
    begin
      require "stellwerk/rules/#{rule_name}"
      rule_class = ("Stellwerk::Rules::" + rule_name.camelize).constantize
    rescue LoadError, NameError
      raise(UnknownRule, "Unknown rule: #{rule_name}")
    end

    rule_class.new(rule_config)
  end
end