From 457969305820f755957c278d9d7cc12920dd1ecc Mon Sep 17 00:00:00 2001 From: Oskar Eichler Date: Fri, 28 Aug 2026 02:14:24 +0300 Subject: [PATCH 1/2] Use the class for instance receivers with a name method --- lib/method_source.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/method_source.rb b/lib/method_source.rb index ffd79ad..f362363 100644 --- a/lib/method_source.rb +++ b/lib/method_source.rb @@ -145,7 +145,7 @@ def class_comment return comment end - if class_inst_or_module.respond_to?(:name) + if class_inst_or_module.is_a?(Module) const_name = class_inst_or_module.name else const_name = class_inst_or_module.class.name From 6c581ee5def70b5e6c6827aaaf3dfc7c559907e6 Mon Sep 17 00:00:00 2001 From: Oskar Eichler <62393985+OskarEichler@users.noreply.github.com> Date: Fri, 28 Aug 2026 15:34:58 +0300 Subject: [PATCH 2/2] Add regression coverage for use the class for instance receivers with a name method --- spec/method_source_spec.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spec/method_source_spec.rb b/spec/method_source_spec.rb index 1927670..3dcaccc 100644 --- a/spec/method_source_spec.rb +++ b/spec/method_source_spec.rb @@ -1,5 +1,11 @@ require 'spec_helper' +# Documentation for a class whose instances define #name. +class MethodSourceNamedInstance + def name; "instance name"; end + def work; end +end + describe MethodSource do describe "source_location (testing 1.8 implementation)" do @@ -96,6 +102,11 @@ # if RUBY_VERSION =~ /1.9/ || is_rbx? describe "Lambdas and Procs" do + it "uses the class for a named ordinary instance" do + comment = MethodSourceNamedInstance.new.method(:work).class_comment + expect(comment).to eq("# Documentation for a class whose instances define #name.\n") + end + it 'should return source for proc' do expect(MyProc.source).to eq(@proc_source) end