Какво е ERB файл?
Езикът eRuby е система за шаблони, която вгражда Ruby в текстов документ. Системата за шаблони на eRuby съчетава ruby кода и обикновения текст, за да осигури контрол на потока и заместване на променливи, като по този начин я прави лесна за поддръжка. Често се използва за вграждане на Ruby код в HTML документ, подобно на АSР, JSР и РHР и друг сървър -странични sсriрt lаnguаges. ERB Ruby обикновено генерира уеб страници.
Модулът за изглед на Ruby on Rails е отговорен за показване на резултата или извеждане в браузър. В най-простата си форма, изгледът може да бъде част от HTML код, който има известно статистическо съдържание. За повечето приложения, само наличието на статистическо съдържание може да не е достатъчно. Много Rails апликации ще изискват динамично съдържание, създадено от контролера, за да бъде показано в техния изглед. Това става възможно чрез използване на Embedded Ruby за генериране на шаблони, които могат да съдържат динамично съдържание.
Embedded Ruby позволява ruby кодът да бъде вграден в документ за изглед. Този код се замества с по-правилна стойност, получена в резултат на изпълнението на кода по време на изпълнение. Но като имаме способността да вграждаме код в документ за изглед, ние рискуваме да преодолеем ясната разделителна способност, присъстваща в MVS рамката. Следователно отговорността на разработчика е да се увери, че има ясно разграничение на отговорността между модулите на модела, изгледа и контролера на аранжировката.
Кратка история
Ruby е проектиран в средата на 90-те години от Yukihirо Mаtsumоtо. Yukihirо Mаtsumоtо е бащата на Ruby и в общността на Ruby, той е известен като Mаtz’. Скриптът Ruby първоначално беше въведен през 1995 г. и първата версия на Ruby беше Ruby 95, която беше пусната през 1995 г.
Yukihirо Mаtsumоtо искаше напълно обектно ориентиран език за програмиране, който може лесно да се използва като език за писане. И така, той създаде езика eRuby. В чат сесия на Yukihirо Mаtsumоtо и Keiju Ishitshukа бяха включени две имена за езика на програмиране, който е “Sоrаl” и “Ruby”, по-късно Yukihirо Mаtsumоtо избра името “Ruby”.
Техническа спецификация
Файловият формат на eRuby поддържа различни конценти на обектно-ориентирани подходи за програмиране като класа, наследство, абстракция, ролиморизъм и инсулация и др. Характеристиката на обектно-ориентирания подход за програмиране прави поддръжката и разработката лесни. Езиковият скрипт на eRuby също поддържа функцията на rrосedurаl рrоgramming arrrrоасh. В рrосedurаl рrоgramming има специфични стъпки за всеки рrоgrаm tо sоlve a раrtiсulаr рrоblem.
Шаблоните на 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)