Project

General

Profile

Actions

Feature #15327

closed

Proposal: Enable refinements to `#respond_to?`

Feature #15327: Proposal: Enable refinements to `#respond_to?`

Added by osyo (manga osyo) almost 7 years ago. Updated almost 7 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:89922]

Description

Refinements are enabled with various contexts and methods.

  • #send
  • #__send__
  • Symbol#to_proc
  • #to_s
    • called by "#{hoge}"
  • #to_proc
    • call to &:hoge
    • since ruby 2.6

I want to enable refinements for #respond_to?
I want to use it in the following case.

module StringEx refine String do def twice self + self end end end class X using StringEx def meth a a.twice if a.respond_to? :twice end end class Y def twice 42 + 42 end end x = X.new p x.meth Y.new # => 84 p x.meth "homu" # => "homuhomu" p x.meth 42 # nil 

pull request : https://github.com/ruby/ruby/pull/2020

Updated by nobu (Nobuyoshi Nakada) almost 7 years ago Actions #1 [ruby-core:89951]

defined?(obj.method) should work.

Updated by nobu (Nobuyoshi Nakada) almost 7 years ago Actions #2

  • Status changed from Open to Closed

Applied in changeset trunk|r65920.


Enable refinements at Object#respond_to?

[Feature #15327] [Fix GH-2020]

From: osyo-manga

Actions

Also available in: PDF Atom