class MarkdownLint::Rule
defines a single rule
Attributes
Public Class Methods
Source
# File lib/mdl/ruleset.rb, line 6 def initialize(id, description, fallback_docs: nil, &) @id = id @description = description @generate_docs = fallback_docs @docs_overridden = false @aliases = [] @tags = [] @params = {} instance_eval(&) end
Public Instance Methods
Source
# File lib/mdl/ruleset.rb, line 32 def aliases(*aliases) @aliases.concat(aliases) @aliases end
Source
# File lib/mdl/ruleset.rb, line 17 def check(&block) @check = block unless block.nil? @check end
Source
# File lib/mdl/ruleset.rb, line 56 def docs(url = nil, &block) if block_given? != url.nil? raise ArgumentError, 'Give either a URL or a block, not both' end raise 'A docs url is already set within this rule' if @docs_overridden @generate_docs = block_given? ? block : lambda { |_, _| url } @docs_overridden = true end
Source
# File lib/mdl/ruleset.rb, line 67 def docs_url @generate_docs&.call(id, description) end
Source
# File lib/mdl/ruleset.rb, line 22 def fix(&block) @fix = block unless block.nil? @fix end
Source
# File lib/mdl/ruleset.rb, line 37 def params(params = nil) unless params.nil? # Normalize string values to symbols where the rule's default is # a symbol AND the string looks like a simple identifier, so that # style files can use either :atx or "atx". Values like "---" # (MD035 hr style) are left as strings. params = params.each_with_object({}) do |(k, v), h| h[k] = if v.is_a?(String) && @params[k].is_a?(Symbol) && v.match?(/\A[a-z][a-z_]*\z/) v.to_sym else v end end @params.update(params) end @params end