Sha256: 64c4fe0cd3571c509768620fe8b80c3fcd8a3a696787b82ad4b1a027524e3af8

Contents?: true

Size: 1.34 KB

Versions: 24

Compression:

Stored size: 1.34 KB

Contents

require "isodoc"

module IsoDoc
  module Ietf
    class  Metadata < IsoDoc::Metadata
      TITLE_RFC = "//bibdata//title[@type='main' and @language='en']".freeze

      def title(isoxml, _out)
        t =  isoxml.at(ns(TITLE_RFC)) and
          set(:doctitle, t.text)
        t =  isoxml.at(ns(TITLE_RFC.sub(/main/, "abbrev"))) and
          set(:docabbrev, t.text)
        t =  isoxml.at(ns(TITLE_RFC.sub(/main/, "ascii"))) and
          set(:docascii, t.text)
      end

      def relaton_relations
        %w(included-in described-by derived-from instance-of)
        # = item describedby convertedfrom alternate
      end

      def areas(isoxml, _out)
        ret = []
        isoxml.xpath(ns("//bibdata/ext/area")).each do |kw|
          ret << kw.text
        end
        set(:areas, ret)
      end

      def docid(isoxml, _out)
        dn = isoxml.at(ns("//bibdata/docnumber"))
        set(:docnumber, dn&.text&.sub(/^rfc-/, "")&.sub(/\.[a-z0-9]+$/i, ""))
      end

      def author(xml, _out)
        super
        wg(xml)
      end

      def wg(xml)
        workgroups = []
        xml.xpath(ns("//bibdata/ext/editorialgroup/workgroup")).each do |wg|
          workgroups << wg.text
        end
        set(:wg, workgroups)
      end

      def doctype(isoxml, _out)
        super
        set(:doctype, "Rfc") if get[:doctype].nil?
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
metanorma-ietf-3.5.2 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.5.1 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.5.0 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.4.4 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.4.3 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.4.2 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.4.0 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.3.10 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.3.9 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.3.8 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.3.7 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.3.6 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.3.5 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.3.4 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.3.3 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.3.2 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.3.1 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.3.0 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.2.7 lib/isodoc/ietf/metadata.rb
metanorma-ietf-3.2.6 lib/isodoc/ietf/metadata.rb