Class: Uniword::Plugin::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/uniword/plugin/validator.rb

Overview

Base class for plugin-provided validation rules. Subclasses implement #check(document) (yields findings).

Open/closed: adding a new validator = subclassing + calling Registry.register_validator.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, severity: :warning) ⇒ Validator

Returns a new instance of Validator.

Parameters:

  • name (Symbol)
  • severity (Symbol) (defaults to: :warning)


19
20
21
22
# File 'lib/uniword/plugin/validator.rb', line 19

def initialize(name:, severity: :warning)
  @name = name
  @severity = severity
end

Instance Attribute Details

#nameSymbol (readonly)

Returns validator name (matches the registry key).

Returns:

  • (Symbol)

    validator name (matches the registry key)



12
13
14
# File 'lib/uniword/plugin/validator.rb', line 12

def name
  @name
end

#severitySymbol (readonly)

Returns default severity (:error, :warning, :info).

Returns:

  • (Symbol)

    default severity (:error, :warning, :info)



15
16
17
# File 'lib/uniword/plugin/validator.rb', line 15

def severity
  @severity
end

Instance Method Details

#check(document) {|finding| ... } ⇒ void

This method returns an undefined value.

Walk the document and yield each finding as a hash.

Parameters:

Yield Parameters:

  • finding (Hash)

    { message:, path: }

Raises:

  • (NotImplementedError)


29
30
31
# File 'lib/uniword/plugin/validator.rb', line 29

def check(document)
  raise NotImplementedError
end