背景
我正在尝试在Rails之外测试一些 HAML 模板的格式。这个想法是在命令行或通过包含的 Ruby 文件传递一些实例变量,将模板呈现为标准输出。我尝试了几种不同的方法但没有成功,如下所述。
需要一个 Ruby 文件
例如,给定以下两个文件:
HAML 模板:“test.haml”
!!! %h1 Testing HAML CLI %p= @bar %p= @baz
红宝石文件:“test.rb”
@foo = 'abc' @bar = '123'
我希望调用会haml -r ./test test.haml
在标准输出上返回一个内插的 HTML 文件,但事实并非如此。相反,我得到的只是 HTML:
<!DOCTYPE html>
<h1>Testing HAML CLI</h1>
<p></p>
<p></p>
程序化尝试
由于这不起作用,我也尝试以编程方式执行此操作。例如:
#!/usr/bin/env ruby
require 'haml'
@foo = 'abc'
@bar = '123'
engine = Haml::Engine.new(File.read 'test.haml')
puts engine.render
具有完全相同的结果,例如只有没有变量插值的 HTML。
重述问题
显然,需要其他东西才能让 HAML 呈现带有相关变量的模板。我更愿意从命令行执行此操作,通过传递参数或包含文件。我应该如何从命令行调用 HAML 来实现它?
如果由于某种原因这不可能,我应该如何以编程方式调用 HAML 来执行插值而不依赖于 Rails?