Программирование на Ruby - Новости
Где хранить сложную логику?
пт, 03/02/2012 - 17:39 — spine
Как часто у вас возникало ощущение, что не понимаешь куда "разместить" сложную бизнес-логику?
В контроллер? Может в модель, потому что контроллер должен быть "skinny"?
Эрик Смит (Eric Smith) из 8th Light имеет свое, на мой взгляд отличное, решение этого вопроса. В статье он не только показывает как просто пойти ложным путем при усложнении логики, но и дает рекомендации по исправлению ситуации.
Читайте ""
imperavi-rails - это mountable engine для rails 3.1+, который добавляет редактор Imperavi в приложение
чт, 02/02/2012 - 22:43 — spine
Всем привет! Все наверное видели отличненький визуальный редактор Imperavi от компании Imperavi? :) Если нет, то можно посмотреть здесь
Так вот, я организовал репозиторий и пытаюсь сделать этот редактор удобным для использования в Rails. Первая ласточка уже есть:
Нужно некоторые вещи довести до ума, написать тесты и прочее. Но - оно уже работает. Можно с осторожностью пользоваться.
Кто заинтересовался и кому надоело прикручивание tinymce и прочих редакторов в свои приложения - добро пожаловать в проект, становитесь контрибуторами, предлагайте идеи, устанавливайте редактор в свои приложения и просто делитесь мнениями.
Я открыт для предложений и обсуждения.
Как правильно скачивать большие файлы с помощью Ruby?
пн, 30/01/2012 - 10:53 — spine
В случаях, когда получаемый файл имеет размеры превышающие размеры доступной оперативной памяти, нужно записывать получаемый поток данных сразу на диск.
В коде это выглядит так:
Net::HTTP.start("someurl_without_the_protocol.com") do |http|
begin
file = open("/path/to/file.mov", 'wb')
http.request_get('/' + URI.encode("file.mov")) do |response|
response.read_body do |segment|
file.write(segment)
end
end
ensure
file.close
end
end
Пример кода и совет из статьи ""
Ruby on Rails Google+
пт, 27/01/2012 - 17:17 — spineПять "скрытых" возможностей Rails 3.2
пт, 27/01/2012 - 13:08 — spine- "умный" content_tag_for,
- "умный" генератор миграций,
- гибкая обработка исключений,
- возможность управлять путями поиска паршалов,
- возвращение сообщений в логе о сработавших фильтрах.
Это были пять возможностей по версии Жозе Валима (José Valim), автора книги "".
Читайте о деталях эти возможностей в статье "". Кстати, рекомендую также смотреть комментарии к этой статье.
Rails 3.2.1
пт, 27/01/2012 - 13:00 — spineВышел Rails 3.2.0
пн, 23/01/2012 - 10:57 — spine
Тройное "Ура"! :) Новая версия Rails вышла 20 января.
Новое:
- значительно ускорилась работа в development-режиме,
- быстрее разбирается путь (route), благодаря новой ,
- возможность просмотреть план запроса, созданного ARel,
- возможность отмечать тегами записи лога,
- Active Record Store.
Читайте официальный пресс-релиз .
Рекомендации по обновлению до Rails 3.2.0 можно найти в ""
cucumber-notify gem
пт, 20/01/2012 - 18:51 — spine
Говорят, на Клондайке больше всех зарабатывали продавцы лопат, тазов и сит. Я подумал, и решил при здешней рубиновой жиле поделиться если не лопатами, то хотя бы отвертками собственного изготовления.
Сегодняшний нанотул -- гемчик для показывания посредством libnotify аутотест-нотификаций от Cucumber-а: . Гем собран из исходников от . Я долгое время пользовался исходным вариантом, пока мне не надоело всякий раз прикручивать биб-ку руками, и тогда я собрал гем.
Инструкции:
-
Ставим изделие:
$ gem install cucumber-notify -
испрашиваем его в своем .autotest:
require 'rubygems'
require 'cucumber-notify' -
Гоняем тесты и любуемся мордашкой.
Пока все, прошу любить и жаловаться!
Bundler: идея условий в Gemfile
пт, 20/01/2012 - 11:13 — spine
Интересная статья в блоге команды , разработчиков 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
Больше деталей в статье .
Кстати, высказать свое мнение и/или поддержать идею можно в комментариях к соответствующему тикету -
Официальный пресс-релиз технической конференции .тостер {ruby}
чт, 19/01/2012 - 11:28 — spine
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, использованию сторонних продуктов и платформ для быстрого и эффективного создания программных продуктов.
Контакты:
+7 (495) 628-27-04
Представлен Saint, инструмент для гипер-быстрого развёртывания полноценных бэкенд интерфейсов
чт, 19/01/2012 - 00:00 — spine
Основная цель Saint - максимально упростить управление контентом определённых табиц БД.
Saint позволяет создавать любые HTML поля на чистом Ruby, поддерживает любые типы ассоцирования таблиц, комплексные фильтры,
встроенный FileManager и другие "вкусности".
Вот например какой интерфейс можно построить ценной всего в 100(сто) строк кода:
А тут
Ниже приведён пример развёртывания админ интерфейса "в два клика".
Для этого понадобится Ruby 1.9.2 (или выше) и коннект к любому SQL серверу
из списка поддерживаемых -ом (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 построен на основе ,
так что создаём приложение, монтируем в неё Saint интерфейс и запускаем:
app = Presto::App.new
app.mount Page
app.run
Данный интерфейс является демонстративно тривиальным, и позволят лишь создавать / редактировать / удалять объекты лишь одной таблицы БД.
Но добавлять новые таблицы довольно просто и легко, так что можно довольно быстро построить интерфейс определённой сложности.
Благодарю за внимание.
