Class: Ea::Lint::Engine

Inherits:
Object
  • Object
show all
Defined in:
lib/ea/lint/engine.rb

Overview

Runs all registered rules against a model and collects offenses. Adding a rule = adding it to DEFAULT_RULES (OCP).

Constant Summary collapse

DEFAULT_RULES =
[
  Rules::NamingConventionRule,
  Rules::OrphanElementRule,
  Rules::DuplicateNameRule,
  Rules::CyclicGeneralizationRule,
  Rules::MissingStereotypeRule
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rules: DEFAULT_RULES) ⇒ Engine

Returns a new instance of Engine.

Parameters:

  • rules (Array<Class>) (defaults to: DEFAULT_RULES)

    LintRule subclasses



19
20
21
# File 'lib/ea/lint/engine.rb', line 19

def initialize(rules: DEFAULT_RULES)
  @rules = rules
end

Instance Attribute Details

#rulesObject (readonly)

Returns the value of attribute rules.



8
9
10
# File 'lib/ea/lint/engine.rb', line 8

def rules
  @rules
end

Instance Method Details

#run(model) ⇒ Array<Offense>

Parameters:

  • model (#collections)

Returns:



25
26
27
# File 'lib/ea/lint/engine.rb', line 25

def run(model)
  @rules.flat_map { |rule_class| rule_class.new.check(model) }
end