diff options
author | Nat Lasseter <Nat Lasseter user@4574.co.uk> | 2018-02-16 16:33:10 +0000 |
---|---|---|
committer | Nat Lasseter <Nat Lasseter user@4574.co.uk> | 2018-02-16 16:33:10 +0000 |
commit | dbb55f88451d27c4343da544e2a6577897bd7bd8 (patch) | |
tree | 5aa1a9066ebaefb9129d72c6e41573b873e710c5 /patter.rb | |
parent | 7602b8f0aca806dbb2d521c006f87d2e6d6753b0 (diff) |
Making things much worse but functions are now callable
Diffstat (limited to 'patter.rb')
-rw-r--r-- | patter.rb | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -2,8 +2,14 @@ module Patter class Var; end class Fun - def initialize + def self.find(name) + return $patter_funs[name] + end + + def initialize(name) + $patter_funs = {} unless $patter_funs @patterns = {} + $patter_funs[name] = self end def when(*args, &block) @@ -40,4 +46,10 @@ module Patter raise "Inexhaustive patterns" end end + + def method_missing(name, *args) + if $patter_funs && $patter_funs.include?(name) then + $patter_funs[name].call(*args) + end + end end |