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}"