class GeoHydra::GisAssemblyWF::GenerateGeoMetadataTask

Public Instance Methods

perform(data) click to toggle source
# File lib/geohydra/workflow/gisAssemblyWF.rb, line 41
def perform(data)
  initialize(data)
  isoFn = File.join(druid.temp_dir, 'iso19139.xml')
  fcFn = File.join(druid.temp_dir, 'iso19110.xml')
  geoFn = File.join(druid.metadata_dir, 'geoMetadata.xml')
  log_debug({:isoFn => isoFn, :fcFn => fcFn, :geoFn => geoFn, :flags => flags})
  
  unless FileUtils.uptodate?(geoFn, [isoFn, fcFn])
    isoXml = Nokogiri::XML(File.read(isoFn))
    fcXml = Nokogiri::XML(File.read(fcFn))
    log_verbose("Generating geoMetadata: #{geoFn} <- #{isoFn}, #{fcFn}")
    xml = GeoHydra::Transform.to_geoMetadataDS(isoXml, fcXml, { 'purl' => to_purl}) 
    File.open(geoFn, 'w') {|f| f << xml.to_xml(:indent => 2) }
  end
  'SUCCESS'
end