Компьютерная литература
  • формат pdf
  • размер 10,62 МБ
  • добавлен 1 апреля 2015 г.
Эдельсон Джастин, Лю Генри. JRuby. Сборник рецептов
М.: ДМК Пресс, 2010. — 236 с. ISBN 978-5-94074-589-1.
Интересующемуся языком JRuby вряд ли нужны руководства по Ruby, Rails или Java – требуется лишь узнать, как решить ту или иную конкретную задачу. В этой книге вы найдете практические рецепты по работе с данной реализацией языка Ruby на платформе Java. Специально рассмотрены такие вопросы, как развертывание веб-приложений Rails на Java-серверах, интеграция программ на JRuby с технологиями из мира Java, разработка персональных приложений на JRuby с помощью инструментальных библиотек на Java и многое другое. Интерпретатор JRuby сочетает в себе простоту и легкость использования Ruby с развитыми библиотеками и технологиями Java, и это открывает совершенно новые возможности для применения Ruby, Rails и Java. Эта книга даст вам возможность воспользоваться всем потенциалом языка JRuby.
JRuby on Rails
В дополнение к JRuby-Rack команда разработчиков JRuby создала инструмент Warbler для упаковки приложения Rails в WAR-файл; это позволяет упростить развертывание. В середине этой главы мы рассмотрим шаги развертывания приложений Rails на основных серверах приложений Java ЕЕ с открытым исходным кодом. Хотя все эти рецепты похожи, мы сочли важным описать детали, специфичные для каждого контейнера. В последних рецептах из этой главы речь пойдет о некоторых дополнительных конфигурационных параметрах и сценариях совместного исполь­зования JRuby и Rails.
Выполнение Ruby-кода из Java-приложения
Требуется выполнить некоторый Ruby-код из Java-приложения.
Получите экземпляр класса org. jruby.Ruby и вызовите метод evalScriptlet (). В классе org. j ruby. j avasupport. JavaEmbedUtils имеются статические фабричные
методы для создания экземпляра среды исполнения JRuby. В примере показано, как можно использовать эти классы.
Определение Spring-компонентов на JRuby
Вы используете каркас Spring Framework в качестве контейнера с внедренной за­висимостью (Dependency Injection – DI) и хотели бы некоторые компоненты написать на JRuby.
Определите на Java интерфейс, определив в нем методы, которые будут реализованы в Ruby-классе. В XM L-файл, описывающий конфигурацию Spring, включите элемент jruby в пространстве имен lang и определите в нем компонент, указав интерфейс и местоположение Ruby-сценария. Написанные на JRuby компоненты можно конфигурировать также с помощью элемента lang:property. Определение простого компонента на JRuby приведено в примере.
Написание задания Ant на Ruby
Требуется выполнить один и тот же Ruby-сценарий в нескольких файлах сбор­ки Ant.
Воспользуйтесь элементом Ant scriptdef, в котором определите задание, состоящее в выполнении Ruby-сценария. У элемента scriptdef имеется дочерний элемент attribute, позволяющий передавать заданию атрибуты. В примере определено задание Ant start-webrick, которое можно использовать для запуска HTTP-сервера WEBrick с заданными номером порта и корневой папкой доку­ментов.
Обычно для прогона автоматизированных тестов требуется выполнять много подготовительного кода. Применение таких предметно-ориентированных языков (DSL), как dust и Expectations, написанных на Ruby, позволяет заметно уменьшить объем этого повторяющегося кода.
На динамическом языке очень просто создавать mock-объекты. Например, JRuby позволяет непосредственно инстанцировать интерфейсы Java.
Механизм открытых классов позволяет модифицировать код во время выполнения, что тоже упрощает тестирование.