lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceUsage.rb in adiwg-mdtranslator-2.9.2 vs lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceUsage.rb in adiwg-mdtranslator-2.10.0

- old
+ new

@@ -1,117 +1,117 @@ # unpack resource usage # Reader - ADIwg JSON V1 to internal data structure # History: -# Stan Smith 2016-10-11 refactored for mdJson 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-07-03 resolve require statements using Mdtranslator.reader_module -# Stan Smith 2014-04-28 modified attribute names to match json schema 0.3.0 +# Stan Smith 2018-02-19 refactored error and warning messaging +# Stan Smith 2016-10-11 refactored for mdJson 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-07-03 resolve require statements using Mdtranslator.reader_module +# Stan Smith 2014-04-28 modified attribute names to match json schema 0.3.0 # Stan Smith 2013-11-27 modified to process a single resource usage # Stan Smith 2013-11-25 original script require_relative 'module_temporalExtent' require_relative 'module_citation' require_relative 'module_responsibleParty' module ADIWG - module Mdtranslator - module Readers - module MdJson + module Mdtranslator + module Readers + module MdJson - module ResourceUsage + module ResourceUsage - def self.unpack(hUsage, responseObj) + def self.unpack(hUsage, responseObj) - # return nil object if input is empty - if hUsage.empty? - responseObj[:readerExecutionMessages] << 'Resource Usage object is empty' - responseObj[:readerExecutionPass] = false - return nil - end + # return nil object if input is empty + if hUsage.empty? + responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: resource usage object is empty' + return nil + end - # instance classes needed in script - intMetadataClass = InternalMetadata.new - intUsage = intMetadataClass.newResourceUsage + # instance classes needed in script + intMetadataClass = InternalMetadata.new + intUsage = intMetadataClass.newResourceUsage - # resource usage - specific usage (required) - if hUsage.has_key?('specificUsage') - intUsage[:specificUsage] = hUsage['specificUsage'] - end - if intUsage[:specificUsage].nil? || intUsage[:specificUsage] == '' - responseObj[:readerExecutionMessages] << 'Resource Usage attribute specificUsage is missing' - responseObj[:readerExecutionPass] = false - return nil - end + # resource usage - specific usage (required) + if hUsage.has_key?('specificUsage') + intUsage[:specificUsage] = hUsage['specificUsage'] + end + if intUsage[:specificUsage].nil? || intUsage[:specificUsage] == '' + responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: resource usage specific usage is missing' + responseObj[:readerExecutionPass] = false + return nil + end - # resource usage - temporal extent [] - if hUsage.has_key?('temporalExtent') - aItems = hUsage['temporalExtent'] - aItems.each do |hItem| - hReturn = TemporalExtent.unpack(hItem, responseObj) - unless hReturn.nil? - intUsage[:temporalExtents] << hReturn - end - end + # resource usage - temporal extent [] + if hUsage.has_key?('temporalExtent') + aItems = hUsage['temporalExtent'] + aItems.each do |hItem| + hReturn = TemporalExtent.unpack(hItem, responseObj) + unless hReturn.nil? + intUsage[:temporalExtents] << hReturn end + end + end - # resource usage - user determined limitations - if hUsage.has_key?('userDeterminedLimitation') - if hUsage['userDeterminedLimitation'] != '' - intUsage[:userLimitation] = hUsage['userDeterminedLimitation'] - end - end + # resource usage - user determined limitations + if hUsage.has_key?('userDeterminedLimitation') + unless hUsage['userDeterminedLimitation'] == '' + intUsage[:userLimitation] = hUsage['userDeterminedLimitation'] + end + end - # resource usage - repository - limitation response [] - if hUsage.has_key?('limitationResponse') - hUsage['limitationResponse'].each do |item| - if item != '' - intUsage[:limitationResponses] << item - end - end + # resource usage - repository - limitation response [] + if hUsage.has_key?('limitationResponse') + hUsage['limitationResponse'].each do |item| + unless item == '' + intUsage[:limitationResponses] << item end + end + end - # resource usage - repository - documented issue - if hUsage.has_key?('documentedIssue') - hCitation = hUsage['documentedIssue'] - unless hCitation.empty? - hReturn = Citation.unpack(hCitation, responseObj) - unless hReturn.nil? - intUsage[:identifiedIssue] = hReturn - end - end + # resource usage - repository - documented issue + if hUsage.has_key?('documentedIssue') + hCitation = hUsage['documentedIssue'] + unless hCitation.empty? + hReturn = Citation.unpack(hCitation, responseObj) + unless hReturn.nil? + intUsage[:identifiedIssue] = hReturn end + end + end - # resource usage - repository - additional documentation [] - if hUsage.has_key?('additionalDocumentation') - aItems = hUsage['additionalDocumentation'] - aItems.each do |hItem| - hReturn = Citation.unpack(hItem, responseObj) - unless hReturn.nil? - intUsage[:additionalDocumentation] << hReturn - end - end + # resource usage - repository - additional documentation [] + if hUsage.has_key?('additionalDocumentation') + aItems = hUsage['additionalDocumentation'] + aItems.each do |hItem| + hReturn = Citation.unpack(hItem, responseObj) + unless hReturn.nil? + intUsage[:additionalDocumentation] << hReturn end + end + end - # resource usage - repository - responsible party [] - if hUsage.has_key?('userContactInfo') - aContacts = hUsage['userContactInfo'] - aContacts.each do |item| - hReturn = ResponsibleParty.unpack(item, responseObj) - unless hReturn.nil? - intUsage[:userContacts] << hReturn - end - end + # resource usage - repository - responsible party [] + if hUsage.has_key?('userContactInfo') + aContacts = hUsage['userContactInfo'] + aContacts.each do |item| + hReturn = ResponsibleParty.unpack(item, responseObj) + unless hReturn.nil? + intUsage[:userContacts] << hReturn end + end + end - return intUsage + return intUsage - end + end - end - end - end - end + + end + end + end end