Class: Funk::Fn

Inherits:
Object
  • Object
show all
Defined in:
lib/funk/fn.rb

Direct Known Subclasses

InputFn

Constant Summary collapse

REQUIRED_PARAM_TYPES =
[:req, :keyreq].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, callable) ⇒ Fn

Returns a new instance of Fn.



12
13
14
15
16
17
# File 'lib/funk/fn.rb', line 12

def initialize(name, callable)
  @name = name
  @parameters = callable.parameters
  @dependencies = @parameters.map(&:last)
  @fn = callable
end

Instance Attribute Details

#dependenciesObject (readonly)

Returns the value of attribute dependencies.



10
11
12
# File 'lib/funk/fn.rb', line 10

def dependencies
  @dependencies
end

#nameObject (readonly)

Returns the value of attribute name.



9
10
11
# File 'lib/funk/fn.rb', line 9

def name
  @name
end

Instance Method Details

#call(hash) ⇒ Object



19
20
21
22
23
24
# File 'lib/funk/fn.rb', line 19

def call(hash)
  assert_dependencies_present_in(hash)
  args = extract_argument_values(hash)

  @fn.call(*args)
end