Как стать автором
Поиск
Написать публикацию
Обновить
1.47

Ruby *

Динамический высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Кеширование статики через expires и asset timestamps

Время на прочтение1 мин
Количество просмотров1.6K
Для ускорения загрузки страницы можно выставлять у статичных компонентов заголовок expires далеко в будущее.
Однако есть одна проблема: вам придётся менять название файла или путь к нему, чтобы пользователь узнал, что файл нужно перечитать.

В Rails есть полезная возможность assets timestamps, если честно, раньше не понимал зачем это нужно.

Разберёмся?

Читать дальше →

Ruby on Rails: исследуем волну

Время на прочтение1 мин
Количество просмотров1K
Начнём, естественно, с самого красноречивого графика. Означает он лишь одно: информациую о «Ruby on Rails» стали реже искать. Удивляться этому не стоит — такой период проходит любая технология, всплеск уже прошёл и с определённой увереностью можно сказать, что пик уже достигнут.

image
Далее о повседневном использовании и рынке труда

Перечень требований к коду Ruby on Rails приложения

Время на прочтение2 мин
Количество просмотров3.5K
На моей практике Ruby и Ruby on Rails оказались самым тяжелым в изучении сочетанием языка и фреймворка. Те люди, которые начинали программировать с C, C++ или Java, обнаружат в Ruby абсолютно другой (и более правильный!) подход к ОО-дизайну, а в Rails — много интересных решений, которые необходимо понять и осознать. И хотя изучение Ruby заняло у меня много времени (и я уверен, что еще очень многое предстоит узнать), я люблю эту технологию и не собираюсь возвращаться назад.

У меня есть опасение, что по мере роста популярности Ruby и Rails будет появляться все больше разрабочиков, изучающих Ruby через призму закоренелого Java-подобного мышления. С одной стороны это хорошо. Но с другой стороны это плохо тем, что некачественный код, когда он становится общедоступным, порождает еще больше некачественного кода.

Читать дальше →

Неделя на Рельсах (выпуск от 10 сентября 2008 г.)

Время на прочтение2 мин
Количество просмотров678
Добро пожаловать в пятый выпуск «Недели на рельсах», еженедельный отчёт о событиях в околорельсовом сообществе. Antonio Cangiano (автор идеи) был весьма занят, поэтому на этой неделе я решил его подменить.

Вы, скорее всего, уже слышали о выходе Rails 2.0.4 и Rails 2.1.1. Оба релиза — в основном исправляют ошибки, за подробностями отправляйтесь в списки изменений.

Читать дальше →

Создание привлекательных диаграмм

Время на прочтение4 мин
Количество просмотров1.8K
Проблема
Хотелось бы иметь возможность динамической генерации привлекательных диа­грамм на основе данных приложения.
Нам потребуется
  • ImageMagick. Эту библиотеку можно получить по адресу www.imagemagick.org.

  • Привязка Ruby к ImageMagick — RMagick. Устанавливается из gem-пакета rmagick. Настройка ImageMagick и RMagick иногда может вызывать небольшие затруднения. Перед установкой RMagick следует заглянуть в сборник самых распространенных вопросов и ответов по адресу rmagick.rubyforge.org/install-faq.html.Когда все получится, останется только радоваться.

  • Библиотека для построения диаграмм Джефри Грозенбака (Geoffrey Grosen-bach) Beautiful Gruff, которая устанавливается из gem-пакета gruff.

Читать дальше →

Реализация оперативного просмотра

Время на прочтение4 мин
Количество просмотров505
Проблема
Хотелось бы дать пользователям возможность оперативного просмотра данных в процессе редактирования, чтобы не получалось так, что после отправки из фор­мы данные появились в испорченном формате (когда речь идет, к примеру, о дневниковой записи, которую собираются выставить на всеобщее обозрение).

Читать дальше →

Создание сортируемого списка с перетаскиваемыми элементами

