module ADIWG::Mdtranslator::Readers::MdJson::Distribution

Public Class Methods

unpack(hDistribution, responseObj) click to toggle source
# File lib/adiwg/mdtranslator/readers/mdJson/modules/module_distribution.rb, line 19
def self.unpack(hDistribution, responseObj)

   @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson

   # return nil object if input is empty
   if hDistribution.empty?
      @MessagePath.issueWarning(180, responseObj)
      return nil
   end

   # instance classes needed in script
   intMetadataClass = InternalMetadata.new
   intDistribution = intMetadataClass.newDistribution

   haveDist = false

   # distribution - description
   if hDistribution.has_key?('description')
      unless hDistribution['description'] == ''
         intDistribution[:description] = hDistribution['description']
         haveDist = true
      end
   end

   # distribution - liability statement
   if hDistribution.has_key?('liabilityStatement')
      unless hDistribution['liabilityStatement'] == ''
         intDistribution[:liabilityStatement] = hDistribution['liabilityStatement']
      end
   end

   # there is a typo in mdEditor for liabilityStatement, handle this edge case
   # https://github.com/adiwg/mdEditor/blob/f94770686df07ef76aa111f8f9734b32bbad7f21/app/pods/components/object/md-distribution/template.hbs#L22
   if (intDistribution[:liabilityStatement].nil? || intDistribution.empty?) && hDistribution.has_key?('liablityStatement')
      unless hDistribution['liablityStatement'] == ''
         intDistribution[:liabilityStatement] = hDistribution['liablityStatement']
      end
   end

   # distribution - distributor [distributor]
   if hDistribution.has_key?('distributor')
      aItems = hDistribution['distributor']
      aItems.each do |item|
         hReturn = Distributor.unpack(item, responseObj)
         unless hReturn.nil?
            intDistribution[:distributor] << hReturn
            haveDist = true
         end
      end
   end

   # error messages
   unless haveDist
      @MessagePath.issueError(181, responseObj)
   end

   return intDistribution

end