module ADIWG::Mdtranslator::Writers::SbJson::Date

Public Class Methods

build(hResource) click to toggle source
# File lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_date.rb, line 15
def self.build(hResource)

   aDates = []
   hCitation = hResource[:citation]

   # add citation dates to sbJson dates
   unless hCitation.empty?
      hCitation[:dates].each do |hDate|
         sbDate = {}
         dateType = Codelists.codelist_adiwg2sb('date_adiwg2sb', hDate[:dateType])

         # if iso date codes does not map to scienceBase use type = 'Info'
         if dateType.nil?
            sbDate[:type] = 'Info'
            sbDate[:dateString] = AdiwgDateTimeFun.stringDateTimeFromDateObject(hDate)
            sbDate[:label] = hDate[:dateType]
         else
            sbDate[:type] = dateType
            sbDate[:dateString] = AdiwgDateTimeFun.stringDateTimeFromDateObject(hDate)
            sbDate[:label] = hDate[:description] unless hDate[:description].nil?
         end

         aDates << sbDate
      end
   end

   # add resource timePeriod dates to sbJson dates
   unless hResource[:timePeriod].empty?
      unless hResource[:timePeriod][:startDateTime].empty?
         sbDate = {}
         sbDate[:type] = 'Start'
         sbDate[:dateString] = AdiwgDateTimeFun.stringDateTimeFromDateObject(hResource[:timePeriod][:startDateTime])
         sbDate[:label] = hResource[:timePeriod][:description] unless hResource[:timePeriod][:description].nil?
         aDates << sbDate
      end
      unless hResource[:timePeriod][:endDateTime].empty?
         sbDate = {}
         sbDate[:type] = 'End'
         sbDate[:dateString] = AdiwgDateTimeFun.stringDateTimeFromDateObject(hResource[:timePeriod][:endDateTime])
         sbDate[:label] = hResource[:timePeriod][:description] unless hResource[:timePeriod][:description].nil?
         aDates << sbDate
      end
   end

   if aDates.empty?
      return nil
   end

   aDates

end