From: kyle.decot@... Date: 2014-07-31T15:44:22+00:00 Subject: [ruby-core:64143] [ruby-trunk - Bug #10103] [Open] Unable to refine class with CONSTANT 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/