class RakeFactory::TaskSet::TaskDefinition

Attributes

args[R]
block[R]
klass[R]
task_set[R]

Public Class Methods

new(klass, args, task_set, &block) click to toggle source
# File lib/rake_factory/task_set.rb, line 103
def initialize(klass, args, task_set, &block)
  @task_set = task_set
  @klass = klass
  @args = args
  @block = block
end

Public Instance Methods

define_on(application) click to toggle source
# File lib/rake_factory/task_set.rb, line 110
def define_on(application)
  if should_define?
    klass.new(*resolve_arguments, &resolve_block).define_on(application)
  end
end

Private Instance Methods

resolve_arguments() click to toggle source
# File lib/rake_factory/task_set.rb, line 128
def resolve_arguments
  task_arguments.resolve
end
resolve_block() click to toggle source
# File lib/rake_factory/task_set.rb, line 132
def resolve_block
  lambda do |t, args|
    if block.respond_to?(:call)
      block.call(*[task_set, t, args].slice(0, block.arity))
    end
    if task_set.configuration_block.respond_to?(:call)
      view = ParameterView.new(t, t.class, task_set.class, args)
      task_set.invoke_configuration_block_on(view, args)
    end
  end
end
should_define?() click to toggle source
# File lib/rake_factory/task_set.rb, line 122
def should_define?
  task_arguments.parameter_hash.include?(:define_if) ?
      task_arguments.parameter_hash[:define_if].call(task_set) :
      true
end
task_arguments() click to toggle source
# File lib/rake_factory/task_set.rb, line 118
def task_arguments
  TaskArguments.new(args, task_set)
end