Module: Mattock::ConfigurableTask

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

Constant Summary

Constants included from Configurable

Mattock::Configurable::RequiredField

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Mattock::Configurable::DirectoryStructure

#resolve_paths

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

Methods included from Configurable

#check_required, #copy_settings, #copy_settings_to, #fail_unless_set, #field_unset?, #proxy_settings, #proxy_settings_to, #proxy_value, #setup_defaults, #to_hash, #unset?, #unset_defaults_guard, unset_defaults_guard

Methods included from Mattock::Configurable::ClassMethods

#default_value_for, #default_values, #field_metadata, #field_names, #included, #inspect_instance, #missing_required_fields_on, #nested, #nil_fields, #required_fields, #runtime_required_fields, #runtime_setting, #set_defaults_on, #setting, #settings, #to_hash

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



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

def self.included(sub)
  sub.extend ClassMethods
  Configurable.included(sub)
  Configurable::DirectoryStructure.included(sub)
  DeferredDefinition.add_settings(sub)
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