提交 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
# A module may or may not have a name.
#
......@@ -7,7 +5,7 @@ class Module
# M.name # => "M"
#
# m = Module.new
# m.name # => ""
# m.name # => nil
#
# 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:
......@@ -17,8 +15,6 @@ class Module
# m.name # => "M"
#
def anonymous?
# Uses blank? because the name of an anonymous class is an empty
# string in 1.8, and nil in 1.9.
name.blank?
name.nil?
end
end
......@@ -822,7 +822,7 @@ M.name # => "M"
N = Module.new
N.name # => "N"
Module.new.name # => "" in 1.8, nil in 1.9
Module.new.name # => nil
</ruby>
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.
先完成此消息的编辑!
想要评论请 注册