Method: AppKernel::Function::ClassMethods#apply

Defined in:
lib/appkernel/function.rb

#apply(*args) ⇒ Object



96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/appkernel/function.rb', line 96

def apply(*args)
  Result.new.tap do |result|
    @options.canonicalize(args, result.errors).tap do |params|
      if result.successful?
        new(params).tap do |function|
          function.validate(Validator.new(result.errors))
          if result.successful?
            result.return_value = function.execute
          end
        end
      end
    end
  end
end