class Noaidi::Fun
Public Class Methods
new(noaidi, name, args, block)
click to toggle source
# File lib/noaidi/fun.rb, line 5 def initialize(noaidi, name, args, block) @module = noaidi @name = name @args = args.map{|a| Matcher.new(a)} @block = block end
Public Instance Methods
call(*args)
click to toggle source
# File lib/noaidi/fun.rb, line 12 def call(*args) freeze unless frozen? instance_exec(*args, &@block) end
matches?(args)
click to toggle source
# File lib/noaidi/fun.rb, line 17 def matches?(args) return false unless arity == args.length args.each_with_index do |arg, i| return false unless @args[i].match?(arg) end true end
method_missing(name, *args)
click to toggle source
# File lib/noaidi/fun.rb, line 25 def method_missing(name, *args) @module.public_send(name, *args) end
Private Instance Methods
arguments()
click to toggle source
# File lib/noaidi/fun.rb, line 34 def arguments @args end
arity()
click to toggle source
# File lib/noaidi/fun.rb, line 30 def arity @args.length end