Время на прочтение7 мин
Количество просмотров2.1K
Проблема
В приложении есть модель со списком, который нужно отсортировать. Жела­тельно управлять порядком сортировки списка, находящегося в базе данных, и предоставить пользователям привлекательный, современный интерфейс с пе­ретаскиванием, позволяющий установить порядок следования элементов списка.

Читать дальше →

Автозаполнение текстового поля

Время на прочтение3 мин
Количество просмотров2.7K
Проблема
Вам наверняка приходилось пользоваться изящной работой элементов управ­ления, обладающих свойством автозаполнения. Вы точно знаете, стоит только приступить к вводу данных, как приложение еще до завершения ввода начнет ди­намический подбор соответствий. Это был самый впечатляющий писк моды в де­вяностых годах прошлого столетия.
Для нового, сногсшибательного приложения вполне естественно желание оформить стильный поиск.
Читать дальше →

Местное редактирование формы

Время на прочтение3 мин
Количество просмотров859
Проблема

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

Читать дальше →

Аутентификация в Rails — плагин jiff_auth

Время на прочтение3 мин
Количество просмотров654
Работая над рельсовым проектом мне, естественно, понадобилось сделать аутентификации пользователей. Монополией на это в Rails обладал плагин restful_authentication, который мне не понравился по нескольким причинам:
  • он генерирует много кода
  • он негибок в настройках
  • он сложно интегрируется в существующие модели и контроллеры (надо создавать с нуля)
  • к нему крайне невнятная документация
Исправить перечисленное и стало задачей плагина jiff_auth, который я решил закодить.
Ниже — небольшая инструкция по настройке и использованию.

Читать дальше →

Qt + Ruby = настройка в Linux и Windows

Время на прочтение3 мин
Количество просмотров11K
Привет всему сообществу. Сегодня напишу как настроить привязку qt и ruby в Linux и Windows.
Ruby — интерпретируемый язык высокого уровня для быстрого и удобного объектно-ориентированного программирования. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, «сборщиком мусора» и многими другими возможностями. Ruby близок по особенностям синтаксиса к языкам Перл и Эйфель, по объектно-ориентированному подходу к Smalltalk. Также некоторые черты языка взяты из Python, Лисп, Dylan и CLU. Подробнее тут

Trolltech Qt (произносится «кьют») — кросс-платформенный инструментарий разработки ПО на языке программирования C++.Подробнее тут
Читать дальше →

Заметки о Ruby. №1. [[: key,: value], [: key2,: value2]] --> {: key =>: value,: key2 =>: value2 }

Время на прочтение1 мин
Количество просмотров1.1K
Планирую начать очень короткие заметки о ruby.

Иногда нам нужно преобразовать структуру вида [[:key, :value], [:key2, :value2]] в
{ :key => :value, :key2 => :value2 }

Короткое решение:

Hash[[[:key, :value], [:key2, :value2]]]

К сожалению, в ruby 1.8.6 не работает. В 1.8.7 баг (?) исправили.

Обычное решение:

[[:key, :value], [:key2, :value2]].inject({}) { |hash, pair| hash[pair[0]] = pair[1]; hash }

Мегакороткое решение, а главное понятное и работает везде от Eugzol’а:

Hash[*[[:key, :value], [:key2, :value2]].flatten]

Ближайшие события

Помощь в отладке шаблонов на Rails

Время на прочтение1 мин
Количество просмотров465
Rails — отличный framework, но отладка приложений на нем, обычно не такое уж тривиальное действие. IDE заточенных под это нет, так что все делается вручную. Часто, отладка внутри View'ов основывается на <%= debug @переменная %>. Оказывается, есть плагин, который позволяет это дело облегчить. Называется он debug_view_helper и был создан с целью простового добавления debug информации к view шаблонам. Он позволяет просматривать:
  • Параметры реквеста
  • Переменные сессии
  • Flash-переменные
  • Переменные шаблонов


