class RakeFactory::Task
Attributes
configuration_block[RW]
Public Class Methods
inherited(inheritor)
click to toggle source
Calls superclass method
# File lib/rake_factory/task.rb, line 16 def self.inherited(inheritor) super(inheritor) inheritor.singleton_class.class_eval do define_method :define do |*args, &block| inheritor.new(*args, &block).define_on(Rake.application) end end end
new(*args, &configuration_block)
click to toggle source
# File lib/rake_factory/task.rb, line 25 def initialize(*args, &configuration_block) setup_parameter_defaults process_arguments(args) process_configuration_block(configuration_block) end
Public Instance Methods
check_parameter_requirements()
click to toggle source
# File lib/rake_factory/task.rb, line 52 def check_parameter_requirements self.class.parameter_set.enforce_requirements_on(self) end
define_on(application)
click to toggle source
# File lib/rake_factory/task.rb, line 62 def define_on(application) 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) self end
invoke_actions(args)
click to toggle source
# File lib/rake_factory/task.rb, line 56 def invoke_actions(args) self.class.actions.each do |action| action.call(*[self, args].slice(0, action.arity)) end end
invoke_configuration_block(args)
click to toggle source
# File lib/rake_factory/task.rb, line 44 def invoke_configuration_block(args) if configuration_block view = ParameterView.new(self) configuration_block.call( *[view, args].slice(0, configuration_block.arity)) end end
process_arguments(args)
click to toggle source
# File lib/rake_factory/task.rb, line 35 def process_arguments(args) opts = args.first || {} opts.each { |key, value| set_if_value_present(key, value) } end
process_configuration_block(configuration_block)
click to toggle source
# File lib/rake_factory/task.rb, line 40 def process_configuration_block(configuration_block) set_if_value_present(:configuration_block, configuration_block) end
setup_parameter_defaults()
click to toggle source
# File lib/rake_factory/task.rb, line 31 def setup_parameter_defaults self.class.parameter_set.apply_defaults_to(self) end
Private Instance Methods
set_if_value_present(key, value)
click to toggle source
# File lib/rake_factory/task.rb, line 79 def set_if_value_present(key, value) if self.respond_to?("#{key}=") && !value.nil? self.send("#{key}=", value) end end