def bind
unless class_instance_method_defined(subject_class, original_method_alias_name)
unless class_instance_method_defined(subject_class, :method_missing)
@placeholder_method_defined = true
subject_class.class_eval do
def method_missing(method_name, *args, &block)
super
end
end
end
unless class_instance_method_defined(subject_class, :to_ary)
subject_class.class_eval do
def to_ary; nil; end
end
end
subject_class.__send__(:alias_method, original_method_alias_name, :method_missing)
bind_method
end
self
end