Sha256: 01d34398b62bc2d4163de3ad7e10f5317c4acaa5478ba70c109d14cab7ada114

Contents?: true

Size: 1.08 KB

Versions: 4

Compression:

Stored size: 1.08 KB

Contents

module RelatonIetf
  class IetfBibliographicItem < RelatonBib::BibliographicItem
    DOCTYPES = %w[rfc internet-draft].freeze

    # @return [String, NilClass]
    attr_reader :doctype

    # @return [Array<String>]
    attr_reader :keyword

    # @param doctype [String]
    # @param keyword [Array<String>]
    def initialize(**args)
      if args[:doctype] && !DOCTYPES.include?(args[:doctype])
        warn "[relaton-ietf] WARNING: invalid doctype #{args[:doctype]}"
      end
      super
      # @doctype = args[:doctype]
    end

    # @param builder
    # @param opts [Hash]
    # @option opts [Symbol, NilClass] :date_format (:short), :full
    def to_xml(builder = nil, **opts)
      opts[:date_format] ||= :short
      super builder, **opts do |b|
        if opts[:bibdata] && doctype
          b.ext do
            b.doctype doctype if doctype
          end
        end
      end
    end

    # @return [Hash]
    def to_hash
      hash = super
      hash["doctype"] = doctype if doctype
      # hash["keyword"] = single_element_array(keyword) if keyword&.any?
      hash
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
metanorma-cli-1.3.4 gems/ruby/2.6.0/gems/relaton-ietf-1.2.1/lib/relaton_ietf/ietf_bibliographic_item.rb
metanorma-cli-1.3.3.1 gems/ruby/2.6.0/gems/relaton-ietf-1.2.1/lib/relaton_ietf/ietf_bibliographic_item.rb
relaton-ietf-1.2.1 lib/relaton_ietf/ietf_bibliographic_item.rb
relaton-ietf-1.2.0 lib/relaton_ietf/ietf_bibliographic_item.rb