Module: Mattock::ConfigurableTask

Includes:
Calibrate::Configurable, Calibrate::Configurable::DirectoryStructure, CascadingDefinition, DeferredDefinition
Included in:
Rake::FileCreationTask, Rake::FileTask, Rake::MultiTask, Rake::Task
Defined in:
lib/mattock/task.rb

Overview

A configurable subclass of Rake::Task, such that you can use a configuration block to change how a common task behaves, while still overriding Rake API methods like Task#needed? and Task#timestamp

Defined Under Namespace

Modules: ClassMethods

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from DeferredDefinition

add_settings, #finalize_configuration, #resolve_runtime_configuration, #runtime?, #runtime_definition, #setup_deferred

Methods included from CascadingDefinition

#confirm_configuration, #confirm_step, #confirm_steps, #default_configuration, #define, #setup_cascade

Instance Attribute Details

#base_taskObject

Returns the value of attribute base_task.



67
68
69
# File 'lib/mattock/task.rb', line 67

def base_task
  @base_task
end

Class Method Details

.included(sub) ⇒ Object



58
59
60
61
62
63
64
65
# File 'lib/mattock/task.rb', line 58

def self.included(sub)
  sub.extend ClassMethods
  Calibrate::Configurable.included(sub)
  Calibrate::Configurable::DirectoryStructure.included(sub)
  DeferredDefinition.add_settings(sub)
  sub.setting :task_name
  sub.setting :task_args
end

Instance Method Details

#action(*task_args) ⇒ Object



73
74
# File 'lib/mattock/task.rb', line 73

def action(*task_args)
end

#inspectObject



76
77
78
# File 'lib/mattock/task.rb', line 76

def inspect
  "#{self.class.name}: #{self.task_args.inspect}\nConfiguration:\n#{self.class.inspect_instance(self, "  ")}"
end

#resolve_configurationObject



69
70
71
# File 'lib/mattock/task.rb', line 69

def resolve_configuration
  super
end