Рубрика «ruby» - 50

Знакомство с Presto — Часть Вторая

Продолжаем осваивать простоту использования свеже-выRUBYленного веб-фреймворка.

Это вторая часть и посвящена она целомудрию HTML рендеринга.

А именно:

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

Читать полностью »

Краткий экскурс

Меня часто спрашивают — чего ради ещё один фреймворк если есть Rails.
Я часто отвечаю — затем что поезд не решает те задачи которые решает автомобиль.

Ещё чаще меня спрашивают — чего ради Presto если есть Sinatra.
Также часто я отвечаю — потому что автомобили отличаются в плане скорости, комплектации и удобства.

Читать полностью »


Новости

Grape
24 приёма в Ruby
Ruby 1.9.3-p125
MacRuby & MountainLion + what you can do to help the project
9 февраля зарелизился Spree 1.0.0
Полезные инструменты для Capistrano — capistrano-deploy
"MicroGems: five minute RubyGems"
22 февраля вышел JRuby 1.6.7
23 февраля вышел <a rel="nofollow"Читать полностью »

Использовался набор бенчмарков из ruby-1.9.3-p125. Все тесты запускались на:

ОС: OSX Lion 10.7.3
Процессор: 2.3ГГц i5
Память: 8Гб 1333 MHz DDR3
SSD: OCZ Vertex 3 Max IOPS SATA III 2.5" 120Гб

Реализации:
— ruby 1.8.7p249 (системный ruby)
— ruby 1.9.3p125
— ruby 2.0.0dev (2012-02-25 trunk 34796)
— MacRuby 0.12 (ruby 1.9.2) (Nightly build)
— maglev 1.0.0 (ruby 1.8.7)
— rubinius 1.2.4 (1.8.7 release 2011-07-05 JI)
— rubinius 2.0.0dev (1.9.3 e22ed173 JI)
— jruby 1.7.0.dev (ruby-1.9.3-p28) (Java HotSpot(TM) 64-Bit Server VM 1.7.0_04-ea)
— jruby 1.6.7 (ruby-1.8.7-p357) (Java HotSpot(TM) 64-Bit Server VM 1.7.0_04-ea)

JRuby запускался с флагами --server -Xinvokedynamic.constants=true

Компилятор имеет значение

Время от времени я вижу посты об увеличении производительности ruby засчётЧитать полностью »

Ruby / FnordMetric: красивый мониторинг событий для веб приложения

FnordMetric легко настраиваемый и быстрый интерфейс для мониторинга событий в вашем приложении в режиме реального времени, написанный на Ruby и использующий Sinatra для реализации веб-фронтенда. В качестве бэкенда для хранения данных использует Redis. Схема работы проста: после какого-либо события в вашем приложении создается запись FnordMetric, которая в тот же момент отобразится в веб-интерфейсе метрики.


Ruby / FnordMetric: красивый мониторинг событий для веб приложения

Веб-интерфейс FnordMetric состоит из двух частей: самой очереди событий, и набора виджетов, которые могут создавать графики и счетчикиЧитать полностью »

Изучая список изменений в обновившейся на днях XCode я заметил интересное — «command-line tools» теперь не входят в комплект и устанавливаются отдеьно, в настройках. Анализатор TCP и гугление показали, что установить эти самые «command line tools» теперь можно не только из XCode, но и отдельно от него. Что это значит для пользователей? Теперь для использования macports или сборки себе последней версии Ruby нет необходимости качать несколько гигабайт XCode — достаточно скачать около 160 мегабайт «command-line tools» и к нашим услугам вполне себе полноценный gcc, make и прочий toolchain. Под катом инструкция куда кликать и пример сборки последней ruby 1.9.3-p125 с поддержкой Tk

<a rel="nofollow"Читать полностью »

Блог компании WapStart / Page Object — путь к совершенным автотестам

Всем, доброго времени суток!
Этот топик о том как мы тестируем веб-интерфейс нашего продукта Plus1 WapStart. Мы используем Page Object, т.к. этот паттерн имеет много общего с реальными задачами и позволяет писать автотесты простыми для чтения и понимания.

Что такое Page Object

Page Object — это паттерн для реализации умных автоматических проверок. Gem page-object является имплементацией этого паттерна, который помогает в создании гибких страниц с объектами для тестирования браузерных приложений. Суть в том, чтобы создавать уровни абстракции для отделения тестов отЧитать полностью »

Начиная с Руби версии 1.9, появился новый синтаксис для хешей. Давайте посмотрим, как можно моментально перевести на него весь проект. То есть, если раньше мы писали нечто вот такое:
{:key => 'value', :key2 => 'value2'}

Сейчас это будет выглядеть вот так:
{key: 'value', key2: 'value2'}

Мне, лично, такое обновление очень нравится и я стараюсь использовать новый синтаксиис всегда, когда работаю с хешами в своих проектах на Руби. Некоторые проекты, над которыми я работаю в данный момент, уже имеют большое количество кода и в них синтаксис хешей все еще написан по старому. Решение, к которому я пришел, было написать конвертер,Читать полностью »

Хотя на Хабре уже проскакивали статьи о создании гемов, они либо содержат устаревшую, либо неполную информацию.

Как же на самом деле надо создавать, развивать и публиковать свои гемы?

Современный подход заключается в использовании Bundler совместно с другими инструментами, такими, как YARD и RSpec-2.

Создание базовой структуры

Итак, чтобы создать новый гем, достаточно выполнить команду

bundle gem YOUR-GEM-NAME 

После этого вы получите базовую структуру Вашего нового гема в каталоге YOUR-GEM-NAME с уже готовыми командами дляЧитать полностью »

Ruby / Поём вместе с Sinatra. Часть первая. Первое знакомство Доброго времени суток!

Что такое Sinatra

Sinatra — маленький, но довольно интересный DSL (Domain-specific language) фреймворк, написанный на Ruby. В отличие от Ruby on Rails он не следует типичному паттерну MVC (Model — View — Controlller). Sinatra создавался для того, чтобы «программист смог быстро создать веб приложение, написанное на Ruby с минимальными усилиями.

Для того, чтобы воспользоваться Sinatra нам неорбходимо его установить. Сделать это можно следующей командой в RubyGems:

gem install sinatra

Также нам понадобится гем под названием Shotgun. Нужен он нам для того, чтобы лишний раз не перезагружать сервер вручную. Shotgun сделает это за нас. Давайте установимЧитать полностью »