浏览 3755 次
锁定老帖子 主题:ob_start for ruby
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-10-25
我发现在ruby中没有对应的这个功能,但我利用ruby的block特性实现了它.若有什么问题或建议,欢迎提出。 #title:ob_start for ruby #author:axgle (2006-10-25) #version:1.0 #see:http://php.net/ob_start class Ob require 'stringio' def self.start(&block) $stdout=@buffer=StringIO.new block.call end def self.get_contents $stdout = STDOUT @buffer.rewind @buffer.read end end def ob_start(&block) Ob.start(&block) end def ob_get_contents Ob.get_contents end #使用举例(example): ob_start do #输出缓冲开始 p "aaa" #输出缓冲1 puts "bbb" #输出缓冲2 print File.open(__FILE__).read #输出缓冲3,文件本身的内容(也可以是其他文件,来自数据库的数据等等) #require "other" data=ob_get_contents #获取所有的输出缓冲内容,输出缓冲结束 #以下是标准输出 puts data.size puts data.include?("aaa") puts data.include?("bbb") puts data end 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |