ruby - 使用哪个,eruby 还是 erb?

标签 ruby erb eruby

eruby 和 erb 有什么区别?哪些考虑因素会促使我选择其中之一?

我的应用程序正在为网络设备(路由器、负载平衡器、防火墙等)生成配置文件。我的计划是对配置文件进行模板化,在源文件中使用嵌入式 ruby​​(通过 eruby 或 erb)来执行诸如迭代生成路由器的所有接口(interface)配置 block 之类的操作(这些 block 都非常相似,仅在标签上有所不同和 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

最佳答案

没关系,它们都是一样的。 erb 是纯 ruby​​,eruby 是用 C 语言编写的,所以速度要快一些。

erubis(第三个)是纯 ruby ,比上面列出的两个都快。但我怀疑速度是你的瓶颈,所以就用 erb 吧。它是 Ruby 标准库的一部分。

关于ruby - 使用哪个,eruby 还是 erb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74782/

相关文章:

mysql - 使用 rails where 查询另一个查询的结果

ruby - rhtml (eruby) apache 麻烦

ruby - 遍历每个 xml 节点

ruby-on-rails - Rails、rspec、post 数组,如 "hey[]=1"

javascript - 未评估第二个变量

ruby - 将选项传递给 thor 中的模板函数

带 erubis 模板引擎的 Ruby 2.1

ruby-on-rails - 如何计算对象数量而不是获取 Ruby 中的所有对象?

html - Visual Studio Code - erb 和 html 一起