Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
44afd785
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
44afd785
编写于
1月 26, 2010
作者:
X
Xavier Noria
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
removes unused method Class#remove_class
上级
5f981ff0
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
0 addition
and
48 deletion
+0
-48
activesupport/lib/active_support/core_ext/class/removal.rb
activesupport/lib/active_support/core_ext/class/removal.rb
+0
-31
activesupport/test/core_ext/class_test.rb
activesupport/test/core_ext/class_test.rb
+0
-17
未找到文件。
activesupport/lib/active_support/core_ext/class/removal.rb
浏览文件 @
44afd785
...
...
@@ -2,35 +2,4 @@
require
'active_support/core_ext/module/introspection'
class
Class
#:nodoc:
# Removes the classes in +klasses+ from their parent module.
#
# Ordinary classes belong to some module via a constant. This method computes
# that constant name from the class name and removes it from the module it
# belongs to.
#
# Object.remove_class(Integer) # => [Integer]
# Integer # => NameError: uninitialized constant Integer
#
# Take into account that in general the class object could be still stored
# somewhere else.
#
# i = Integer # => Integer
# Object.remove_class(Integer) # => [Integer]
# Integer # => NameError: uninitialized constant Integer
# i.subclasses # => ["Bignum", "Fixnum"]
# Fixnum.superclass # => Integer
def
remove_class
(
*
klasses
)
klasses
.
flatten
.
each
do
|
klass
|
# Skip this class if there is nothing bound to this name
next
unless
defined?
(
klass
.
name
)
basename
=
klass
.
to_s
.
split
(
"::"
).
last
parent
=
klass
.
parent
# Skip this class if it does not match the current one bound to this name
next
unless
parent
.
const_defined?
(
basename
)
&&
klass
=
parent
.
const_get
(
basename
)
parent
.
instance_eval
{
remove_const
basename
}
unless
parent
==
klass
end
end
end
activesupport/test/core_ext/class_test.rb
浏览文件 @
44afd785
...
...
@@ -17,21 +17,4 @@ class C
end
class
ClassTest
<
Test
::
Unit
::
TestCase
def
test_removing_class_in_root_namespace
assert
A
.
is_a?
(
Class
)
Class
.
remove_class
(
A
)
assert_raise
(
NameError
)
{
A
.
is_a?
(
Class
)
}
end
def
test_removing_class_in_one_level_namespace
assert
X
::
B
.
is_a?
(
Class
)
Class
.
remove_class
(
X
::
B
)
assert_raise
(
NameError
)
{
X
::
B
.
is_a?
(
Class
)
}
end
def
test_removing_class_in_two_level_namespace
assert
Y
::
Z
::
C
.
is_a?
(
Class
)
Class
.
remove_class
(
Y
::
Z
::
C
)
assert_raise
(
NameError
)
{
Y
::
Z
::
C
.
is_a?
(
Class
)
}
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录