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