Class: Uniword::Validation::Rules::BookmarkPairingRule

Inherits:
ModelRule
  • Object
show all
Defined in:
lib/uniword/validation/rules/bookmark_pairing_rule.rb

Overview

DOC-201: every bookmarkStart must have a matching bookmarkEnd.

Unpaired bookmark starts produce corrupt documents that Word refuses to open.

Instance Method Summary collapse

Methods inherited from ModelRule

#context_type

Methods inherited from Base

#applicable?, #context_type, #description, #validity_rule

Instance Method Details

#categoryObject



12
# File 'lib/uniword/validation/rules/bookmark_pairing_rule.rb', line 12

def category = :bookmarks

#check(context) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/uniword/validation/rules/bookmark_pairing_rule.rb', line 15

def check(context)
  body = context.document.body
  return [] unless body

  end_ids = (body.bookmark_ends || []).filter_map(&:id).to_set
  (body.bookmark_starts || []).filter_map do |start|
    unpaired_issue(start, end_ids)
  end
end

#codeObject



11
# File 'lib/uniword/validation/rules/bookmark_pairing_rule.rb', line 11

def code = "DOC-201"

#severityObject



13
# File 'lib/uniword/validation/rules/bookmark_pairing_rule.rb', line 13

def severity = "error"