Class: AsciiChem::Linter::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/asciichem/linter/base.rb

Overview

Base class for linter checks. Subclasses implement run(formula) and return an array of Diagnostic objects.

Self-registration: subclasses call register(:name) inside their class body. The Linter module triggers every autoload at load time so each check file has a chance to register before any API is queried.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.register(name) ⇒ Object



14
15
16
# File 'lib/asciichem/linter/base.rb', line 14

def register(name)
  AsciiChem::Linter::Registry.add(name, self)
end

Instance Method Details

#run(_formula) ⇒ Object

Raises:

  • (NotImplementedError)


19
20
21
# File 'lib/asciichem/linter/base.rb', line 19

def run(_formula)
  raise NotImplementedError, "#{self.class} must implement #run"
end