relaton/relaton-gb

View on GitHub
lib/relaton_gb/hash_converter.rb

Summary

Maintainability
A
0 mins
Test Coverage
module RelatonGb
  module HashConverter
    include RelatonIsoBib::HashConverter
    extend self

    # @override RelatonBib::HashConverter.hash_to_bib
    # @param args [Hash]
    # @param nested [TrueClass, FalseClass]
    # @return [Hash]
    def hash_to_bib(args)
      ret = super
      return if ret.nil?

      ccs_hash_to_bib(ret)
      ret
    end

    private

    #
    # Ovverides superclass's method
    #
    # @param item [Hash]
    # @retirn [RelatonGb::GbBibliographicItem]
    def bib_item(item)
      GbBibliographicItem.new(item)
    end

    def ccs_hash_to_bib(ret)
      ret[:ccs] = RelatonBib.array(ret[:ccs]).map do |ccs|
        (ccs[:code] && Cnccs.fetch(ccs[:code])) || Cnccs.fetch(ccs)
      end
    end

    def create_doctype(**args)
      DocumentType.new(**args)
    end
  end
end