.ERB вариант №
Язык eRuby — это система шаблонов, которая встраивает Ruby в текстовый документ. Система шаблонов eRuby сочетает в себе код ruby и простой текст для обеспечения управления потоком и подстановки переменных, что упрощает ее обслуживание. Он часто используется для встраивания кода Ruby в документ HTML, аналогичный ASР, JSР и РHР и другим серверам. -сторонние скриптовые языки. ERB Ruby обычно генерирует веб-страницы.
Модуль представления Ruby on Rails отвечает за отображение ответа или вывода в браузере. В простейшей форме представление может быть частью HTML-кода со статическим содержимым. Для большинства приложений просто статического содержимого может быть недостаточно. Многие приложения Rails требуют динамического содержимого, созданного контроллером, для отображения в их представлении. Это стало возможным благодаря использованию Embedded Ruby для создания шаблонов, которые могут содержать динамическое содержимое.
Embedded Ruby позволяет встраивать код ruby в документ представления. Этот код заменяется более правильным значением, полученным в результате выполнения кода во время выполнения. Но, имея возможность встраивать код в документ представления, мы рискуем преодолеть четкое разделение, присутствующее во фрейме MVC. Таким образом, разработчик несет ответственность за четкое разделение ответственности между моделями, представлениями и модулями управления приложения.
Краткая история
Ruby был разработан в середине 1990-х годов Юкихиро Мацумото. Юкихиро Мацумото — отец Ruby, и в сообществе Ruby он широко известен как Мац. Скрипт Ruby был впервые представлен в 1995 году, а первой версией Ruby была Ruby 95, выпущенная в 1995 году.
Юкихиро Мацумото хотел полностью объектно-ориентированный язык программирования, который можно было бы легко использовать в качестве языка сценариев. Итак, он разработал язык eRuby. В чате Юкихиро Мацумото и Кейдзю Ишитшука были зачислены два имени для языка программирования, а именно «Сорал» и «Руби», позже Юкихиро Мацумото выбрал имя «Руби».
Техническая спецификация
Формат файла eRuby поддерживает различные концепции объектно-ориентированного подхода к программированию, такие как класс, наследование, абстракция, полиморфизм и инсарсуляция и т. д. Особенность объектно-ориентированного подхода к программированию упрощает сопровождение и разработку. Сценарий языка eRuby также поддерживает принцип процедурного подхода к программированию. В процедурном программировании для каждой программы предусмотрены определенные шаги для решения конкретной задачи.
Шаблоны eRuby предоставляют широкий спектр встроенных библиотек богатого класса, с помощью которых программисты могут легко и быстро разработать любое веб-приложение или программу. eRuby — это универсальный или многоцелевой язык программирования, что означает, что он может использоваться программистами при разработке различных типов приложений и программ.
Язык ERB Ruby — это простой язык программирования с открытым исходным кодом, и вы также можете изменить его в соответствии с требованиями вашего проекта. Он предоставляет различные типы богатых встроенных функций и инструментов. Язык также предоставляет функцию автоматической сборки мусора.
Программирование в eRuby выполняется очень быстро по сравнению с другими языками программирования. Кроме того, это гибкий язык программирования, поскольку он позволяет каждому пользователю изменять его части в соответствии со своими требованиями. Он поддерживает функцию одиночного наследования и миксинов, а также предоставляет своим пользователям функцию динамического набора текста. eRuby — это язык программирования, чувствительный к регистру, и из-за его чувствительности у него большое сообщество поддержки.
Пример формата файла ERB
Ниже приведены типы тегов в шаблонах ERB:
Выражение
<%= %>
require 'erb'
x = 500
template = ERB.new("The value of x is: <%= x %>")
puts template.result(binding)
Исполнение
<% %>
<ul>
<% 4.times do %>
<li>list item</li>
<% end %>
</ul>
Комментарии
<%# %>
<%# ruby code %>
Другие теги
<%2.times do -%>
<%= @name %>
<% end -%>
Пример класса
class ERBExample
attr_accessor:variable1
# using bind to access class variables
def render()
renderer.result(binding)
end
def initialize(variable1)
@variable1 = variable1
end
# Expose private binding() method.
def get_binding
binding()
end
end
example = ERBExample.new(variable1)
renderer = ERB.new(template)
puts output = renderer.result(example.get_binding)