Class: Metanorma::Generic::Validate

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

Instance Method Summary collapse

Instance Method Details

#bibdata_validate(doc) ⇒ Object



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

def bibdata_validate(doc)
  stage_validate(doc)
  committee_validate(doc)
end

#committee_validate(xmldoc) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/metanorma/generic/validate.rb', line 31

def committee_validate(xmldoc)
  committees = Array(configuration&.committees) || return
  committees.empty? and return
  xmldoc.xpath("//bibdata/contributor[role/description = 'committee']/" \
      "organization/subdivision/name").each do |c|
    committees.include? c.text or
      @log.add("GENERIC_3", nil, params: [c.text])
  end
end

#configurationObject



41
42
43
# File 'lib/metanorma/generic/validate.rb', line 41

def configuration
  @conv.configuration
end

#content_validate(doc) ⇒ Object



13
14
15
16
# File 'lib/metanorma/generic/validate.rb', line 13

def content_validate(doc)
  super
  bibdata_validate(doc.root)
end

#schema_fileObject



9
10
11
# File 'lib/metanorma/generic/validate.rb', line 9

def schema_file
  configuration.validate_rng_file || "generic.rng"
end

#schema_locationObject



4
5
6
7
# File 'lib/metanorma/generic/validate.rb', line 4

def schema_location
  @conv.baselocation(configuration.validate_rng_file) ||
    File.join(File.dirname(__FILE__), "generic.rng")
end

#stage_validate(xmldoc) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/metanorma/generic/validate.rb', line 23

def stage_validate(xmldoc)
  stages = configuration.stage_abbreviations&.keys || return
  stages.empty? and return
  stage = xmldoc.at("//bibdata/status/stage")&.text
  stages.include? stage or
    @log.add("GENERIC_2", nil, params: [stage])
end