module RakeFactory::Configurable
Public Class Methods
included(base)
click to toggle source
# File lib/rake_factory/configurable.rb, line 3 def self.included(base) base.class_eval do attr_accessor(:configuration_block) end end
new(*args, &configuration_block)
click to toggle source
Calls superclass method
# File lib/rake_factory/configurable.rb, line 9 def initialize(*args, &configuration_block) arity = self.method(:initialize).super_method.arity super(*args.slice(0, arity), &configuration_block) process_configuration_block(configuration_block) end
Public Instance Methods
invoke_configuration_block_on(target, args)
click to toggle source
# File lib/rake_factory/configurable.rb, line 19 def invoke_configuration_block_on(target, args) if configuration_block params = args ? [target, args] : [target] configuration_block.call( *params.slice(0, configuration_block.arity)) end end
process_configuration_block(configuration_block)
click to toggle source
# File lib/rake_factory/configurable.rb, line 15 def process_configuration_block(configuration_block) set_if_value_present(:configuration_block, configuration_block) end
Private Instance Methods
set_if_value_present(key, value)
click to toggle source
# File lib/rake_factory/configurable.rb, line 29 def set_if_value_present(key, value) if self.respond_to?("#{key}=") && !value.nil? self.send("#{key}=", value) end end