Issue #12514 has been updated by Shugo Maeda.


Tiago Cardoso wrote:
> Thx, will do. Do you have a link to the reject ticket? Maybe it would be wise to read about the reasons against before filling a similar ticket.

local rebinding was discussed in #4085.

Today, Matz stated that he wouldn't like to introduce local rebinding because it's unpredictable (https://twitter.com/yukihiro_matz/status/748000755353784321).
Another reason was performance issues.

----------------------------------------
Bug #12514: Refinements: when including Module as refinement, can't call other module methods
https://bugs.ruby-lang.org/issues/12514#change-59419

* Author: Tiago Cardoso
* Status: Rejected
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Very simple script which reproduces the problem:

<pre>
module Extensions
  def vegetables ; potatoe ; end
  def potatoe ; "potatoe" ; end
end

module Refinary
  refine String do
    # this doesn't work
    include Extensions
    # this would work...
    # def vegetables ; potatoe ; end
    # def potatoe ; "potatoe" ; end
  end
end

using Refinary

puts "tomatoe".vegetables

#=> in `<main>': undefined method `vegetables' for "tomatoe":String 
</pre>

failing from ruby 2.0 to 2.3



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>