Class: RakeFactory::DynamicValue

Inherits:
Object
  • Object
show all
Defined in:
lib/rake_factory/values.rb

Instance Method Summary collapse

Constructor Details

#initialize(pre_arguments = [], post_arguments = [], &block) ⇒ DynamicValue



24
25
26
27
28
# File 'lib/rake_factory/values.rb', line 24

def initialize(pre_arguments = [], post_arguments = [], &block)
  @block = block
  @pre_arguments = pre_arguments
  @post_arguments = post_arguments
end

Instance Method Details

#append_argument(argument) ⇒ Object



34
35
36
# File 'lib/rake_factory/values.rb', line 34

def append_argument(argument)
  self.class.new(@pre_arguments, [*@post_arguments, argument], &@block)
end

#evaluate(arguments) ⇒ Object



38
39
40
41
# File 'lib/rake_factory/values.rb', line 38

def evaluate(arguments)
  resolved_arguments = [*@pre_arguments, *arguments, *@post_arguments]
  @block.call(*resolved_arguments.slice(0, @block.arity))
end

#prepend_argument(argument) ⇒ Object



30
31
32
# File 'lib/rake_factory/values.rb', line 30

def prepend_argument(argument)
  self.class.new([argument, *@pre_arguments], @post_arguments, &@block)
end