LibKing » Книги » comp-programming » Хэл Фултон - Программирование на языке Ruby

Хэл Фултон - Программирование на языке Ruby

Тут можно читать онлайн Хэл Фултон - Программирование на языке Ruby - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ДМК Пресс, год 2007. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Хэл Фултон - Программирование на языке Ruby
  • Название:
    Программирование на языке Ruby
  • Автор:
  • Жанр:
  • Издательство:
    ДМК Пресс
  • Год:
    2007
  • ISBN:
    5-94074-357-9
  • Рейтинг:
    4/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

Хэл Фултон - Программирование на языке Ruby краткое содержание

Программирование на языке Ruby - описание и краткое содержание, автор Хэл Фултон, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Ruby — относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов.

Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии.

Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.

Программирование на языке Ruby - читать онлайн бесплатно ознакомительный отрывок

Программирование на языке Ruby - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Хэл Фултон
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

19.6.1. Основные идеи IOWA

Приложение IOWA работает как фоновый процесс, который прослушивает сокет в ожидании запросов. IOWA включает различные адаптеры, так что источником запроса может быть CGI, Mongrel, WEBrick и т.д.

На домашней странице IOWA представлены хорошее объяснение архитектуры и учебное руководство, поэтому здесь мы приведем лишь краткий обзор основных особенностей.

Загрузить IOWA можно с сайта rubyforge.org. Gem-пакет будет подготовлен вместе с версией 1.0. Примеры, представленные в этом разделе, составлены на базе предварительной версии, доступной в виде zip- или tgz-файла.

В состав дистрибутива входит несколько примеров и тестов, демонстрирующих работу каркаса. Мы рассмотрим простое приложение, разработанное на основе этих примеров.

Для приложения IOWA нужен код, который запустит фоновый процесс, а в качестве фронтального процесса мы будем пользоваться встроенным сервером WEBrick. Сценарий арр.rbрешает обе задачи:

require 'iowa_webrick'

class HWApplication < Iowa::Application

self.daemonize = true

attr_accessor :dbpool

def initialize(*args)

super

Iowa.config[Iowa::Capplication][Iowa::Croot_url] = 'http://127.0.0.1:2000'

end

end

Iowa.run

По умолчанию конфигурационные данные читаются из файла арр.cnfв текущем каталоге. Вот как выглядит наш файл:

socket:

hostname: localhost

path: ..

logging:

basedir: ../log

minlevel: 0

maxsize: 10000000

maxage: 86400

application:

daemonize: false

sessioncache:

class: LRUCache

maxsize: 20

ttl: 3600

dispatcher:

class: StandardDispatcher

policy:

class: iowa/Policy

Этот файл, записанный в формате YAML, содержит различную информацию о желаемом поведении IOWA. Необходим и еще один конфигурационный файл mapfile.cnf, в котором описывается, как запросы отображаются на компоненты. Вот пример такого файла, содержащий всего одну строку:

/main.html: Main

Запросы к IOWA обычно обслуживаются комбинацией HTML-шаблонов и компонентов IOWA. Парные файлы имеют одинаковое базовое имя, но разные расширения. Принимаемый по умолчанию шаблон/объект называется Main, так что приложение состоит из файлов Main.htmlи Main.iwa.

Файлы с расширением .iwaпредставляют собой программы на Ruby; такое расширение в IOWA используется для того, чтобы отличить их от прочего кода, который может входить в состав приложения. Эти файлы играют ту же роль, что классы контроллеров в Nitro и Rails. Определенные в классе компонента методы доступны из соответствующего HTML-файла.

Демонстрационный файл Main.htmlвыглядит так:

Текущее время...

<���р>Текущее время @now.

<���р>Счетчик равен @count.

<���а oid="reload">RELOAD

В шаблонах IOWA можно смешивать обычный HTML-код и переменные экземпляра компонента. Отметим, что переменные необязательно «интерполировать» обычным способом, достаточно просто включить их в разметку.

Имеется также специальная переменная oid, IOWA использует ее для динамического изменения шаблона в процессе прорисовки. В нашем примере с ее помощью создается ссылка на метод reload из класса компонента, определенного в файле Main.iwa. Если задержать мышь над этой ссылкой в полученной странице (или посмотреть ее исходный текст), то вы увидите URL следующего вида:

http://127.0.0.1:2000/main.html/6b38f6fb-4f087af7-ab6JaqUM9KyWE.a.1.7

Такие URL позволяют IOWA отслеживать состояние сеанса. Если несколько раз щелкнуть по ссылке, то вы увидите, что URL изменяется. Если вручную восстановить предыдущее значение, вы получите состояние сеанса, соответствующее URL.

В данном случае состояние — это значение переменной экземпляра @count. Вот как выглядит файл Main.iwa:

class Main < Iowa::Component

attr_accessor :count

def awake

@count = 0

end

def setup

@count += 1

end

def now

Time.now.asctime

end

end

19.6.2. Шаблоны в IOWA

Большинство Web-приложений только выигрывает от разделения кода и шаблонов представления, но IOWA, как и Nitro, позволяет вообще обходиться без компонентов и помещать весь код на Ruby в представление. Ниже приведен файл PureView.html, содержащий как код класса, так и HTML-разметку:

Автономный вид

<���р>Текущее время @right_now.

Но, в отличие от Nitro, это работает только в том случае, когда для представления нет соответствующего компонента. Если имеются оба файла, то IOWA не станет анализировать код, встроенный в HTML-файл.

Шаблон может содержать циклы и условные предложения. Добавим такой метод в файл Main.iwa:

def after_dinner?

Time.now.hour >19

end

Тогда можно реализовать в Main.htmlусловную прорисовку с помощью элемента if:

<���р>Обед закончен. Что на десерт?</р>

Хороший вопрос! Что на десерт? Пусть IOWA и ответит. Мы поручим Main.iwaподготовить меню десертов в виде массива:

def desserts

%w{

Пирожные

Печенье

Фрукты

Мороженое

}

end

А в файле Main.htmlвыведем его. Изменим содержимое элемента if, включив список десертов:

<���р>Обед закончен. Вот что мы можем предложить на десерт:</р>

  • @dessert_item

Мы еще должны сообщить IOWA, что выводить на каждой итерации, поэтому в конце файла Main.iwaпосле определения класса добавим раздел определения связей:

Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


Хэл Фултон читать все книги автора по порядку

Хэл Фултон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Программирование на языке Ruby отзывы


Отзывы читателей о книге Программирование на языке Ruby, автор: Хэл Фултон. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img