From fde84b344929954e8f7b573f4539da5815371652 Mon Sep 17 00:00:00 2001 From: Dan Dennedy Date: Tue, 4 Jun 2013 19:36:00 -0700 Subject: [PATCH] Add exception handling around YAML parsing in metadata.rb. --- src/swig/ruby/build | 2 +- src/swig/ruby/metadata.rb | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/swig/ruby/build b/src/swig/ruby/build index 6c6e9cab..3f372b07 100755 --- a/src/swig/ruby/build +++ b/src/swig/ruby/build @@ -6,7 +6,7 @@ if ARGV.shift == 'clean' end system( "ln -sf ../mlt.i" ) system( "swig -c++ -ruby -I../../mlt++ -I../.. mlt.i" ) -$CFLAGS += " -I../.. " + ENV['CXXFLAGS'] +$CFLAGS += " -I../.. " + (ENV.has_key?('CXXFLAGS')? ENV['CXXFLAGS'] : '') $LDFLAGS += " -L../../mlt++ -lmlt++" create_makefile('mlt') system( "make" ) diff --git a/src/swig/ruby/metadata.rb b/src/swig/ruby/metadata.rb index 9559b96a..596bcce6 100755 --- a/src/swig/ruby/metadata.rb +++ b/src/swig/ruby/metadata.rb @@ -91,15 +91,19 @@ def output(mlt_type, services, type_title) if meta.is_valid filename = type_title + name.capitalize.gsub('.', '-') puts "Processing #{filename}" - yml = YAML.load(meta.serialise_yaml) - if yml - File.open(filename + '.txt', 'w') do |f| - f.puts $processor.result(binding) + begin + yml = YAML.load(meta.serialise_yaml) + if yml + File.open(filename + '.txt', 'w') do |f| + f.puts $processor.result(binding) + end + else + puts "Failed to write file for #{filename}" end - else - puts "Failed to write file for #{filename}" + index.puts " * [[#{filename}][#{name}]]: #{meta.get('title')}\n" + rescue ArgumentError + puts "Failed to parse YAML for #{filename}" end - index.puts " * [[#{filename}][#{name}]]: #{meta.get('title')}\n" end end index.puts '' -- 2.39.5