module MethodPattern

Constants

VERSION

Public Instance Methods

defn(name, &definition) click to toggle source
# File lib/method_pattern.rb, line 4
def defn name, &definition
  fn = PatternMatchedFunction.new(name)
  fn.instance_exec(&definition)

  define_method name do |*args, &block|
    instance_exec(*args, &fn.match(args))
  rescue => e
    raise e, e.message, caller[2..-1]
  end
end