Sha256: 00da799ecd226703c6dc9265649f7dce9675543e29a72e3b6b945b97fc20b6aa

Contents?: true

Size: 1.91 KB

Versions: 9

Compression:

Stored size: 1.91 KB

Contents

require "isodoc"
require_relative "metadata"
require "fileutils"

module IsoDoc
  module NIST
    class Counter < IsoDoc::XrefGen::Counter
    end

    class Xref < IsoDoc::Xref
      SECTIONS_XPATH =
        "//foreword | //introduction | //reviewnote | //executivesummary | //annex | "\
        "//sections/clause | //bibliography/references | //acknowledgements | "\
        "//bibliography/clause | //preface/clause".freeze

      def initial_anchor_names(d)
        d.xpath("//xmlns:boilerplate/child::* | //xmlns:preface/child::*").each do |c|
          preface_names(c)
        end
        @in_execsummary = true
        hierarchical_asset_names(d.xpath("//xmlns:executivesummary"), "ES")
        @in_execsummary = false
        c = Counter.new
        clause_names(d, c)
        middle_section_asset_names(d)
        termnote_anchor_names(d)
        termexample_anchor_names(d)
      end

      def back_anchor_names(docxml)
        i = Counter.new("@")
        docxml.xpath(ns("//annex")).each do |c|
          i.increment(c)
          annex_names(c, i.print)
        end
        docxml.xpath(ns("//bibliography/clause | "\
                        "//bibliography/references")).each do |b|
          preface_names(b)
        end
        docxml.xpath(ns("//bibitem[not(ancestor::bibitem)]")).each do |ref|
          reference_names(ref)
        end
      end

      def middle_section_asset_names(d)
        middle_sections = "//xmlns:preface/child::*[not(self::xmlns:executivesummary)] | "\
          "//xmlns:sections/child::*"
        sequential_asset_names(d.xpath(middle_sections))
      end

      def clause_names(docxml, sect_num)
        q = "//xmlns:sections/child::*"
        docxml.xpath(q).each do |c|
          section_names(c, sect_num, 1)
        end
      end

      def annex_name_lbl(clause, num)
        l10n("<strong>#{@labels['annex']} #{num}</strong>")
      end

      def hiersep
        "-"
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
metanorma-nist-1.3.2 lib/isodoc/nist/xref.rb
metanorma-nist-1.3.1 lib/isodoc/nist/xref.rb
metanorma-nist-1.3.0 lib/isodoc/nist/xref.rb
metanorma-nist-1.2.16 lib/isodoc/nist/xref.rb
metanorma-nist-1.2.15 lib/isodoc/nist/xref.rb
metanorma-nist-1.2.14 lib/isodoc/nist/xref.rb
metanorma-nist-1.2.13 lib/isodoc/nist/xref.rb
metanorma-nist-1.2.12 lib/isodoc/nist/xref.rb
metanorma-nist-1.2.11 lib/isodoc/nist/xref.rb