Class: WhyClasses::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/why_classes/configuration.rb

Overview

A merged configuration (project .why-classes.yml over config/default.yml), exposing per-rule lookups and Rails awareness.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Configuration

Returns a new instance of Configuration.



9
10
11
12
# File 'lib/why_classes/configuration.rb', line 9

def initialize(data)
  @data = data
  @raw = data
end

Instance Attribute Details

#rawObject (readonly)

Returns the value of attribute raw.



7
8
9
# File 'lib/why_classes/configuration.rb', line 7

def raw
  @raw
end

Instance Method Details

#all_rulesObject



14
15
16
# File 'lib/why_classes/configuration.rb', line 14

def all_rules
  @data.fetch("AllRules", {})
end

#autocorrect?(rule_name) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/why_classes/configuration.rb', line 42

def autocorrect?(rule_name)
  rule_config(rule_name).fetch("Autocorrect", false)
end

#enabled?(rule_name) ⇒ Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/why_classes/configuration.rb', line 38

def enabled?(rule_name)
  rule_config(rule_name).fetch("Enabled", true)
end

#exclude_globsObject



30
31
32
# File 'lib/why_classes/configuration.rb', line 30

def exclude_globs
  all_rules.fetch("Exclude", [])
end

#framework_base_class?(const_path) ⇒ Boolean

Returns:

  • (Boolean)


58
59
60
61
62
# File 'lib/why_classes/configuration.rb', line 58

def framework_base_class?(const_path)
  return false if const_path.nil?

  framework_base_classes.include?(const_path)
end

#framework_base_classesObject



54
55
56
# File 'lib/why_classes/configuration.rb', line 54

def framework_base_classes
  rails_config.fetch("FrameworkBaseClasses", [])
end

#include_globsObject



26
27
28
# File 'lib/why_classes/configuration.rb', line 26

def include_globs
  all_rules.fetch("Include", ["**/*.rb"])
end

#mixin_suggestions_for(const_path) ⇒ Object



64
65
66
# File 'lib/why_classes/configuration.rb', line 64

def mixin_suggestions_for(const_path)
  rails_config.fetch("MixinSuggestions", {}).fetch(const_path, nil)
end

#rails?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/why_classes/configuration.rb', line 34

def rails?
  all_rules.fetch("Rails", true)
end

#rails_configObject



22
23
24
# File 'lib/why_classes/configuration.rb', line 22

def rails_config
  @data.fetch("Rails", {})
end

#rule_config(rule_name) ⇒ Object



50
51
52
# File 'lib/why_classes/configuration.rb', line 50

def rule_config(rule_name)
  rules.fetch(rule_name, {})
end

#rule_option(rule_name, key, default = nil) ⇒ Object



46
47
48
# File 'lib/why_classes/configuration.rb', line 46

def rule_option(rule_name, key, default = nil)
  rule_config(rule_name).fetch(key, default)
end

#rulesObject



18
19
20
# File 'lib/why_classes/configuration.rb', line 18

def rules
  @data.fetch("Rules", {})
end