В чем разница между 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