lib/origen/generator/job.rb in origen-0.24.0 vs lib/origen/generator/job.rb in origen-0.25.0

- old
+ new

@@ -2,16 +2,18 @@ class Generator # A job is responsible for executing a single pattern source class Job # :nodoc: all attr_accessor :output_file_body, :pattern attr_reader :split_counter + attr_reader :options def initialize(pattern, options) @testing = options[:testing] @options = options @requested_pattern = pattern @no_comments = options[:no_comments] + @output_opt = options[:output] end # Returns true if the job is a test job, will only be true in a test scenario def test? @testing @@ -64,11 +66,11 @@ @output_pattern_filename = nil end def output_pattern_directory @output_pattern_directory ||= begin - dir = Origen.app.config.pattern_output_directory + dir = output_override || Origen.app.config.pattern_output_directory if tester.respond_to?(:subdirectory) dir = File.join(dir, tester.subdirectory) end FileUtils.mkdir_p(dir) unless File.exist?(dir) dir @@ -96,9 +98,20 @@ Origen.config.pattern_postfix ? '_' + Origen.config.pattern_postfix : '' end def output_extension '.' + Origen.tester.pat_extension + end + + def output_override + if @output_opt + if @output_opt =~ /#{Origen.root}/ + return @output_opt + else + return "#{Origen.root}/#{@output_opt}" + end + end + nil end def split_number if split_counter "_part#{split_counter}"