respond_to_missing?(symbol, include_private) -> bool
[permalink][rdoc][edit]-
自身が symbol で表されるメソッドに対し BasicObject#method_missing で反応するつもりならば真を返します。
Object#respond_to? はメソッドが定義されていない場合、デフォルトでこのメソッドを呼びだし問合せます。
BasicObject#method_missing を override した場合にこのメソッドも override されるべきです。
false を返します。
- [PARAM] symbol:
- メソッド名シンボル
- [PARAM] include_private:
- private method も含めたい場合に true が渡されます
class Sample def method_missing(name, *args) if name =~ /^to_*/ [name, *args] # => [:to_sample, "sample args1", "sample args2"] return else super end end def respond_to_missing?(sym, include_private) (sym =~ /^to_*/) ? true : super end end s = Sample.new s.to_sample("sample args1", "sample args2") s.respond_to?(:to_sample) # => true s.respond_to?(:sample) # => false
[SEE_ALSO] Object#respond_to?, BasicObject#method_missing