class Rummager::ClickCntnrExec

Attributes

container_name[RW]
dep_jobs[RW]
exec_list[RW]
ident_hash[RW]
job_name[RW]
needed_test[RW]

Public Class Methods

new(job_name,args={}) { |self| ... } click to toggle source
# File lib/rummager/containers.rb, line 458
def initialize(job_name,args={})
  @job_name = job_name
  if !args.delete(:run_always)
    @ident_hash = Digest::MD5.hexdigest(args.to_s)
    puts "#{job_name} ident: #{@ident_hash}" if Rake.verbose == true
  end
  
  @container_name = args.delete(:container_name)
  if !defined? @container_name
    raise ArgumentError, "ClickContainer'#{@job_name}' missing comtainer_name:#{args}"
  end
  @exec_list = args.delete(:exec_list)
  @dep_jobs = args.delete(:dep_jobs)
  @needed_test = args.delete(:needed_test)
  if !args.empty?
    raise ArgumentError, "ClickExec'#{@job_name}' defenition has unused/invalid key-values:#{args}"
  end
  yield self if block_given?
  define
end

Public Instance Methods

define() click to toggle source
# File lib/rummager/containers.rb, line 480
def define
  
  namespace "containers" do
    namespace @container_name do
      namespace "jobs" do
        
        exectask = Rummager::ContainerExecTask.define_task :"#{job_name}"
        exectask.container_name = @container_name
        exectask.exec_list = @exec_list
        exectask.ident_hash = @ident_hash
        exectask.needed_test = @needed_test
        Rake::Task[:"containers:#{@container_name}:jobs:#{job_name}"].enhance( [:"containers:#{@container_name}:start"] )
        if @dep_jobs
            @dep_jobs.each do |dj|
                Rake::Task["containers:#{@container_name}:jobs:#{job_name}"].enhance([ :"containers:#{@container_name}:jobs:#{dj}" ])
            end
        end
        
      end # namespave "jobs"
    end # namespace @container_name
  end # namespace "containers"
  
end