Module: Mdlint::Plugin

Defined in:
lib/mdlint/plugin.rb,
sig/mdlint.rbs,
sig/internal.rbs

Defined Under Namespace

Classes: Error

Class Method Summary collapse

Class Method Details

.load(path) ⇒ Object

Parameters:

  • path (String)

Returns:

  • (Object)


25
26
27
28
29
# File 'lib/mdlint/plugin.rb', line 25

def self.load(path)
  require File.expand_path(path, Dir.pwd)
rescue LoadError, StandardError => error
  raise Error, "could not load plugin #{path}: #{error.message}"
end

.register_dialect(name, features: []) ⇒ Symbol

Parameters:

  • name (Symbol, String)
  • features: (Array[Symbol]) (defaults to: [])

Returns:

  • (Symbol)


17
18
19
# File 'lib/mdlint/plugin.rb', line 17

def self.register_dialect(name, features: [])
  Mdlint::Dialect.register(name, features: features)
end

.register_rule(rule_class) ⇒ Class

Parameters:

  • rule_class (Class)

Returns:

  • (Class)


8
9
10
11
12
13
14
15
# File 'lib/mdlint/plugin.rb', line 8

def self.register_rule(rule_class)
  unless defined?(Mdlint::Linter::Rule) && rule_class.is_a?(Class) && rule_class < Mdlint::Linter::Rule
    raise Error, "plugin rules must inherit from Mdlint::Linter::Rule"
  end

  Mdlint::Linter::RuleRegistry.register(rule_class)
  rule_class
end

.unregister_rule(rule_class) ⇒ void

This method returns an undefined value.

Parameters:

  • rule_class (Class)


21
22
23
# File 'lib/mdlint/plugin.rb', line 21

def self.unregister_rule(rule_class)
  Mdlint::Linter::RuleRegistry.unregister(rule_class)
end