Sha256: f3a3f9150dac9e8d7083dc99f5198e0fa3615bda7bc71128b88dae4c5b03f00f
Contents?: true
Size: 1.76 KB
Versions: 1
Compression:
Stored size: 1.76 KB
Contents
#!/usr/bin/env ruby # encoding: UTF-8 require File.expand_path(File.dirname(__FILE__) + '/../config/boot') require 'nokogiri' require 'optparse' class Iso2Geo < GeoHydra::Process def main(flags) isoXml = Nokogiri::XML(File.read(flags[:iso19139])) if isoXml.nil? or isoXml.root.nil? raise ArgumentError, "Empty ISO 19139" end if flags[:iso19110].nil? fcXml = nil else fcXml = Nokogiri::XML(File.read(flags[:iso19110])) end ap({:isoXml => isoXml, :fcXml => fcXml, :flags => flags}) if flags[:debug] # GeoMetadataDS puts "Generating #{flags[:geoMetadata]}" if flags[:verbose] xml = GeoHydra::Transform.to_geoMetadataDS(isoXml, fcXml, { 'purl' => flags[:purl] }) File.open(flags[:geoMetadata], 'wb') {|f| f << xml.to_xml(:indent => 2) } end def run(args) flags = { :debug => false, :verbose => false } OptionParser.new do |opts| opts.banner = <<EOM Usage: #{File.basename(__FILE__)} [options] EOM opts.on('-v', '--verbose', 'Run verbosely') do |v| flags[:debug] = true if flags[:verbose] flags[:verbose] = true end opts.on('--purl URI', "PURL with druid") do |v| flags[:purl] = v end %w{19110 19139}.each do |n| opts.on("--iso#{n} FILE", "Input file with ISO #{n} XML") do |v| flags["iso#{n}".to_sym] = v end end opts.on('--geoMetadata FILE', "Output file with ISO 19139/19110 XML") do |v| flags[:geoMetadata] = v end end.parse!(args) %w{purl iso19139 geoMetadata}.each do |k| raise ArgumentError, "Missing required --#{k} flag" if flags[k.to_sym].nil? end ap({:flags => flags}) if flags[:debug] main flags end end # __MAIN__ Iso2Geo.new().run(ARGV)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
geohydra-0.3.3 | bin/iso2geo.rb |