def self.compile(input_filename, output_filename, plogic_filename=nil, lang='ruby', toppings={})
if !input_filename || input_filename.empty?
raise ArgumentError.new("input_filename required.")
end
if !output_filename || output_filename.empty?
raise ArgumentError.new("output_filename required.")
end
if test(?f, output_filename) &&
(out_mtime = File.mtime(output_filename)) >= File.mtime(input_filename) &&
( !plogic_filename || !test(?f, plogic_filename) || (out_mtime >= File.mtime(plogic_filename)) )
return nil
end
return compile!(input_filename, output_filename, plogic_filename, lang, toppings)
end