Тут можно читать онлайн книгу Фултон Хэл - Программирование на языке Ruby - бесплатно полную версию (целиком). Жанр книги: Программирование. Вы можете прочесть полную версию (весь текст) онлайн без регистрации и смс на сайте Lib-King.Ru (Либ-Кинг) или прочитать краткое содержание, аннотацию (предисловие), описание и ознакомиться с отзывами (комментариями) о произведении.
Программирование на языке Ruby - описание и краткое содержание, автор Фултон Хэл, читать бесплатно онлайн на сайте электронной библиотеки Lib-King.Ru.
Ruby — относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов. Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии. Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.
Программирование на языке Ruby - читать книгу онлайн бесплатно, автор Фултон Хэл
Main.new.add_decoration(Wee::PageDecoration.new('Wee'))endWee::Utils::autoreload_glob('components/**/*.rb')Wee::WEBrickAdaptor.register('/арр' => app).startКласс
Mainrenderadd_decoration(Wee::PageDecoration.new('Wee'))Далее конфигурируется автоматическая перезагрузка файлов, чтобы можно было изменить код и проверить, как работает новая версия приложения, не перезапуская WEBrick. И наконец, запускается экземпляр сервера WEBrick, который обслуживает запросы к URL, начинающемуся с пути
'/арр'Wee::WEBrickAdaptor.register('/арр' => арр).start(:Port => 8787 )Компонент
Mainrenderclass Main < Wee::Component def initialize super() # Здесь должен быть ваш код инициализации... end def render r.anchor.callback(:click).with { r.h1("Welcome to Wee!") } r.text "#{ @clicks || 'No' } clicks" end def click @clicks = (@clicks || 0) + 1 endendWee позволяет пользоваться синтаксисом Ruby для генерации HTML-кода примерно так же, как библиотека XML Builder Джима Вайриха и генератор XML в Nitro. Однако в Wee можно еще связать ссылку с действием (в данном случае с методом
clickclick19.5.2. Ассоциирование состояния с URL
В примере выше отслеживается текущее значение переменной
@clickЕсли вручную изменить URL в браузере, то вы получите ту же самую страницу, показываемый счетчик щелчков не изменится. Нет никакой связи между URL и состоянием сервера. (Когда будете ставить эксперимент, не забудьте отключить кэширование в браузере).
Впрочем, это положение можно изменить, слегка модифицировав файл
main.rbMaindef backtrack_state(snap) super snap.add(self)endТеперь перезапустите приложение. Щелкнув несколько раз по ссылке, вручную измените URL в браузере так, чтобы повторно загрузилась предыдущая страница. Теперь счетчик должен показать то значение переменной
@clickЧтобы проверить то же самое с использованием механизма продолжений Wee, добавьте после директив
requirerun.rbrequire 'wee/continuation'В Wee слишком много возможностей, чтобы рассмотреть их здесь подробно. Дополнительную информацию можно найти на следующих ресурсах:
• страница проекта Wee (http://rubyforge.org/projects/wee/);
• страница проекта Nemo (http://rubyforge.org/projects/nemo/):
• проект Seaside (http://seaside.st/)
Одна из интересных особенностей — возможность иметь вложенные компоненты и организовывать цепочки обязанностей, что позволяет собирать сайты из повторно используемых компонентов пользовательского интерфейса. Стоит также познакомиться с проектом Nemo — реализацией Mewa (Meta-level Architecture for Web Applications, метауровневая архитектура Web-приложений) на Wee.
19.6. Разработка Web-приложений с помощью IOWA
IOWA (Interpreted Objects for Web Applications — интерпретируемые объекты для Web-приложений) — это каркас, написанный Кирком Хейнсом (Kirk Haines). Он позволяет создавать повторно используемые, инкапсулированные Web-компоненты для генерации сайта.
19.6.1. Основные идеи IOWA
Приложение IOWA работает как фоновый процесс, который прослушивает сокет в ожидании запросов. IOWA включает различные адаптеры, так что источником запроса может быть CGI, Mongrel, WEBrick и т.д.
На домашней странице IOWA представлены хорошее объяснение архитектуры и учебное руководство, поэтому здесь мы приведем лишь краткий обзор основных особенностей.
Загрузить IOWA можно с сайта rubyforge.org. Gem-пакет будет подготовлен вместе с версией 1.0. Примеры, представленные в этом разделе, составлены на базе предварительной версии, доступной в виде zip- или tgz-файла.
В состав дистрибутива входит несколько примеров и тестов, демонстрирующих работу каркаса. Мы рассмотрим простое приложение, разработанное на основе этих примеров.
Для приложения IOWA нужен код, который запустит фоновый процесс, а в качестве фронтального процесса мы будем пользоваться встроенным сервером WEBrick. Сценарий
арр.rbrequire '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' endendIowa.runПо умолчанию конфигурационные данные читаются из файла
арр.cnfsocket: