class OverloadedMethods::FunctionDefinition

Public Class Methods

new() click to toggle source
# File lib/overloaded_methods.rb, line 41
def initialize
  @clauses = []
  @default = Clause.match_all.return(nil)
end

Public Instance Methods

default(&block) click to toggle source
# File lib/overloaded_methods.rb, line 54
def default &block
  @default = Clause.match_all.do(&block)
end
execute(params) click to toggle source
# File lib/overloaded_methods.rb, line 49
def execute params
  [*@clauses, @default]
    .find { |clause| clause.match? *params }
    .call(*params)
end
pattern(&predicate)
Alias for: when
when(&predicate) click to toggle source
# File lib/overloaded_methods.rb, line 45
def when &predicate
  Clause.with_predicate(predicate).tap { |clause| @clauses << clause }
end
Also aliased as: pattern