mirror of
https://github.com/mistergibson/gxg-web-client.git
synced 2026-08-15 03:26:00 -07:00
37 lines
711 B
Ruby
37 lines
711 B
Ruby
##
|
|
# MissingMethod is used to implement the Method returned by Kernel#method
|
|
# when #respond_to_missing? returns true.
|
|
|
|
module Rubinius
|
|
class MissingMethod < Executable
|
|
attr_reader :receiver
|
|
attr_reader :method
|
|
|
|
def initialize(receiver, method)
|
|
@receiver = receiver
|
|
@method = method
|
|
end
|
|
|
|
private :initialize
|
|
|
|
def call(called_object, called_method, *args, &block)
|
|
@receiver.__send__(@method, *args, &block)
|
|
end
|
|
|
|
def arity
|
|
-1
|
|
end
|
|
|
|
def parameters
|
|
[[:rest]]
|
|
end
|
|
|
|
def ==(other)
|
|
other.kind_of?(MissingMethod) &&
|
|
@receiver == other.receiver &&
|
|
@method == other.method
|
|
end
|
|
|
|
alias_method :eql?, :==
|
|
end
|
|
end
|