Ruby on Rails

Михаил Алексеев Михаил Алексеев

16 Августа 2010 09:04

Вышел Ruby 1.9.1-p430

Этот релиз закрывает дыру в безопасности CVE-2010-0541 (XSS in WEBrick).


Всем, кто использует Ruby 1.9.1 рекомендуется обновиться до Ruby 1.9.1-p430. Подробнее..



http://feedproxy.google.com/~r/r...
Последние события
Сергей Алексеев и Михаил Алексеев вступили в группу.
Михаил Алексеев Михаил Алексеев

16 Августа 2010 09:04

Mongomatic

Это новая библиотека, позволяющая легко моделировать документы MongoDB в вашем приложении.


Установка:


<pre class="prettyprint">
[sudo] gem install mongomatic
</pre>

Более подробное описание и примеры кода вы найдете на официальном сайте Mongomatic



http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

14 Августа 2010 13:55

Трюки консоли Rails

Две отличные статьи о некоторых интересных командах консоли Rails.
Например, вы знали как вызвать предыдущую команду?


Вот как – с помощью “_”. Пример:


<pre class="prettyprint">

>> user.roles
=> [#<Role id: 1, name: "admin" etc, etc, etc...
>> _
=> [#<Role id: 1, name: "admin" etc, etc, etc...
>> (2 + 5 ) * (10 / 2)
=> 35
>> _
=> 35
</pre>

А как сделать короче вызов User.find_by_name('john').to_yaml?


Вот так:


<pre class="prettyprint">
>> user = User.find_by_name('john') # user whatever model you want
=> #<User id: 876, name: "john", email: "john@raflabs.com", etc, etc, etc...
>> puts user.to_yaml
>> y user
</pre>

Читайте о других возможностях в статьях My friend the Rails Console, Part 1 и My friend the Rails Console, Part 2



http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

10 Августа 2010 16:51

Получение случайной записи из MongoDB с помощью Ruby

В SQL получение случайно записи возможно при помощи чего-то типа “ORDER BY RAND()”.


В MongoBD не все так просто, но Эрик Любов (Eric Lubow) придумал одно решение:


<pre class="prettyprint">
@@mongodb = Mongo::Connection.new("localhost", 27017).db("test_db}")
@collection = @@mongodb["collection_name"]

@rand = Kernel.rand()
@random_record = @collection.find_one({ 'random' => { '$gte' => @rand } })
if @random_record.nil?
@random_record = @collection.find_one({ 'random' => { '$lte' => @rand } })
end
</pre>

Суть метода в том, что к коллекции добавляется специальный столбец (random), который хранит значение от 0 до 1.


После соединения с базой данных генерируется случайное число (от 0 до 1) и мы пытаемся получить документ со значением в поле random большим или равным этому числу. Если результат отрицательный, то берем документ со значением меньшим или равным случайному числу.


Больше деталей в статье Getting a Random Record From a MongoDB Collection



http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

10 Августа 2010 16:20

Ruby возглавляет десятку языков репозиториев GitHub

В десятке языков среди всех репозиториев Ruby более чем в два раза обгоняет идущих за ним JavaScript и Perl.



Ruby также самый популярный язык среди пользователей GitHub.


Другая статистика в статье GitHub Stats on Programming Languages



http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

10 Августа 2010 15:50

Мини-версия RCov своими руками

RCov — это “code coverage tool”. Обычно используется для определения отношения вашего кода к его тестам. Другими словами насколько тесты “покрывают” имеющийся код.


Аарон Паттерсон (Aaron Patterson) описывает пример создания подобного инструмента с помощью Ruby 1.9 и подставляющейся с ним библиотеки coverage. Подробнее в статье Writing a Code Coverage Tool with Ruby 1.9



http://feedproxy.google.com/~r/r...
Александр Воробьев Александр Воробьев

6 Августа 2010 01:57

Ruby on Rails / Как быть с HTML-письмами?

Недавно столкнулся с задачей по верстке HTML-писем. Как известно, многие почтовые клиенты, в том числе и Gmail игнорируют css-классы и содержимое тега style, ни говоря уже о подключении внешних CSS-файлов. Поэтому обычной практикой при верстке HTML-писем является использование inline-стилей. Если делать это самостоятельно, то шаблон письма очень быстро превращается в кашу, поддерживать и расширять которую очень сложно. В связи с чем rails-разработчики используют различные плагины, которые позволяют «встроить» css-класс в аттрибут style.

http://habrahabr.ru/blogs/ror/10...
Михаил Алексеев Михаил Алексеев

5 Августа 2010 11:03

Сказ о том, как использовать "and" и "or"

Встречал много статей на эту тему, но эта мне показалась самой понятной и простой.


Если вам интересно в чем разница между “and” и “&&”, “or” и “||”, а также о том, в каких случаях правильно употреблять эти операторы, то советую прочитать статьи Using “and” and “or” in Ruby и “and” and “or” are like backwards statement modifiers



http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

5 Августа 2010 11:03

О виртуализации и unix-инструментах для дата центра

Джон Лич (John Leach), со-основатель и технический директор Brightbox, рассказывает как устроен и работает их дата центр.


Brightbox – это компания из Великобритании, предлагающая rails-хостинг.


И так, смотрим видео-интервью с Джоном – John Leach on Virtualization and Unix Tools for the Data Center



http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

2 Августа 2010 12:16

Devise + CanCan

Devise — система авторизации от Plataforma Tecnologia, очень гибкая и удобная. Исходный код и документацию можно найти в репозитории Devise на GitHub. Очень советую также посмотреть статьи в разделе Вики.


CanCan — хороший помощник в делах связанных с ролями и разделением прав. Его создатель – всем известный Райан Бейтс (Ryan Bates), хранит исходные коды CanCan на GitHub. Вы найдете там отличное описание и примеры.


А теперь, рассказ о том, как совместить эти два продукта и получить систему авторизации с использованием роле всего за 30 минут. Статья Rails Authentication with Devise and CanCan – Customizing Devise Controllers большая и подробнаяя, но главное интересная и полезная.



http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

2 Августа 2010 10:14

Бесплатные книги о Ruby/Raiis для начинающих

Аарон Самнер (Aaron Sumner) в своем блоге предложил список книг о Ruby/Rails, которые можно получить совершенно бесплатно. Среди них такая классика, как "Programming Ruby: The Pragmatic Programmer’s Guide " и “Why’s (Poignant) Guide to Ruby”. Отличный набор “прочитать за лето” для новичков. Весь список в статье Build a virtual bookshelf of free Ruby and Rails books



http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

28 Июля 2010 10:02

Mailman

Джонатан Руденберг (Jonathan Rudenberg) создал Mailman. Это микрофреймворк для обработки входящей почты. Поддерживается протоколы POP3 и Maildir, также работа с Rails.


Пример приложения, которое берет сообщения, поступившие на адрес поддержки (support@example.com) и добавляет в базу данных тикеты с текстами из этих писем.


<pre class="prettyprint">
# mailman_app.rb
require 'mailman'

Mailman.config.maildir = '~/Maildir'

Mailman::Application.new do
to 'support@example.org' do
Ticket.new_from_message(message)
end
end
</pre>

Подробности и примеры в репозитории Mailman на GitHub



http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

28 Июля 2010 09:31

Rails 3 + Ruby 1.9 и кодировки

Павел Чипига (@chipiga) в своем блоге делится опытом работы с кодировками при работе Rails 3 под Ruby 1.9.


Для все, кто столкнулся с “кодировочной проблемой” статья Rails 3 + Ruby 1.9 = борьба с кодировками



http://feedproxy.google.com/~r/r...
Александр Воробьев Александр Воробьев

27 Июля 2010 20:41

Ruby on Rails / [Ссылка] Rails 3.0: Release candidate!

Еще один шаг в сторону таких же, как и я сам: людей, которые гордо заявили, что не прикаснутся к новым рельсам, пока не выйдет релиз.



Собственно, ура–ура!

http://habrahabr.ru/blogs/ror/10...
Михаил Алексеев Михаил Алексеев

27 Июля 2010 17:43

Релиз кандидат Rails 3

Вышел релиз кандидат Rails 3. Мы плавно приближаемся к релизу :)


Установка как и раньше:


<pre class="prettyprint">
gem install rails --pre
</pre>

Как сообщается в пресс-релизе, значительно выросла производительность (исключая пока Arel, но работы тут ведутся). Кроме того, добавилась поддержка gem-библиотеки MySQL2, вернулись обратно shallow routes и другие фиксы.


Подробнее в официальном пресс-релизе Rails 3.0: Release candidate!



http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

26 Июля 2010 09:55

Лучшие примеры для Rails

Новый ресурс Rails Best Practices дает возможность каждому поделится своим опытом практического решения некоторый вопросов, возникающих при работе с Rails (например, проблема “N+1 запросов”, "что лучше перенести в модель?, “какой код перенести в хелпер?”).


Те, кому нечем пока поделится, могу просто читать публикации более опытных разработчиков.


Для каждой публикации можно оставлять комментарии, чтобы в №споре рождалась истина" :)


Ссылки:




http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

23 Июля 2010 17:08

Refinery CMS. Открытый код. Специально для малого бизнеса

RailsInside опубликовал статью о Refinery CMS. Здесь рассказывается об истории системы (сначала она была закрытым проектом Resolve Digital).


Основные возможности:



  • поддердка тем оформления

  • поддержка плагинов (по архитектуре сходная с плагинами для Rails)

  • WYSIWYG редактор для контента

  • локализация (сейчас 10 языков)

  • управление страницами

  • управление файлами и изображениями

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

  • оптимизация для поисковых систем


И все это управляется через простой и понятный UI.


Установка:


<pre class="prettyprint">
gem install refinerycms
refinerycms path/to/project
</pre>

Запуск:


<pre class="prettyprint">
cd path/to/project
ruby ./script/server
</pre>

Для заинтересовавшихся ссылки:




http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

22 Июля 2010 12:34

Тестирование рецептов Capistrano

Если вы используете RSpec для тестирования и заинтересованы в тестировании ваших рецептов для Capistrano, советую обратить внимание на capistrano-spec. Это набор хелперов и матчеров.


Установка [sudo] gem install capistrano-spec. Подробные примеры использования в readme проекта capistrano-spec на GitHub



http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

19 Июля 2010 10:56

Tolk + Google Translate

Tolk — это rails engine для организации совместной работы над локализацией приложения. Его разработал DHH.


Саймон Токумайн (Simon Tokumine) добавил в Tolk возможность получения переводов с помощью Google Translate.


Ссылки:




http://feedproxy.google.com/~r/r...
Михаил Алексеев Михаил Алексеев

16 Июля 2010 14:05

Juicer - сервис для обработки изображений

Новый сервис берет на себя работу по обрезке, изменению размера, пометке “водными знаками” и т.д, освобождая ресурсы вашего сервера для других задач.


Juicer разработан специально для работы с Ruby/Rails проектами (для остальных есть REST API).


Среди тарифных планов есть и бесплатный.


Заинтересованных лиц просят пройти по адресу www.uploadjuicer.com



http://feedproxy.google.com/~r/r...
1 2