源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

浅析Ruby中的DATA对象

  • 时间:2022-02-14 19:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:浅析Ruby中的DATA对象
这段代码能运行吗? 这个DATA是什么东西?
[code]require 'erb'

data = DATA.read
max = 15_000
title = "hello world!"
content = "hello world!\n" * 10

max.times{
 ERB.new(data).result(binding)
}

__END__

<html>
 <head> <%= title %> </head>
 <body>
  <h1> <%= title %> </h1>
  <p>
   <%= content %>
  </p>
 </body>
</html>
[/code]
这个神奇的DATA是一个IO对象,读取[code]__END__[/code]之后内容。 有一点需要注意的是[code]DATA.read[/code]会将[code]__END__[/code]之后的内容一次性读出,由于IO读取的特性,当第 二次[code]DATA.read[/code]的时候内容就会为空,如果需要第二次读取,那么先要执行[code]DATA.rewind[/code]。 有的时候我们写一个脚本来做一些自动化的工作,需要预先读取一个文件的内容,作为输入或者作为模版,我们可以先把这部分内容附到[code]__END__[/code]后,然后用[code]DATA[/code]来读取,因为它是标准的IO对象,我们可以像处理普通文件一样处理[code]__END__[/code]后的内容,如上面的代码所示,用来存储[code]ERB[/code]内容作为模版,然后再进行处理,非常的方便。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部