Он достаточно старый и устанавливается прямо из svn:
svn co www.realityforge.org/svn/code/debug-view-helper/trunk vendor/plugins/debug_view_helper


Читать дальше →

Фоновая обработка видео в Ruby on Rails

Время на прочтение4 мин
Количество просмотров2.7K
Допустим у вас есть сайт, на котором пользователи загружают видео, и это видео надо конвертировать в flv формат.
Делать это непосредственно после загрузки, в текущем рабочем потоке не хорошо, т.к. потоков этих ограниченное число, и при большой нагрузке сайт будет недоступен.
Будет гораздо лучше, если обработкой этих видео-файлов займется демон.
тонкости реализации демонов и потоков в ror

Сжатие JavaScript и CSS на Rails с помощью asset_packager

Время на прочтение2 мин
Количество просмотров609
Часто случается, что делая большой проект в конце концов выходит куча отдельных javascript'овых файлов вроде библиотек, плагинов к ним и прочих. Так же, переодически можно встретить и несколько CSS, которые в основном делаются для удобства восприятия. Так же, по-хорошему, все это дело снабжено рядом комментариев, чтоб потом хоть как-то в этом разобраться.
Благодаря тому, что на Rails development и production версии разделяются, с помощью плагина asset_packager можно наладить автоматический процесс сжатия всех js и всех css файлов в 2 файла с вырезанием всех комментариев.
Т.е. получится, что в development версии у вас будет нормально поддерживаимые скрипты и стили, а в production все будет объединино для ускорения загрузки (п.с. в основном браузеры не поддерживают параллельную загрузку js и css файлов).
Читать дальше →

Чат на рельсах

Время на прочтение4 мин
Количество просмотров8K
Сегодня мы с вами создадим приложение на Руби на Рельсах, он же Рейлс, он же РоР. (Ruby on Rails, RoR, Rails). Я для краткости буду употреблять выражения «рельсы», «рейлс» или «рор».

Приложение будет немного отличаться от большинства примеров для чайников, и будет сконцентрировано на демонстрации интергрированных в рельсы аяксовых библиотек для динамического обновления страницы и спецеэффектов. Что может быть для этого нагляднее, чем чат? Разве что биржевые котировки. Но мы всё же сделаем
нечто ужасное

Phusion Passenger 2.0 RC 1 and Ruby Enterprise Edition

Время на прочтение1 мин
Количество просмотров1.1K
Вот так вот тихо и незаметно зарелизились два(один точно =) замечательных продукта для рельсо-разработчиков.

Немного справки:
Phusion Passenger — модуль под апач, позволяющий пускать рельсовые приложения. Забудьте о Монгрелах =) Теперь выкатить рельсовое приложение не сложнее, чем пхпшное.

Ruby Enterprise Edition — редакция интерпретатора руби, которая понизит потребление памяти рельсовыми приложениями и увеличит скорость. Эту штуку я еще не успел сам попробовать, но постараюсь в ближайшее время.
Читаем и скачиваем

Ruby on Rails 2.1

Время на прочтение1 мин
Количество просмотров773
Приветствую всех рельсоводов и тех, кто ещё собирается ими стать.
Сегодня произошло знаменательное событие. Через шесть месяцев после выхода Рельс 2.0, наконец, вышла новая версия рельс — 2.1
Из нововведений стоит отметить:

Установить новые рельсы можно точно так же, как и всегда: gem install rails
Официальный анонс

Новое в Rails: named scopes

Время на прочтение1 мин
Количество просмотров1.2K
В Edge Rails появилась возможность определять именованые условия-фильтры для поиска:
class User < ActiveRecord::Base
named_scope :active, :conditions => {:active => true}
named_scope :inactive, :conditions => {:active => false}
named_scope :recent, lambda { { :conditions => ['created_at > ?', 1.week.ago] } }
end

Читать дальше →

Вклад авторов