eruby和erb有什么区别? 什么考虑会促使我选择其中一个?

我的应用程序是为网络设备(路由器,负载平衡器,防火墙等)生成配置文件。 我的计划是模拟配置文件,使用源文件中的嵌入式ruby(通过eruby或erb)来执行迭代生成路由器的所有接口配置块(这些块都非常相似,仅在标签中有所不同)和一个IP地址)。 例如,我可能有这样的配置模板文件:

hostname sample-router
<%=
r = String.new;
[
    ["GigabitEthernet1/1", "10.5.16.1"],
    ["GigabitEthernet1/2", "10.5.17.1"],
    ["GigabitEthernet1/3", "10.5.18.1"]
].each { |tuple|
    r << "interface #{tuple[0]}\n"
    r << "    ip address #{tuple[1]} netmask 255.255.255.0\n"
}
r.chomp
%>
logging 10.5.16.26

当通过嵌入式ruby解释器(erb或eruby)运行时,会产生以下输出:

hostname sample-router
interface GigabitEthernet1/1
    ip address 10.5.16.1 netmask 255.255.255.0
interface GigabitEthernet1/2
    ip address 10.5.17.1 netmask 255.255.255.0
interface GigabitEthernet1/3
    ip address 10.5.18.1 netmask 255.255.255.0
logging 10.5.16.26

===============>>#1 票数:9

没关系,它们都是一样的。 erb是纯粹的红宝石,eruby是用C语写的,所以它的速度要快一些。

erubis(第三个)是纯红宝石,比上面列出的更快。 但我怀疑它的速度是你的瓶颈,所以只需使用erb。 它是Ruby标准库的一部分。

===============>>#2 票数:2

Eruby是一个外部可执行文件,而erb是Ruby中的一个库。 如果你想要模板文件的独立处理(例如快速和脏的PHP替换),你可以使用前者,如果你需要在其他一些Ruby脚本的上下文中处理它们,你可以使用后者。 使用ERB更常见的原因只是因为它更灵活,但我承认我已经犯了涉及eruby来执行.rhtml文件的快速小实用程序网站。

===============>>#3 票数:0

我正在使用erb做类似的事情,性能对我来说很好。

正如Jordi所说,这取决于你想要在哪个环境中运行 - 如果你真的要使用像你列出的那样的模板,那么eruby可能会更好,但我猜你实际上会通过变量到模板,在这种情况下你想要erb。

仅供参考,当使用erb时,你需要传递它想要从中获取变量的对象的绑定,如下所示:

device = Device.new
device.add_interface("GigabitEthernet1/1", "10.5.16.1")
device.add_interface("GigabitEthernet1/2", "10.5.17.1")

template = File.read("/path/to/your/template.erb")
config = ERB.new(template).result(device.binding)

  ask by Brent Chapman translate from so

未解决问题?本站智能推荐:

2回复

缩进ERB文件

我有以下代码: 我想通过在每个循环之后添加缩进或空格或制表符来正确缩进文件,使其看起来像这样: 这是我的freeradius puppet模块的/ etc / freeradius / sites-available / default的一部分,终于完成了。 @filename
7回复

我是否应该将haml或erb或erubis用于潜在的高流量网站?

我最近一直在和Haml一起玩,真的很喜欢结果代码给我看的方式......开发人员。 我也不太担心设计师能够消费或改变它......我们是一个小团队。 也就是说,开始研究一个我们认为会产生相当多流量的项目(谁没有?)。 我担心有一些我不知道haml的事情。 有没有什么可以做的哈哈不能?
1回复

使用eRuby连接到MySQL时出现问题

我在将eRuby脚本连接到MySQL数据库时遇到问题。 我编写了一个简短的测试脚本,目的是解决最初的连接错误: 现在,只要我将连接参数保持为乱码(“ test”,“ wahssf”,“ amg”),该脚本默认为Mysql::Error类,并将以下内容输出到浏览器: 但是,一
1回复

eruby标签嵌套?

我目前托管在Mediatemple网格服务器上。 我正在写一个自学Ruby的网站-红宝石,没有铁轨。 我遇到了一些似乎是嵌套标签导致的错误。 例如: eruby需要红宝石代码周围的<%%>标签。 如果我尝试使用erb模板,我就会被塞满- 由于嵌套的<%%&
2回复

rhtml(eruby)apache麻烦

我试图在rhtml中运行嵌入式ruby。 它在命令行中运行良好: 但在我的apache设置中,它不起作用。 访问“http://localhost/cgi-bin/test.rhtml”会出现以下错误: “内部服务器错误 服务器遇到内部错误或配置错误,无法完成您
1回复

是否可以在Rails的eRuby模板中定义常量

由于我讨厌使用布尔文字来表示方法,而布尔文字却没有说明其意图,因此我尝试在eruby模板中定义如下常量: <% NO_NIL_PADDING = false %>用于对in_groups_of的调用。 但是,这导致了动态常数分配错误。 有什么办法解决这个问题? 我可能会在环境中
1回复

Apache 10&eruby,就像10年前一样

为什么没有Rails我不能使用eruby? 我不喜欢Rails,但似乎没有Rails已经使用了几十年(如果我在Stack Overflow上提到有关eruby的持续问题的日期)。 这是我添加到Apache配置中以处理.erb脚本的行: 当我尝试加载一个简单的测试页(位于myser
1回复

eruby-nxhtml-mode无法正确加载

我的.emacs文件中有以下行: 但是,erb块无法正确识别。 在运行Mx eruby-nxhtml-mumamo所有东西都像一个魅力。 任何想法如何解决这一问题?
1回复

如何实现JS标签以在eruby代码中点击时触发?

我需要让这块js在click事件上触发: 需要将其添加到已经具有onclick事件的此eruby标记中: 我将如何去做呢?
1回复

非常基本的eruby表单问题:无法获取“提交”按钮来执行任何操作

这是在我的.erb文件中: 这是在我的.rb文件中: 但是,当我尝试单击“提交”按钮登录时,没有任何反应。 最初,我是连接到数据库并检查信息,但此后,我只是试图将错误消息设置为某个值,即使这样也不起作用。 我知道这是我所缺少的愚蠢的东西。 没有哪一块? (将Postgre