Новости фреймворка, технологий связанных с Ruby on Rails и обзор гемов на странице I18n.locale = :ru
Интересное событие
.тостер {ruby} — это техническая конференция. Главная цель — дать профессионалам возможность поделиться своими знаниями.
- 10 февраля 2012, Москва, Digital October.
- Сайт: toster.ru
- Твиттер: @toster_ru
Скидка 10% при покупке билета, если используете код rubyflow
- "умный" content_tag_for,
- "умный" генератор миграций,
- гибкая обработка исключений,
- возможность управлять путями поиска паршалов,
- возвращение сообщений в логе о сработавших фильтрах.
Это были пять возможностей по версии Жозе Валима (José Valim), автора книги "Crafting Rails Applications".
Читайте о деталях эти возможностей в статье "My five favorite “hidden” features in Rails 3.2". Кстати, рекомендую также смотреть комментарии к этой статье.
Релиз устраняет регрессию и исправляет ошибки в документации. Детали..
Тройное "Ура"! :) Новая версия Rails вышла 20 января.
Новое:
- значительно ускорилась работа в development-режиме,
- быстрее разбирается путь (route), благодаря новой Journey engine,
- возможность просмотреть план запроса, созданного ARel,
- возможность отмечать тегами записи лога,
- Active Record Store.
Читайте официальный пресс-релиз "Rails 3.2.0: Faster dev mode & routing, explain queries, tagged logger, store".
Рекомендации по обновлению до Rails 3.2.0 можно найти в "Ruby on Rails 3.2 Release Notes"
Немного сахара для I18n трансляций. Позволяет использовать T.key1.key2 вместо t('key1.key2') что, я полагаю, выглядит намного наглядней. Плюс кое какие фишки по типу логики - читайте README на гитхабе. https://github.com/homakov/T-For-Translate Это лишь прототип, ваши мнения?
Говорят, на Клондайке больше всех зарабатывали продавцы лопат, тазов и сит. Я подумал, и решил при здешней рубиновой жиле поделиться если не лопатами, то хотя бы отвертками собственного изготовления.
Сегодняшний нанотул -- гемчик для показывания посредством libnotify аутотест-нотификаций от Cucumber-а: cucumber-notify. Гем собран из исходников библиотечки от Matt Buck. Я долгое время пользовался исходным вариантом, пока мне не надоело всякий раз прикручивать биб-ку руками, и тогда я собрал гем.
Инструкции:
Ставим изделие:
$ gem install cucumber-notifyиспрашиваем его в своем
.autotest:require 'rubygems' require 'cucumber-notify'Гоняем тесты и любуемся мордашкой.
Пока все, прошу любить и жаловаться!
NB: gem renamed
Ввиду того, что Matt Buck великодушно передал мне весь проектик целиком, я переименовал гем. Теперь рабочий гем называется "autotest-cucumber-notification", соответственно и require следует писать. Старый гем переделан в мета-гем, делегирующий весь функционал новому.
Интересная статья в блоге команды Phusion, разработчиков Phusion Passenger. Рассуждения об идее добавления условий в Gemfile.
Как иллюстрация идеи:
condition :driver => 'sqlite' do
gem 'sqlite3'
end
condition :driver => 'mysql' do
gem 'mysql'
end
condition :driver => 'postgresql' do
gem 'pg'
end
condition :driver => ['mysql', 'sqlite'] do
gem 'foobar'
end
А дальше установить драйвер, например, MySQL можно так:
bundle install --condition driver=mysql
Больше деталей в статье Bundler and public applications.
Кстати, высказать свое мнение и/или поддержать идею можно в комментариях к соответствующему тикету - github.com/carlhuda/bundler/issues/1636
Компания “Тематические Медиа” делает специальное предложение для читателей и авторов RubyFlow.ru и RubyJobs.ru.
При покупке билета на техническую конференцию .тостер {ruby}, вы получите скидку в 10%, если используете промо-код - rubyflow
Поделитесь кодом с друзьями :) Встретимся на конференции!
10 февраля 2012 года компания “Тематические Медиа” проведет очередную конференцию “.тостер”, первую в 2012 году, посвященную программированию на языке Ruby и использованию фреймворка Ruby on Rails.
Среди выступающих на конференции ведущие Ruby и Ruby on Rails специалисты из США, Южной Америки, Европы и России, занимающиеся непосредственной разработкой ПО и созданием высоконагруженных приложений и сервисов.
Перед участниками конференции выступят: CIO GitHub Скотт Шакон, со-основатель Codeminers42 и евангелист Ruby в Бразилии Фабио Акита, Грегг Поллак из EnvyLabs, известный своими подкастами и скринкастами, ведущий разработчик Travis CI Джош Калдеримис, автор Sinatra и евангелист Heroku Блейк Мизерани, а так же Джонатан Лейтон, независимый разработчик и член Rails Core Team. Кроме них в программе и два русских докладчика: Тимофей Клименко из компании Hot Spot и Иван Евтухович из Evil Martians.
В течение всего дня приглашенные гости конференции будут рассказывать о тонкостях программирования на языке Ruby, малоизвестных особенностях и практиках применения Ruby on Rails, использованию сторонних продуктов и платформ для быстрого и эффективного создания программных продуктов.
Контакты: toster@thematicmedia.ru +7 (495) 628-27-04
Основная цель Saint - максимально упростить управление контентом определённых табиц БД.
Saint позволяет создавать любые HTML поля на чистом Ruby, поддерживает любые типы ассоцирования таблиц, комплексные фильтры, встроенный FileManager и другие "вкусности".
Вот например какой интерфейс можно построить ценной всего в 100(сто) строк кода: Демо на официальном сайте
А тут краткий вводный туториал
Ниже приведён пример развёртывания админ интерфейса "в два клика".
Для этого понадобится Ruby 1.9.2 (или выше) и коннект к любому SQL серверу из списка поддерживаемых DataMapper-ом (MySQL, Sqlite, Postgresql etc).
Для начала устанавливаем Saint:
$ sudo gem install saint
Потом создаём модель(на данный момент Saint поддерживает только DataMapper ORM):
class PageModel
include DataMapper::Resource
property :id, Serial
property :name, String
end
Дальше, создаём интерфейс:
class Page
include Saint::Api
http.map :pages
saint.model PageModel
saint.column :name
end
Теперь надо лишь запустить приложение. Стоит отметить что Saint построен на основе Presto фраймворк, так что создаём приложение, монтируем в неё Saint интерфейс и запускаем:
app = Presto::App.new
app.mount Page
app.run
Данный интерфейс является демонстративно тривиальным, и позволят лишь создавать / редактировать / удалять объекты лишь одной таблицы БД.
Но добавлять новые таблицы довольно просто и легко, так что можно довольно быстро построить интерфейс определённой сложности.
Благодарю за внимание.

Не Жозе а Хосе