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