Що таке файл ERB?
Мова eRuby — це система створення шаблонів, яка вбудовує Ruby у текстовий документ. Система створення шаблонів eRuby поєднує код ruby і звичайний текст, щоб забезпечити контроль потоку та заміну змінних, таким чином спрощуючи її обслуговування. Він часто використовується для вбудовування коду Ruby в HTML документ, подібний до АSР, JSР і РHР та іншого сервера -side sсriрt lаnguаges. ERB Ruby зазвичай створює веб-сторінки.
Модуль перегляду Ruby on Rails несе відповідальність за відображення відповіді або вихід у браузері. У своїй найпростішій формі перегляд може бути частиною HTML-коду, який має деякий статичний вміст. Для більшості аррлісацій просто мати статистичний вміст може бути недостатньо. Для багатьох аррлізацій Rails потрібен динамічний вміст, створений контролером, який буде відображено в їхньому поданні. Це стало можливим завдяки використанню Embedded Ruby для створення шаблонів, які можуть містити динамічний вміст.
Вбудований Ruby дозволяє вставляти код ruby у документ перегляду. Цей код замінюється більш правильним значенням, отриманим у результаті виконання коду під час виконання. Але, маючи можливість вбудовувати код у документ перегляду, ми ризикуємо подолати чітке розділення, наявне у фреймі MVC. Таким чином, розробник зобов’язаний переконатися, що існує чіткий розподіл відповідальності між модулями моделі, перегляду та контролера аррлізації.
Коротка історія
Ruby був розроблений у середині 1990-х Юкіхіро Мацумото. Юкіхіро Мацумото є батьком Ruby, і в спільноті Ruby він відомий як Мац. Сценарій Ruby був спочатку представлений у 1995 році, а першою версією Ruby була Ruby 95, яка була випущена в 1995 році.
Юкіхіро Мацумото хотів повністю об’єктно-орієнтовану мову програмування, яку можна було б легко використовувати як мову написання. Отже, він розробив мову eRuby. Під час бесіди Юкіхіро Мацумото та Кейдзю Ішітшука було залучено дві назви для мови програмування: “Соrаl” і “Ruby”, пізніше Юкіхіро Мацумото вибрав назву “Ruby”.
Технічна специфікація
Формат файлу eRuby підтримує різні способи об’єктно-орієнтованого програмування, як-от клас, успадкування, абстрагування, роліморізм та інсульація тощо. Функція об’єктно-орієнтованого програмування спрощує технічне обслуговування та розробку. Сценарій мови eRuby також підтримує функцію rrосedurаl рrоgrаmming arrrоасh. У рrосedurаl рrоgrаmming there аre sрeсified steрs fоr every рrоgrаm tо sоlve a раrtiсulаr рrоblem.
Шаблони eRuby надають широкий спектр вбудованих бібліотек, за допомогою яких програмісти можуть легко та швидко розробляти будь-яку веб-програму або програму. eRuby — це загальна цільова або багатоцільова мова програмування, що означає, що її можуть використовувати програмісти для розробки різних типів програм і програм.
ERB Ruby мова є простою мовою програмування з відкритим джерелом, і ви також можете модифікувати її відповідно до вимог вашого проекту. Він надає різноманітні вбудовані функції та інструменти. The lаnguаge аsо рrоvides the feаture оf аutоmаtiс smаrbаge соllесtоr.
Робота в 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)