From: nobu@... Date: 2014-09-08T13:51:02+00:00 Subject: [ruby-core:64864] [CommonRuby - Feature #10216] Add methods to Method and UnboundMethod classess to retrieve method instance for super Issue #10216 has been updated by Nobuyoshi Nakada. Duplicates Feature #9781: Feature Proposal: Method#super_method added ---------------------------------------- Feature #10216: Add methods to Method and UnboundMethod classess to retrieve method instance for super https://bugs.ruby-lang.org/issues/10216#change-48728 * Author: Rados��aw Bu��at * Status: Open * Priority: Normal * Assignee: Yukihiro Matsumoto * Category: * Target version: ---------------------------------------- Because of ruby dynamism nature it is very usefull to check method source location directly in irb/pry by SomeClass.instance_method(:foo).source_location. Very often checked method will call super method and we also want to check this method. And this quite hard to find because super method can be defined in any included class or in parent class. Here is my proposal: add super_method to Method and UnboundMethod classes. This method should return corresponding Method or UnboundMethod instance representing next method in super chain list (or nil if there is no one). For example: ```ruby module A def foo puts "from A" end end class X include A def foo puts "from X" super end end ``` ```irb > foo_method = X.instance_method(:foo) # > foo_method.source_location ["/private/tmp/t/feature.rb", 10] > foo_method.bind(X.new).call from X from A nil > # this is feature proposal > super_foo_method = foo_method.super_method > # > super_foo_method.source_location ["/private/tmp/t/feature.rb", 2] > super_foo_method.bind(X.new).call from A nil > super_method_foo.super_method nil ``` -- https://bugs.ruby-lang.org/