Project

General

Profile

Actions

Bug #10103

closed

Unable to refine class with CONSTANT

Added by kyledecot (Kyle Decot) over 10 years ago. Updated about 8 years ago.

Status:
Closed
Target version:
-
ruby -v:
2.1.1
[ruby-core:<unknown>]

Description

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"
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0