Class: Uniword::Validation::Rules::SettingsValuesRule

Inherits:
Base
  • Object
show all
Defined in:
lib/uniword/validation/rules/settings_values_rule.rb

Overview

Validates settings.xml value formats.

DOC-101: w15:docId must be GUID format, w14:docId must be hex string Validity rule: R2

Constant Summary collapse

W_NS =
"http://schemas.openxmlformats.org/wordprocessingml/2006/main"
W15_NS =
"http://schemas.microsoft.com/office/word/2012/wordml"
W14_NS =
"http://schemas.microsoft.com/office/word/2010/wordml"
GUID_RE =
/\A\{[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\}\z/
HEX8_RE =
/\A[0-9A-Fa-f]{8}\z/

Instance Method Summary collapse

Instance Method Details

#applicable?(context) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/uniword/validation/rules/settings_values_rule.rb', line 25

def applicable?(context)
  context.part_exists?("word/settings.xml")
end

#categoryObject



22
# File 'lib/uniword/validation/rules/settings_values_rule.rb', line 22

def category = :settings

#check(context) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/uniword/validation/rules/settings_values_rule.rb', line 29

def check(context)
  issues = []
  doc = context.settings_xml
  return issues unless doc

  check_w15_doc_id(doc, issues)
  check_w14_doc_id(doc, issues)

  issues
end

#codeObject



19
# File 'lib/uniword/validation/rules/settings_values_rule.rb', line 19

def code = "DOC-101"

#descriptionObject



21
# File 'lib/uniword/validation/rules/settings_values_rule.rb', line 21

def description = "Settings value formats (w15:docId GUID, w14:docId hex)"

#severityObject



23
# File 'lib/uniword/validation/rules/settings_values_rule.rb', line 23

def severity = "error"

#validity_ruleObject



20
# File 'lib/uniword/validation/rules/settings_values_rule.rb', line 20

def validity_rule = "R2"