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
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