module ADIWG::Mdtranslator::Writers::SbJson::Tag

Public Class Methods

build(intObj) click to toggle source
# File lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_tag.rb, line 29
def self.build(intObj)

   hResource = intObj[:metadata][:resourceInfo]
   aTags = []

   # tags from resource type
   hResource[:resourceTypes].each do |hType|
      hTag = {}
      type = hType[:type]
      sbType = Codelists.codelist_adiwg2sb('scope_adiwg2sb', type)
      sbType = sbType.nil? ? type : sbType
      hTag[:type] = 'Resource Type'
      hTag[:name] = sbType
      aTags << hTag
   end

   # tags from keywords
   hResource[:keywords].each do |hThemeSet|
      theme = hThemeSet[:keywordType]
      scheme = nil
      hThesaurus = hThemeSet[:thesaurus]
      unless hThesaurus.empty?
         unless hThesaurus[:onlineResources].empty?
            scheme = hThesaurus[:onlineResources][0][:olResURI]
         end
      end
      hThemeSet[:keywords].each do |hKeywordObj|
         keyword = hKeywordObj[:keyword]
         if keyword.length > 80
            if keyword.include?('>')
               aKeyList = keyword.split('>')
               aKeyList.each do |part|
                  hTag = tag_from_keyword(theme, part, scheme)
                  aTags << hTag
               end
            else
               hTag = tag_from_keyword(theme, keyword[0,76]+'...', scheme)
               aTags << hTag
            end
         else
            hTag = tag_from_keyword(theme, keyword, scheme)
            aTags << hTag
         end
      end
   end

   # tags from status
   hResource[:status].each do |status|
      hTag = {}
      hTag[:type] = 'Status'
      hTag[:name] = status
      aTags << hTag
   end

   # tags from repositories
   intObj[:metadataRepositories].each do |hRepo|
      unless hRepo[:citation].empty?
         tagName = nil
         tagName = hRepo[:citation][:title] unless hRepo[:citation][:title].nil?
         unless tagName.nil?
            hTag = {}
            hTag[:type] = 'Harvest Set'
            hTag[:name] = tagName
            aTags << hTag
         end
      end
   end

   if aTags.empty?
      return nil
   end

   aTags

end
tag_from_keyword(theme, keyword, namespace) click to toggle source
# File lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_tag.rb, line 18
def self.tag_from_keyword(theme, keyword, namespace)
   hTag = {}
   hTag[:type] = theme unless theme.nil?
   hTag[:name] = keyword
   hTag[:scheme] = namespace unless namespace.nil?
   if theme == 'isoTopicCategory'
      hTag[:type] = hTag[:scheme] = 'ISO 19115 Topic Category'
   end
   return hTag
end