[ruby-core:64143] [ruby-trunk - Bug #10103] [Open] Unable to refine class with CONSTANT

From: kyle.decot@...
Date: 2014-07-31 15:44:22 UTC
List: ruby-core #64143
Issue #10103 has been reported by Kyle Decot.

----------------------------------------
Bug #10103: Unable to refine class with CONSTANT
https://bugs.ruby-lang.org/issues/10103

* Author: Kyle Decot
* Status: Open
* Priority: Normal
* Assignee: 
* Category: core
* Target version: current: 2.2.0
* ruby -v: 2.1.1
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
When refining a class (such as `String` in the following example) it is impossible to assign a constant. The constant will get attached to the module containing the refinement instead of the refined class.  When inside of a `refine` block constants should get assigned to that class.

~~~
module Foobar
  refine String do
    FOO = "BAR"

    def foobar
      "foobar"
    end
  end
end

using Foobar

puts "".class::FOO # => uninitialized constant String::FOO (NameError)
puts "".foobar # => "foobar"
~~~



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

In This Thread

Prev Next