Class: RakeFactory::Task

Inherits:
Rake::TaskLib
  • Object
show all
Extended by:
Definable
Includes:
Actions, Arguments, Configurable, Defaults, Parameters
Defined in:
lib/rake_factory/task.rb

Instance Method Summary collapse

Methods included from Definable

inherited

Methods included from Actions

included, #invoke_actions

Methods included from Arguments

#initialize, #process_arguments

Methods included from Defaults

included

Methods included from Configurable

included, #initialize, #invoke_configuration_block, #process_configuration_block

Methods included from Parameters

#check_parameter_requirements, included, #initialize, #parameter_values, #setup_parameter_defaults

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/rake_factory/task.rb', line 42

def method_missing(method, *args, &block)
  if @task.respond_to?(method)
    @task.send(method, *args, &block)
  else
    super(method, *args, &block)
  end
end

Instance Method Details

#define_on(application) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/rake_factory/task.rb', line 21

def define_on(application)
  creator = self

  @task = application.define_task(
      Rake::Task,
      name,
      argument_names => prerequisites,
      order_only: order_only_prerequisites
  ) do |_, args|
    invoke_configuration_block(args)
    check_parameter_requirements
    invoke_actions(args)
  end
  @task.add_description(description)
  @task.instance_eval do
    define_singleton_method(:creator) { creator }
  end

  self
end