提交 819ea5f9 编写于 作者: X Xavier Noria

Merge pull request #4185 from nashby/module-anonymous

Module#name returns nil for anonymous class in ruby 1.9
require 'active_support/core_ext/object/blank'
class Module class Module
# A module may or may not have a name. # A module may or may not have a name.
# #
...@@ -7,7 +5,7 @@ class Module ...@@ -7,7 +5,7 @@ class Module
# M.name # => "M" # M.name # => "M"
# #
# m = Module.new # m = Module.new
# m.name # => "" # m.name # => nil
# #
# A module gets a name when it is first assigned to a constant. Either # A module gets a name when it is first assigned to a constant. Either
# via the +module+ or +class+ keyword or by an explicit assignment: # via the +module+ or +class+ keyword or by an explicit assignment:
...@@ -17,8 +15,6 @@ class Module ...@@ -17,8 +15,6 @@ class Module
# m.name # => "M" # m.name # => "M"
# #
def anonymous? def anonymous?
# Uses blank? because the name of an anonymous class is an empty name.nil?
# string in 1.8, and nil in 1.9.
name.blank?
end end
end end
...@@ -822,7 +822,7 @@ M.name # => "M" ...@@ -822,7 +822,7 @@ M.name # => "M"
N = Module.new N = Module.new
N.name # => "N" N.name # => "N"
Module.new.name # => "" in 1.8, nil in 1.9 Module.new.name # => nil
</ruby> </ruby>
You can check whether a module has a name with the predicate +anonymous?+: You can check whether a module has a name with the predicate +anonymous?+:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册