class GeoHydra::GisAssemblyWF::GenerateModsTask

Public Instance Methods

perform(data) click to toggle source
# File lib/geohydra/workflow/gisAssemblyWF.rb, line 60
def perform(data)
  initialize(data)
  geoFn = File.join(druid.metadata_dir, 'geoMetadata.xml')
  modsFn = File.join(druid.metadata_dir, 'descMetadata.xml')
  log_debug({:geoFn => geoFn, :modsFn => modsFn, :flags => flags})
  
  unless FileUtils.uptodate?(modsFn, [geoFn])
    # MODS from GeoMetadataDS
    geoMetadata = Dor::GeoMetadataDS.from_xml File.read(geoFn)
    geoMetadata.geometryType = data[:geometryType] || 'Polygon'
    geoMetadata.zipName = 'data.zip'
    geoMetadata.purl = to_purl
    
    log_debug({:geoMetadata => geoMetadata.ng_xml})
    File.open(modsFn, 'w') { |f| f << geoMetadata.to_mods.to_xml(:index => 2) }
  end
  'SUCCESS'
end