lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataDictionary.rb in adiwg-mdtranslator-2.5.0 vs lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataDictionary.rb in adiwg-mdtranslator-2.6.0

- old
+ new

@@ -1,151 +1,160 @@ # unpack a data dictionary # Reader - ADIwg JSON to internal data structure # History: -# Stan Smith 2017-01-20 refactored for mdJson/mdTranslator 2.0 -# Stan Smith 2015-07-14 refactored to remove global namespace constants -# Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj) -# Stan Smith 2014-12-15 refactored to handle namespacing readers and writers +# Stan Smith 2017-11-09 add dictionary description +# Stan Smith 2017-01-20 refactored for mdJson/mdTranslator 2.0 +# Stan Smith 2015-07-14 refactored to remove global namespace constants +# Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj) +# Stan Smith 2014-12-15 refactored to handle namespacing readers and writers # Stan Smith 2014-12-01 original script require_relative 'module_citation' require_relative 'module_domain' require_relative 'module_entity' require_relative 'module_locale' require_relative 'module_responsibleParty' module ADIWG - module Mdtranslator - module Readers - module MdJson + module Mdtranslator + module Readers + module MdJson - module DataDictionary + module DataDictionary - def self.unpack(hDictionary, responseObj) + def self.unpack(hDictionary, responseObj) - # return nil object if input is empty - if hDictionary.empty? - responseObj[:readerExecutionMessages] << 'Data Dictionary object is empty' - responseObj[:readerExecutionPass] = false - return nil - end + # return nil object if input is empty + if hDictionary.empty? + responseObj[:readerExecutionMessages] << 'Data Dictionary object is empty' + responseObj[:readerExecutionPass] = false + return nil + end - # instance classes needed in script - intMetadataClass = InternalMetadata.new - intDictionary = intMetadataClass.newDataDictionary + # instance classes needed in script + intMetadataClass = InternalMetadata.new + intDictionary = intMetadataClass.newDataDictionary - # dictionary - citation (required by mdJson) {citation} - if hDictionary.has_key?('citation') - hCitation = hDictionary['citation'] - unless hCitation.empty? - hReturn = Citation.unpack(hCitation, responseObj) - unless hReturn.nil? - intDictionary[:citation] = hReturn - end - end - end - if intDictionary[:citation].empty? - responseObj[:readerExecutionMessages] << 'Data Dictionary citation is empty' - responseObj[:readerExecutionPass] = false - return nil - end + # dictionary - description + if hDictionary.has_key?('description') + s = hDictionary['description'] + unless s == '' + intDictionary[:description] = s + end + end - # dictionary - subject [] (required) - if hDictionary.has_key?('subject') - aSubjects = hDictionary['subject'] - aSubjects.each do |item| - if item != '' - intDictionary[:subjects] << item - end - end + # dictionary - citation (required by mdJson) {citation} + if hDictionary.has_key?('citation') + hCitation = hDictionary['citation'] + unless hCitation.empty? + hReturn = Citation.unpack(hCitation, responseObj) + unless hReturn.nil? + intDictionary[:citation] = hReturn end - if intDictionary[:subjects].empty? - responseObj[:readerExecutionMessages] << 'Data Dictionary subject is missing' - responseObj[:readerExecutionPass] = false - return nil - end + end + end + if intDictionary[:citation].empty? + responseObj[:readerExecutionMessages] << 'Data Dictionary citation is empty' + responseObj[:readerExecutionPass] = false + return nil + end - # dictionary - recommended use [] - if hDictionary.has_key?('recommendedUse') - aUses = hDictionary['recommendedUse'] - aUses.each do |item| - if item != '' - intDictionary[:recommendedUses] << item - end - end + # dictionary - subject [] (required) + if hDictionary.has_key?('subject') + aSubjects = hDictionary['subject'] + aSubjects.each do |item| + if item != '' + intDictionary[:subjects] << item end + end + end + if intDictionary[:subjects].empty? + responseObj[:readerExecutionMessages] << 'Data Dictionary subject is missing' + responseObj[:readerExecutionPass] = false + return nil + end - # dictionary - locale [] {locale} - if hDictionary.has_key?('locale') - aLocales = hDictionary['locale'] - aLocales.each do |hItem| - hReturn = Locale.unpack(hItem, responseObj) - unless hReturn.nil? - intDictionary[:locales] << hReturn - end - end + # dictionary - recommended use [] + if hDictionary.has_key?('recommendedUse') + aUses = hDictionary['recommendedUse'] + aUses.each do |item| + if item != '' + intDictionary[:recommendedUses] << item end + end + end - # dictionary - responsible party (required) {responsibleParty} - if hDictionary.has_key?('responsibleParty') - hRParty = hDictionary['responsibleParty'] - unless hRParty.empty? - hReturn = ResponsibleParty.unpack(hRParty, responseObj) - unless hReturn.nil? - intDictionary[:responsibleParty] = hReturn - end - end + # dictionary - locale [] {locale} + if hDictionary.has_key?('locale') + aLocales = hDictionary['locale'] + aLocales.each do |hItem| + hReturn = Locale.unpack(hItem, responseObj) + unless hReturn.nil? + intDictionary[:locales] << hReturn end - if intDictionary[:responsibleParty].empty? - responseObj[:readerExecutionMessages] << 'Data Dictionary responsible party is empty' - responseObj[:readerExecutionPass] = false - return nil - end + end + end - # dictionary - dictionary format - if hDictionary.has_key?('dictionaryFormat') - s = hDictionary['dictionaryFormat'] - unless s == '' - intDictionary[:dictionaryFormat] = s - end + # dictionary - responsible party (required) {responsibleParty} + if hDictionary.has_key?('responsibleParty') + hRParty = hDictionary['responsibleParty'] + unless hRParty.empty? + hReturn = ResponsibleParty.unpack(hRParty, responseObj) + unless hReturn.nil? + intDictionary[:responsibleParty] = hReturn end + end + end + if intDictionary[:responsibleParty].empty? + responseObj[:readerExecutionMessages] << 'Data Dictionary responsible party is empty' + responseObj[:readerExecutionPass] = false + return nil + end - # dictionary - dictionary included with resource - if hDictionary.has_key?('dictionaryIncludedWithResource') - if hDictionary['dictionaryIncludedWithResource'] === true - intDictionary[:includedWithDataset] = hDictionary['dictionaryIncludedWithResource'] - end - end + # dictionary - dictionary format + if hDictionary.has_key?('dictionaryFormat') + s = hDictionary['dictionaryFormat'] + unless s == '' + intDictionary[:dictionaryFormat] = s + end + end - # dictionary - domains [] {domain} - if hDictionary.has_key?('domain') - aDomains = hDictionary['domain'] - aDomains.each do |hItem| - hReturn = Domain.unpack(hItem, responseObj) - unless hReturn.nil? - intDictionary[:domains] << hReturn - end - end + # dictionary - dictionary included with resource + if hDictionary.has_key?('dictionaryIncludedWithResource') + if hDictionary['dictionaryIncludedWithResource'] === true + intDictionary[:includedWithDataset] = hDictionary['dictionaryIncludedWithResource'] + end + end + + # dictionary - domains [] {domain} + if hDictionary.has_key?('domain') + aDomains = hDictionary['domain'] + aDomains.each do |hItem| + hReturn = Domain.unpack(hItem, responseObj) + unless hReturn.nil? + intDictionary[:domains] << hReturn end + end + end - # dictionary - entity [] {entity} - if hDictionary.has_key?('entity') - aEntities = hDictionary['entity'] - aEntities.each do |hItem| - hReturn = Entity.unpack(hItem, responseObj) - unless hReturn.nil? - intDictionary[:entities] << hReturn - end - end + # dictionary - entity [] {entity} + if hDictionary.has_key?('entity') + aEntities = hDictionary['entity'] + aEntities.each do |hItem| + hReturn = Entity.unpack(hItem, responseObj) + unless hReturn.nil? + intDictionary[:entities] << hReturn end + end + end - return intDictionary + return intDictionary - end + end - end - end - end - end + + end + end + end end \ No newline at end of file