Class: Metanorma::Ietf::Validate

Inherits:
Standoc::Validate
  • Object
show all
Defined in:
lib/metanorma/ietf/validate.rb

Instance Method Summary collapse

Instance Method Details

#content_validate(doc) ⇒ Object



11
12
13
14
15
16
# File 'lib/metanorma/ietf/validate.rb', line 11

def content_validate(doc)
  super
  image_validate(doc)
  workgroup_validate(doc)
  submission_validate(doc)
end

#copied_instance_variablesObject



7
8
9
# File 'lib/metanorma/ietf/validate.rb', line 7

def copied_instance_variables
  super + %i[workgroups]
end

#image_validate(doc) ⇒ Object



29
30
31
32
33
34
# File 'lib/metanorma/ietf/validate.rb', line 29

def image_validate(doc)
  doc.xpath("//image").each do |i|
    i["mimetype"] == "image/svg+xml" and next
    @log.add("IETF_3", i, params: [i["src"][0, 40]])
  end
end

#ns(path) ⇒ Object



18
19
20
# File 'lib/metanorma/ietf/validate.rb', line 18

def ns(path)
  ::Metanorma::Utils::ns(path)
end

#schema_fileObject



46
47
48
# File 'lib/metanorma/ietf/validate.rb', line 46

def schema_file
  "ietf.rng"
end

#submission_validate(doc) ⇒ Object



22
23
24
25
26
27
# File 'lib/metanorma/ietf/validate.rb', line 22

def submission_validate(doc)
  stream = doc.at("//bibdata/series[@type = 'stream']/title")&.text
  status = doc.at("//bibdata/status/stage")&.text
  stream == "editorial" && status != "informational" and
    @log.add("IETF_2", nil)
end

#workgroup_validate(doc) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'lib/metanorma/ietf/validate.rb', line 36

def workgroup_validate(doc)
  @workgroups.empty? and return
  doc.xpath("//bibdata/contributor[role/description = 'committee']/" \
    "organization/subdivision[@type = 'Workgroup']/name").each do |wg|
    wg_norm = wg.text.sub(/ (Working|Research) Group$/, "")
    @workgroups.include?(wg_norm) and next
    @log.add("IETF_4", nil, params: [wg.text])
  end
end