class ASRake::BaseExecutable
Attributes
output[R]
output file or directory
output_dir[R]
output_file[R]
Public Class Methods
new(file)
click to toggle source
# File lib/asrake/base_executable.rb, line 17 def initialize(file) raise "An output file must be provided" if file == nil @output = file.to_s # if the output path ends in a path separator, it is a directory if @output =~ /[\/\\]$/ @output_dir = @output else # forward-slashes required for File methods @output = Path::forward @output @output_dir = File.dirname(@output) @output_file = File.basename(@output) end # create file task for output @task = ASRake::ExeTask.define_task self.output do self.execute end @task.pre_invoke = method(:task_pre_invoke) @task.post_invoke = method(:task_post_invoke) # create directory task for output if !self.output_is_dir? directory self.output_dir @task.enhance([self.output_dir]) end end
Public Instance Methods
execute()
click to toggle source
# File lib/asrake/base_executable.rb, line 71 def execute raise "Must define execute in subclass" end
merge_in(args)
click to toggle source
# File lib/asrake/base_executable.rb, line 51 def merge_in(args) @@args.each do |arg| # TODO: This needs to concat arrays not overwite them self.send("#{arg}=", args.send(arg)) end end
output_is_dir?()
click to toggle source
# File lib/asrake/base_executable.rb, line 47 def output_is_dir? output_file == nil end
pathmap(*args)
click to toggle source
used so we can add this task to a FileList. This is probably a terrible idea.
# File lib/asrake/base_executable.rb, line 67 def pathmap *args to_s.pathmap *args end
to_s()
click to toggle source
# File lib/asrake/base_executable.rb, line 58 def to_s @output end
to_str()
click to toggle source
# File lib/asrake/base_executable.rb, line 62 def to_str @output end
Protected Instance Methods
task_post_invoke()
click to toggle source
# File lib/asrake/base_executable.rb, line 82 def task_post_invoke puts "#{Path::env self.output} (#{File.size(self.output)} bytes)" unless self.output_is_dir? # only run once incase invoked again @task.post_invoke = nil end
task_pre_invoke()
click to toggle source
# File lib/asrake/base_executable.rb, line 77 def task_pre_invoke # only run once to add prereqs @task.pre_invoke = nil end