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