Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
ad3f0eec
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,发现更多精彩内容 >>
提交
ad3f0eec
编写于
5月 10, 2011
作者:
A
Aaron Patterson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
adding AR::Fixtures::File class to wrap a fixture file
上级
1170ccea
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
90 addition
and
0 deletion
+90
-0
activerecord/lib/active_record/fixtures.rb
activerecord/lib/active_record/fixtures.rb
+1
-0
activerecord/lib/active_record/fixtures/file.rb
activerecord/lib/active_record/fixtures/file.rb
+43
-0
activerecord/test/cases/fixtures/file_test.rb
activerecord/test/cases/fixtures/file_test.rb
+46
-0
未找到文件。
activerecord/lib/active_record/fixtures.rb
浏览文件 @
ad3f0eec
...
...
@@ -14,6 +14,7 @@
require
'active_support/core_ext/logger'
require
'active_support/ordered_hash'
require
'active_support/core_ext/module/deprecation'
require
'active_record/fixtures/file'
if
defined?
ActiveRecord
class
FixtureClassNotFound
<
ActiveRecord
::
ActiveRecordError
#:nodoc:
...
...
activerecord/lib/active_record/fixtures/file.rb
0 → 100644
浏览文件 @
ad3f0eec
begin
require
'psych'
rescue
LoadError
end
require
'erb'
require
'yaml'
module
ActiveRecord
class
Fixtures
class
File
include
Enumerable
##
# Open a fixture file named +file+. When called with a block, the block
# is called with the filehandle and the filehandle is automatically closed
# when the block finishes.
def
self
.
open
(
file
)
x
=
new
file
block_given?
?
yield
(
x
)
:
x
end
def
initialize
(
file
)
@file
=
file
@rows
=
nil
end
def
each
(
&
block
)
rows
.
each
(
&
block
)
end
private
def
rows
return
@rows
if
@rows
@rows
=
YAML
.
load
(
render
(
IO
.
read
(
@file
))).
to_a
end
def
render
(
content
)
ERB
.
new
(
content
).
result
end
end
end
end
activerecord/test/cases/fixtures/file_test.rb
0 → 100644
浏览文件 @
ad3f0eec
require
"cases/helper"
require
'tempfile'
module
ActiveRecord
class
Fixtures
class
FileTest
<
ActiveRecord
::
TestCase
def
test_open
fh
=
File
.
open
(
::
File
.
join
(
FIXTURES_ROOT
,
"accounts.yml"
))
assert_equal
6
,
fh
.
to_a
.
length
end
def
test_open_with_block
called
=
false
File
.
open
(
::
File
.
join
(
FIXTURES_ROOT
,
"accounts.yml"
))
do
|
fh
|
called
=
true
assert_equal
6
,
fh
.
to_a
.
length
end
assert
called
,
'block called'
end
def
test_names
File
.
open
(
::
File
.
join
(
FIXTURES_ROOT
,
"accounts.yml"
))
do
|
fh
|
assert_equal
[
"signals37"
,
"unknown"
,
"rails_core_account"
,
"last_account"
,
"rails_core_account_2"
,
"odegy_account"
],
fh
.
to_a
.
map
(
&
:first
)
end
end
def
test_values
File
.
open
(
::
File
.
join
(
FIXTURES_ROOT
,
"accounts.yml"
))
do
|
fh
|
assert_equal
[
1
,
2
,
3
,
4
,
5
,
6
],
fh
.
to_a
.
map
(
&
:last
).
map
{
|
x
|
x
[
'id'
]
}
end
end
def
test_erb_processing
File
.
open
(
::
File
.
join
(
FIXTURES_ROOT
,
"developers.yml"
))
do
|
fh
|
devs
=
Array
.
new
(
8
)
{
|
i
|
"dev_
#{
i
+
3
}
"
}
assert_equal
[],
devs
-
fh
.
to_a
.
map
(
&
:first
)
end
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录