Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
0a7b1319
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,发现更多精彩内容 >>
提交
0a7b1319
编写于
9月 20, 2012
作者:
J
Jeremy Kemper
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #7613 from marcandre/delegate_to_class
Nice and easy delegation to the class
上级
81084bda
ad5f18e6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
14 addition
and
0 deletion
+14
-0
activesupport/lib/active_support/core_ext/module/delegation.rb
...esupport/lib/active_support/core_ext/module/delegation.rb
+3
-0
activesupport/test/core_ext/module_test.rb
activesupport/test/core_ext/module_test.rb
+11
-0
未找到文件。
activesupport/lib/active_support/core_ext/module/delegation.rb
浏览文件 @
0a7b1319
...
...
@@ -123,6 +123,9 @@ def delegate(*methods)
file
,
line
=
caller
.
first
.
split
(
':'
,
2
)
line
=
line
.
to_i
to
=
to
.
to_s
to
=
'self.class'
if
to
==
'class'
methods
.
each
do
|
method
|
# Attribute writer methods only accept one argument. Makes sure []=
# methods still accept two arguments.
...
...
activesupport/test/core_ext/module_test.rb
浏览文件 @
0a7b1319
...
...
@@ -34,6 +34,12 @@ class Someone < Struct.new(:name, :place)
delegate
:street
,
:city
,
:to_f
,
:to
=>
:place
delegate
:name
=
,
:to
=>
:place
,
:prefix
=>
true
delegate
:upcase
,
:to
=>
"place.city"
delegate
:table_name
,
:to
=>
:class
delegate
:table_name
,
:to
=>
:class
,
:prefix
=>
true
def
self
.
table_name
'some_table'
end
FAILED_DELEGATE_LINE
=
__LINE__
+
1
delegate
:foo
,
:to
=>
:place
...
...
@@ -111,6 +117,11 @@ def test_delegation_to_instance_variable
assert_equal
"DAVID HANSSON"
,
david
.
upcase
end
def
test_delegation_to_class_method
assert_equal
'some_table'
,
@david
.
table_name
assert_equal
'some_table'
,
@david
.
class_table_name
end
def
test_missing_delegation_target
assert_raise
(
ArgumentError
)
do
Name
.
send
:delegate
,
:nowhere
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录