public Method

Module.method_defined?(p1)

mod.method_defined?(symbol)     true or false

Returns true if the named method is defined by mod (or its included modules and, if mod is a class, its ancestors). Public and protected methods are matched.

module A
  def method1()  end
end
class B
  def method2()  end
end
class C < B
  include A
  def method3()  end
end

A.method_defined? :method1    #=> true
C.method_defined? "method1"   #=> true
C.method_defined? "method2"   #=> true
C.method_defined? "method3"   #=> true
C.method_defined? "method4"   #=> false

Source Code

/*
*  call-seq:
*     mod.method_defined?(symbol)    => true or false
*  
*  Returns +true+ if the named method is defined by
*  _mod_ (or its included modules and, if _mod_ is a class,
*  its ancestors). Public and protected methods are matched.
*     
*     module A
*       def method1()  end
*     end
*     class B
*       def method2()  end
*     end
*     class C < B
*       include A
*       def method3()  end
*     end
*     
*     A.method_defined? :method1    #=> true
*     C.method_defined? "method1"   #=> true
*     C.method_defined? "method2"   #=> true
*     C.method_defined? "method3"   #=> true
*     C.method_defined? "method4"   #=> false
*/

static VALUE
rb_mod_method_defined(mod, mid)
   VALUE mod, mid;
{
   return rb_method_boundp(mod, rb_to_id(mid), 1);
}
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.