Программирование на языке Ruby
Программирование на языке Ruby читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Модуль
mod_ruby•
RubyRequire•
RubyHandler•
RubyPassEnv•
RubySetEnv•
RubyTimeOut•
RubySafeLevel•
RubyKanjiCodeВ состав пакета входят также классы и модули Ruby для взаимодействия с Apache. Модуль
Apacheserver_versionunescape_urlRequestTableApache::Requestrequest_recrequest_methodcontent_typereadlinesApache::TabletablegetaddeachИмеются подробные инструкции по компиляции и установке пакета
mod_ruby19.7.2. Использование erb
Для начала договоримся о терминологии. Речь не идет о встраивании интерпретатора Ruby в электронные устройства, скажем, в телевизор или тостер. Мы говорим о встраивании кода на Ruby в текст.
Далее отметим, что встраивать Ruby-код в текстовые файлы можно несколькими способами. В этом разделе мы рассмотрим лишь самый общеупотребительный инструмент, а именно программу
erbПочему мы упоминаем подобный инструмент в связи с Web? Очевидно, потому, что чаще всего Ruby-код встраивается в HTML или XML-тексты.
Но можно придумать и другие применения. Например, в старомодных текстовых играх, или в каких-нибудь утилитах слияния почты, или как часть задания
cron/etc/motderbУтилита
erbТекст, который нужно специально обрабатывать, заключается в скобки
<%%>Если первый символ — знак равенства (
=This is <%= "ylno".reverse %> a test.Do <%= "NOT".downcase %> be alarmed.Если назвать этот файл
myfile.txterb myfile.txtРезультат направляется на стандартный вывод:
This is only a test.Do not be alarmed.Комментарий вводится символом
#Life <%# so we've heard %> is but a dream.Как и следовало ожидать, комментарии игнорируются, то есть мы увидим такой результат:
Life is but a dream.Все остальные символы после знака процента рассматриваются как часть кода. Все, что этот код выводит (не результат вычисления значения), помещается в текстовый поток. Для удобства восприятия рекомендую оставлять после процента пробел, хотя
erbВ следующем примере тег в первой строчке ничего не вставляет в текст, так как ничего не выводит. Во вторую же строку вставляется
42Ответ равен <% "42" %>.А точнее, ответ равен <% puts "42" %>.Результат получается такой:
Ответ равен .А точнее, ответ равен 42.Фрагменты кода на Ruby не являются независимыми. Так, переменную, определенную в одном теге, можно использовать в следующем за ним.
<% x=3; y=4; z=5 %>Если стороны треугольника равны <%=x%>, <%=y%> и <%=z%>,мы знаем, что он прямоугольный, поскольку<%= x*x %> + <%= y*y %> = <%= z*z %>.Пробелы внутри тегов в последней строке необязательны, но с ними текст становится понятнее. Выводится следующий текст:
Если стороны треугольника равны 3, 4 и 5,мы знаем, что он прямоугольный, поскольку9 + 16 = 25.Попробуйте сделать внутри тега синтаксическую ошибку. Вы обнаружите, что
erbЧто если включить «магическую строку» в сам текст в виде литерала? Экранирование с помощью обратной косой черты не работает. Мы рекомендуем такой способ:
В этой строке есть цепочка меньше-процент <%="<%"%>,а в этой больше-процент <%="%"+">"%>.Здесь мы видим <%="<%="%> и <%="<%#"%>.Результат таков:
В этой строке есть цепочка меньше-процент <%,а в этой больше-процент >%.
