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

Returns a new instance of DynamicValue.



26
27
28
29
30
# File 'lib/rake_factory/values.rb', line 26

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



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

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

#evaluate(arguments) ⇒ Object



44
45
46
47
# File 'lib/rake_factory/values.rb', line 44

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

#prepend_argument(argument) ⇒ Object



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

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