mirror of
https://github.com/ruby/ruby.git
synced 2025-09-24 04:54:01 +02:00
const_missing on private constants
* variable.c (rb_const_search): call #const_missing method on private constants, as well as uninitialized constants. [Feature #14328] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
5e7167f8fb
commit
7387c08373
5 changed files with 39 additions and 3 deletions
|
@ -1422,6 +1422,21 @@ class TestModule < Test::Unit::TestCase
|
|||
RUBY
|
||||
end
|
||||
|
||||
def test_private_constant_const_missing
|
||||
c = Class.new
|
||||
c.const_set(:FOO, "foo")
|
||||
c.private_constant(:FOO)
|
||||
class << c
|
||||
attr_reader :const_missing_arg
|
||||
def const_missing(name)
|
||||
@const_missing_arg = name
|
||||
name == :FOO ? const_get(:FOO) : super
|
||||
end
|
||||
end
|
||||
assert_equal("foo", c::FOO)
|
||||
assert_equal(:FOO, c.const_missing_arg)
|
||||
end
|
||||
|
||||
class PrivateClass
|
||||
end
|
||||
private_constant :PrivateClass
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue