【问题标题】:Interpret/Render output from puts() as HTML将 puts() 的输出解释/呈现为 HTML
【发布时间】:2011-09-11 06:34:00
【问题描述】:
当我运行我的 ruby 脚本时,我希望输出呈现为 HTML,最好使用浏览器(例如 Chrome)。但是,如果我不必启动 Web 服务,我会非常喜欢,因为我不制作网站。我已经尝试过sinatra,但它的问题是每次我对代码进行更改时都必须重新启动服务器,而且它具有我并不真正需要的请求(如 GET/POST 参数) .
我只是更喜欢我的 Ruby 程序的输出显示为 HTML,而不是控制台文本——因为 html 允许更多创意/表现力的输出。有没有好的/简单/有效的方法来做到这一点? (我正在使用 notepad++ 来编辑我的代码,所以如果可以以某种方式将上述内容与它结合起来,那就太棒了)。
非常感谢:)
【问题讨论】:
标签:
html
ruby
notepad++
render
【解决方案1】:
使用 gem shotgun,您可以运行 Sinatra 应用程序,该应用程序会自动重新加载更改而无需重新启动服务器。
或者,使用像 awesome_print 这样具有 HTML 格式的库,您可以编写一个函数来获取输出并将其保存到文件中。然后在 Chrome 中打开文件。
如果您不想在 Chrome 中手动刷新页面,您可以查看guard-livereload (https://github.com/guard/guard-livereload),它将使用guard gem 并重新加载 Chrome。 Ryan Bates 在这里有一张截图,http://railscasts.com/episodes/264-guard。
这是一个覆盖 Kernel#puts 的函数,用于将字符串打印到 STDOUT 并将其 HTML 格式版本写入 output.html。
require 'awesome_print'
module Kernel
alias :old_puts :puts
def puts(string)
old_puts string
File.open("output.html", "w") do |file|
file.puts string.ai(:html => true)
end
end
end
puts "test"