ERB: встраиваемый Ruby-шаблонизатор для удобной разработки веб-приложений
ERB (Embedded Ruby) является шаблонизатором для языка Ruby. Он позволяет встраивать Ruby код в HTML, CSS, JavaScript и другие языки разметки.
Пример кода на ERB:
html
<%= @title %>
Welcome, <%= @name %>!
<% if @time == "morning" %>
Good morning!
<% else %>
Good evening!
<% end %>
Здесь мы используем тег `<%=` для вставки значения переменных `@title` и `@name` в тег ``
соответственно. Тег `<% if %>` и `<% else %>` используются для конструкции условия, в зависимости от переменной `@time` выводится разный текст.
Перед использованием ERB необходимо создать объект `ERB`, который будет обрабатывать шаблон. Для этого можно использовать следующий код:
ruby
require 'erb'
template = ERB.new(File.read('template.erb'))
result = template.result(binding)
Здесь мы считываем содержимое файла `template.erb` и создаем объект класса `ERB`. Далее мы вызываем метод `result`, который принимает объект `Binding`, содержащий переменные, используемые в шаблоне.
Пример создания объекта `Binding`:
ruby
@title = "My Website"
@name = "John"
@time = Time.now.hour < 12 ? "morning" : "evening"
binding = binding()
Здесь мы создаем переменные `@title`, `@name` и `@time`. Затем мы вызываем метод `binding`, который создает объект `Binding`, содержащий эти переменные.
ERB также позволяет использовать циклы и другие конструкции языка Ruby в шаблонах. Например:
html
<% @items.each do |item| %>
- <%= item %>
<% end %>
Здесь мы используем цикл `each` для вывода элементов массива `@items` в виде списка ``
. Тег `<% end %>` используется для завершения блока `do`.
ERB является мощным инструментом для создания динамически генерируемых страниц и приложений в Ruby.