R18n 1.0.0Andrey “A.I” Sitnik

Вышла юбилейная версия библиотеки , которая позволяет добавить в ваше приложение на Rails/Ruby поддержку нескольких языков (i18n).

По сравнению со встроенной в Ruby on Rails библиотекой I18n, R18n имеет : автоопределение языка, перевод моделей и любых объектов, фильтры (например, чтобы возвращать разные строки в зависимости от пола пользователя), синтаксис более в стиле Ruby, нормальную архитектуру локалей, лучшую поддержку для языков стран СНГ.

Mina - инструмент для быстрого деплояAlex Soulim

Mina - новый инструмент для автоматизации деплоя вашего приложения. Это быстрый инструмент.

Скорость достигается за счет использования только одного SSH-соединения. Vlad и Capistrano создают отдельное соединение для выполнения каждой команды.

Кроме того, по своей сути Mina - это генератор bash-скрипта деплоя, который потом исполняется на сервере.

Установить и использовать просто:

$ gem install mina
$ mina

Код проекта открыт и доступен на GitHub - .

Я уже успел испытать Mina в деле и даже исправить небольшой баг в коде. Впечатления только положительные.

Комментарии
Andrey Chernih

SSH, кстати, можно ещё существенно ускорить добавление следующих строк в ~/.ssh/config:

Host *

ControlPath ~/.ssh/ms/%r@%h:%p
ControlMaster auto
ControlPersist 4h

Таким образом соединение будет постоянным (master host), а прибиваться будет только через 4 часа, если не используется.

Brainwashing: курсы повышения мастерства, теперь и iOSNate

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

В июле мы планируем провести два курса: Brainwashing Rails 14-15 июля и Brainwashing iOS 7-8 июля.

Посмотрите полные программы курсов. Я буду очень рад, если кому-то из вас курс окажется интересен и полезен. Оставляйте заявки на участие :) Спешите стать ещё круче.

rungist.com — Yet Another TryRubyAndrew Djoga

Проект позволяет запускать в песочнице ruby. Код открыт и доступен на GitHub. Проект создавался с целью получения еще одного примера использования Backbone.js в связке с ruby приложением.

Ссылки:

Комментарии
Barthez

Ухты! Попробовал - круто

Batsd - демон собирающий статистикуAlex Soulim

Batsd - новый продукт знаменитых 37signals. Это демон написанный на Ruby, который занимается сбором и хранением статистической информации. Идея похожа на , созданный Etsy.

Основное отличие в том, как batsd хранит информацию. Он использует для этого комбинацию Redis и flat files.

Проект неплохо документирован. Советую начать знакомство с .

Интроспекция цепочки вызова методов ActiveRecord::BaseDmitrii Samoilov

Недавно захотелось разобраться, какие методы вызываются при вызове конкретного метода отнаследованного от ActiveRecord::Base класса.

Поэтому я придумал небольшой хак для вывода названия метода при его вызове:

module ActiveRecord
  Base.singleton_methods.each do |m|
    Base.class_eval <<-EOS
      class << self
        puts "redefining #{m}"

        define_method "#{m}_with_introspection" do |*args|
          puts "#{m}"
          send(:"#{m}_without_introspection", *args)
        end

        alias_method :"#{m}_without_introspection", :"#{m}"
        alias_method :"#{m}", :"#{m}_with_introspection"
      end
    EOS
  end
end

Можно подключить этот код через какой-нибудь init.rb/environment.rb файл, чтобы он загружался при старте проекта или можно просто запускать его руками из irb сессии.

Вот пример использования в irb:

NB: Можно применять этот хак не только для класса ActiveRecord::Base, но и для всех классов/модулей со сложной структурой вызовов метода.

Можно легко доработать этот код не только для вывода названия метода, но и для вывода аргументов и тд.

Комментарии
Dmitrii Samoilov

да, можно и так, только тогда уж alias_method_chain :"#{m}", :"#{introspection}"

Jenkins::ClientAlex Soulim

Если вы используете в качестве сервера непрерывной интеграции, то Jenkins::Client может быть вам интересен.

Эта библиотека предоставляет удобный интерфейс для работы с Jenkins API. Вы сможете просматривать список задач, добавлять и удалять их.

Примеры кода.

Инициализация:

client = Jenkins::Client.new
client.username = "user"
client.password = "pass"
client.url = "http://jenkinsurl.com"

Получение списка задач:

client.jobs

Запуск задачи:

job = Jenkins::Client::Job.new({ :name => "job_name" })
job.start!

Вы сможете узнать больше в README -

rails-brakeman.com - поиск уязвимостей онлайнAlex Soulim

Библиотека brakeman - это анализатор rails-приложений на предмет наличия в них уязвимостей.

rails-brakeman.com - это сервис, который использует эту библиотеку и предоставляет интерфейс для анализа приложений, чей код размещен на GitHub.

Ссылки:

  • репозиторий библиотеки brakeman -
  • официальный сайт brakeman -
SextantAlex Soulim

Sextant аналог команды rake routes, который выводит результаты в браузере.

Бывает, что в большом rails-приложении запуск rake-задачи занимает довольно много времени. Ричард Шниман (Richard Schneeman) придумал решение и реализовал его в библиотеке Sextant.

Теперь увидеть все пути (routes) приложения можно открыв страницу /rails/routes. Например,

http://localhost:3000/rails/routes

Стоит также отметить, что адрес /rails/routes доступен только development-режиме.

Ссылки:

  • исходный код и инструкции на GitHub -
  • вводная статья в блоге Ричарда -