Программирование на Ruby - Новости

Nginx как прокси для Amazon S3 публичных и приватных файлов

Amazon S3 - великолепное распределенное безразмерное хранилище с удобным интерфейсом доступа. Все бы ничего, но долгий SSL handshake, узкий tcp cognestion window, отсутствие SPDY и невозможность маскировать URL не дает использовать S3 в полной мере.

Посмотрим, как решить все эти проблемы https://coderwall.com/p/rlguog

Источник: rubyflow.ru

Rails Email Preview

Rails Engine для предпросмотра и даже редактирования писем в текстовом и HTML форматах.

В отличии от letter_opener, который перехватывает отправляемые приложением письма и отображает их в браузере, rails_email_preview работает совершенно иначе. Он предоставляет специальный URL, открыв который вы попадаете на страницу предпросмотра всех имеющихся в приложении шаблонов писем.

Для начала использования требуется некоторая настройка, поэтому советую читать README в репозитории проекта - github.com/glebm/rails_email_preview.

Источник: rubyflow.ru

Guard::Rubocop

Плагин для Guard, который добавляет возможность проверки стиля вашего кода с помощью rubocop.

Обновляете Gemfile:

group :development do
  gem 'guard-rubocop'
end

Добавляете конфигурацию в Guardfile:

guard :rubocop, all_on_start: false, notification: true do
  # ...
end

И теперь каждый раз при сохранении файла стиль вашего кода в нем будет проверяться автоматически.

Репозиторий на GitHub - github.com/yujinakayama/guard-rubocop

Источник: rubyflow.ru

Альфа версия программы DevConf::Ruby

В рамках DevConf 2013, 14 июня 2013, пройдут 5 конференций по разным языкам программирования включая DevConf::Ruby.

Формат конференции DevConf предусматривает первый конференционный день и второй день мастер-классов. Второй день является опциональным и требует отдельной регистрации.

Конференция нацелена на профессиональных веб-разработчиков и тех, кто мечтает ими стать. Она объединяет все самые распространенные языки, при этом каждому выделен свой поток (зал).

Программа выступлений в секции Ruby:

  • Егор Хомяков (специалист по Rails безопасности) c докладом “Безопасный сайт на примере Rails”
  • Николай Рыжиков (Team lead of "MedClient") с докладом “Domain Driven Design on Rails”
  • Андрей Суббота (Ruby developer в Undev.ru) с докладом “Основы отладки Rails приложений”
  • Александр Балашов (Team lead в Evrone.com) с докладом “Быстрое тестирование Ruby on Rails”
  • Игорь Кузнецов (Ruby developer в Undev.ru) с докладом “Проектирование API”
  • Анатолий Макаревич (Ведущий разработчик в Evrone.com) с докладом “Рефакторинг Ruby кода”
  • Игорь Александров (Руководитель в JetRockets) с докладом “Биллинг в SaaS-системах на Rails”
  • Кирилл Мокевнин, (Team lead в Undev.ru) c докладом “Архитектурные практики”
  • Никита Шильников (Руководитель отдела разработки компании Latera) с докладом “Они сошлись — Ruby и Oracle”
  • Николай Шебанов (Ведущий разработчик в Evrone.com) с докладом “Спасение утопающих - покрываем тестами взрослый Ruby on Rails проект”

Официальный сайт - http://devconf.ru

Источник: rubyflow.ru

Attrio 0.3

