Class: Mdlint::Linter::Rule

Inherits:
Object
  • Object
show all
Defined in:
lib/mdlint/linter/rule.rb,
sig/mdlint.rbs,
sig/internal.rbs

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Rule

Returns a new instance of Rule.

Parameters:

  • options (options) (defaults to: {})


17
18
19
20
# File 'lib/mdlint/linter/rule.rb', line 17

def initialize(options = {})
  @options = options
  @violations = []
end

Class Attribute Details

.aliasesObject

Returns the value of attribute aliases.

Returns:

  • (Object)


7
8
9
# File 'lib/mdlint/linter/rule.rb', line 7

def aliases
  @aliases
end

.descriptionObject

Returns the value of attribute description.

Returns:

  • (Object)


7
8
9
# File 'lib/mdlint/linter/rule.rb', line 7

def description
  @description
end

.presetObject

Returns the value of attribute preset.

Returns:

  • (Object)


7
8
9
# File 'lib/mdlint/linter/rule.rb', line 7

def preset
  @preset
end

.rule_idObject

Returns the value of attribute rule_id.

Returns:

  • (Object)


7
8
9
# File 'lib/mdlint/linter/rule.rb', line 7

def rule_id
  @rule_id
end

Instance Attribute Details

#violationsObject (readonly)

Returns the value of attribute violations.

Returns:

  • (Object)


15
16
17
# File 'lib/mdlint/linter/rule.rb', line 15

def violations
  @violations
end

Class Method Details

.inherited(subclass) ⇒ Object

Parameters:

  • subclass (Object)

Returns:

  • (Object)


9
10
11
12
# File 'lib/mdlint/linter/rule.rb', line 9

def inherited(subclass)
  super
  RuleRegistry.register(subclass)
end

Instance Method Details

#add_violation(message:, line:, column: nil, fixable: false) ⇒ Object

Parameters:

  • message: (String)
  • line: (Integer)
  • column: (Integer, nil) (defaults to: nil)
  • fixable: (Boolean) (defaults to: false)

Returns:

  • (Object)


32
33
34
35
36
37
38
39
40
41
# File 'lib/mdlint/linter/rule.rb', line 32

def add_violation(message:, line:, column: nil, fixable: false)
  @violations << Violation.new(
    rule_id: self.class.rule_id,
    message: message,
    line: line,
    column: column,
    fixable: fixable,
    severity: @options[:severity] || :warning
  )
end

#check(_tokens, _source) ⇒ Array[Violation]

Parameters:

  • tokens (Array[Token])
  • source (String)

Returns:

Raises:

  • (NotImplementedError)


22
23
24
# File 'lib/mdlint/linter/rule.rb', line 22

def check(_tokens, _source)
  raise NotImplementedError, "Subclasses must implement #check"
end

#fix(_tokens, _source) ⇒ String

Parameters:

  • tokens (Array[Token])
  • source (String)

Returns:

  • (String)


26
27
28
# File 'lib/mdlint/linter/rule.rb', line 26

def fix(_tokens, _source)
  _source
end