Module: WhyClasses::Registry

Defined in:
lib/why_classes/registry.rb

Overview

Tracks every Rule subclass and resolves the active set from --only/--except and the configuration.

Class Method Summary collapse

Class Method Details

.active(configuration:, only: nil, except: nil) ⇒ Object

Resolve the rule classes to run given config + CLI selection.



32
33
34
35
36
37
# File 'lib/why_classes/registry.rb', line 32

def active(configuration:, only: nil, except: nil)
  selected = all
  selected = selected.select { |r| Array(only).include?(r.rule_name) } if only && !only.empty?
  selected = selected.reject { |r| Array(except).include?(r.rule_name) } if except && !except.empty?
  selected.select { |r| configuration.enabled?(r.rule_name) }
end

.allObject



15
16
17
# File 'lib/why_classes/registry.rb', line 15

def all
  @rules.values
end

.fetch(name) ⇒ Object



23
24
25
# File 'lib/why_classes/registry.rb', line 23

def fetch(name)
  @rules.fetch(name)
end

.known?(name) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/why_classes/registry.rb', line 27

def known?(name)
  @rules.key?(name)
end

.namesObject



19
20
21
# File 'lib/why_classes/registry.rb', line 19

def names
  @rules.keys
end

.register(rule_class) ⇒ Object



11
12
13
# File 'lib/why_classes/registry.rb', line 11

def register(rule_class)
  @rules[rule_class.rule_name] = rule_class
end