Сегодня мы (http://www.jetrockets.ru/) выпустили Attrio 0.3. В релизе убраны почти все core ext расширения (после достаточно длинной дискуссии), улучшены спеки, добавлена пропущенная документация.

Для тех, кто ещё не знает, Attrio – библиотека для добавления типизированных атрибутов к объектам Ruby. Подробнее об особенностях и возможностях Attrio можно прочесть в моём блоге:

Страница Attrio на GitHub:

Спасибо.

Источник: rubyflow.ru

Protector

Protector – расширение ORM (ActiveRecord, Sequel, ...) для управления безопасностью на уровне полей.

Ссылки:

Источник: rubyflow.ru

Octokit.rb

Octokit.rb - "обертка" для GitHub API. Теперь с официальной поддержкой со стороны GitHub, но по-прежнему открытая для сообщества разработчиков.

Ссылки:

Источник: rubyflow.ru

RuboCop 0.8.0

RuboCop - это анализатор стиля вашего кода, использующий в качестве эталона The Ruby Style Guide.

Стиль написания кода важная штука. Особенно, если вы работаете в команде.

RuboCop автоматизирует процесс проверки.

В версии 0.8.0 код библиотеки был практически полностью переписан. Ripper, входящий в состав MRI, был заменен на Parser. Это позволило добавить поддержку JRuby и Rubinius.

Ссылки:

Источник: rubyflow.ru

Релиз TheRole 2.0 . Ролевая система для Rails 4 с админкой

TheRole - семантичная, гибкая и легковесная ролевая система для Rails 4. Права доступа хранятся в БД в виде JSON строки, что позволяет легко и просто управлять ролевыми политиками на лету.

Структура ролевых политик (ACL) повторяет устройство Rails контроллеров (controller/action), что делает данную ролевую систему понятной конечному пользователю.

Узнать больше о TheRole

Источник: rubyflow.ru

Введение в Ruby 2.0

Знаменитый Мэтт Аимонетти (Matt Aimonetti) на очередной встрече San Diego's Ruby Community выступил с докладом "Intro to Ruby 2.0".

Ссылки:

P.S. Рекомендую подписаться на SD Ruby Podcast, потому что там очень много интересных выступлений.

Источник: rubyflow.ru

Новые релизы Ruby

В один день вышло сразу несколько резилов - Ruby 2.0.0-p195, Ruby 2.0.0-p426 и Ruby 2.0.0-p429.

Лучше всего использовать последний релиз - Ruby 2.0.0-p429, котором исправлена уязвимость в безопасности CVE-2013-2065, устранено много багов и улучшена документация.

Вскоре по этого вышел JRuby 1.7.4, принося с собой большое число исправлений и улучшений.

Источник: rubyflow.ru

Yandex.Webmaster API wrapper

Всем привет.

Вчера наконец-то доделал первоначальный функционал для своего джема. Все подробности и документацию можно посмотреть вот тут:

https://github.com/igor-alexandrov/yandex-webmaster

Также написал пост в свой блог по этому поводу (в конце поста есть бонус, который будет интересен не только тем, кто использует Вебмастер):

http://igor-alexandrov.github.io/blog/2013/05/13/yandex-webmaster-gem-and-something-more/

Жду отзывов и пожеланий.

Источник: rubyflow.ru

Rails 4.0.0rc1

Всем привет, Христос воскрес!
Несколько дней назад вышел Rails версии 4.0.0 RC1. Что-то в русскоязычном сообществе я пока не видел новости об этом, решил порадовать тех, кто еще не в курсе.

Приятная цитата из новости:

# We expect that the final version could drop
# in as little as 3-4 weeks.

Всех с пасхой!

Источник: rubyflow.ru

Парсинг CSV используя заголовок

Небольшая заметка о том как можно пропарсить CSV, используя заголовок - http://railsguides.net/2013/04/29/parse-csv-with-column-names

Источник: rubyflow.ru

RDot — диаграммы классов

Хочу представить вашему вниманю небольшую программку, формирующую .dot-файл (это формат данных, используемый пакетом GraphViz), показывающий связи между классами и модулями Ruby.

Показываются:

  • наследование,
  • включение модулей (include),
  • расширение (extend),
  • вложенность пространства имен.

В «узлах» графа отображается не только название, но и информация о содержимом — константы, атрибуты и методы. Всё это настраивается параметрами командной строки (или в конфигурационном файле) — что показывать, что скрывать, и какими цветами рисовать.

Ключевой момент — RDot не парсит исходные файлы, а загружает как есть и потом анализирует, что позволяет отобразить динамически созданные классы и связи между ними.

Небольшой пример:

alt text

Источник: rubyflow.ru

Petrovich - гем для склонения падежей русских имён, фамилий и отчеств

Раз уж пошла такая пьянка (смотрите предыдущий пост на rubyflow), то мы решили представить и свою, похожую разработку - гем petrovich.

Пример использования:

# Указание пола снижает количество отказов
p = Petrovich.new(:male)
p.lastname('Иванов', :dative)      # => Иванову
p.firstname('Пётр', :dative)       # => Петру
p.middlename('Сергеевич', :dative) # => Сергеевичу

Так же можно подмешать специальный миксин в любой класс, который создаст методы для склонения по падежам, на основе существующих методов. Эти методы вы указываете при помощи простого DSL. Выглядит это так:

class User < ActiveRecord::Base
  include Petrovich::Extension

  petrovich :firstname  => :my_firstname,
            :middlename => :my_middlename,
            :lastname   => :my_lastname,
            :gender     => :my_gender

  def my_firstname
    'Пётр'
  end

  def my_middlename
    'Петрович'
  end

  def my_lastname
    'Петренко'
  end

  # Если пол не был указан, используется автоматическое определение
  # пола на основе отчества. Если отчество также не было указано,
  # пытаемся определить правильное склонение на основе файла правил.
  def my_gender
    :male # :male, :female или :both
  end
end

А используется следующим образом:

# Получаем имя в дательном падеже
user = User.new
user.my_firstname         # => Пётр

user.my_firstname_dative  # => Петру
user.my_middlename_dative # => Петровичу
user.my_lastname_dative   # => Петренко

Надеемся, petrovich вам пригодится.

Источник: rubyflow.ru

Вход для пользователей