Как стать автором
Обновить

CodingDead — события, технологии и новости Ruby/Rails/Javascript сообщества

Время на прочтение1 мин
Количество просмотров4.2K


Чуть больше года назад мы открыли информационный поток на Google+ посвященный Ruby/Rails. Не смотря на разные отзывы в духе «а давайте здесь рекламировать группы Вконтакте» и скромный +1 посту, к сообществу присоединилось более 500 разработчиков, которые и по сей день получают (более или менее регулярно) новости, ссылки и пищу для размышлений.
Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии14

RubyMine 5.4 готов к выходу Rails 4

Время на прочтение1 мин
Количество просмотров8.2K
Мы рады сообщить о том, что новая версия RubyMine, интегрированной среды разработки для Ruby on Rails, доступна для скачивания.

Несмотря на то, что прошло всего два месяца с момента выхода RubyMine 5, мы готовы поделиться новым функционалом и надеемся, что наши пользователи будут рады новым возможностям.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии7

CRUD-приложение на Ext JS и Ruby on Rails за 7 минут

Время на прочтение5 мин
Количество просмотров22K
Это обновленная версия устаревшего поста.

Этот пост покажет вам простые шаги по созданию менеджера задач TODO с использованием Ext JS, Ruby on Rails и Netzke. Это займет у вас приблизительно 7 минут, и если вам заранее любопытно, стоит ли оно того, загляните прямиком в секцию «Обсуждаем результаты» (кстати, самую большую). Наша цель заключается в создании веб-приложения которое позволит нам добавлять, редактировать и удалять задачи TODO, так же как и помечать их как завершенные. В дополнение к этому вы сможете сортировать задачи, делать поиск по ним, редактировать несколько задач одновременно — и это еще не все. Если хотите, засекайте время на секундомере — и давайте приступим.



Читать дальше →
Всего голосов 47: ↑35 и ↓12+23
Комментарии42

Срочно обновляемся до Ruby on Rails 3.2.12, 3.1.11 и 2.3.17 во благо собственных нервов

Время на прочтение1 мин
Количество просмотров11K


Доброго времени суток, дорогой читатель. Надеюсь, что ты читаешь этот короткий пост за своим утренним кофе, и тебе не пришлось творить экстренный деплой посреди ночи. Иначе — соболезную, и предлагаю тебе обновить свои Ruby on Rails приложения прямо сейчас.
Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии15

Установка и настройка Redmine 1.3.0 на Windows XP SP2 / Windows 7

Время на прочтение4 мин
Количество просмотров15K

Знакомство с Ruby on Rails (RoR)


В моей повседневной жизни возникла потребность использовать веб приложение для управления проектами, Redmine. Так как на своем домашнем ПК я использую ОС Windows XP SP2, предполагал ряд проблем с установкой и настройкой Redmine. В общем то так оно и получилось.

Убив от 5 до 6 часов на поиск документации по установке и исправлении ошибок, у меня все таки получилось увидеть в своем браузере интерфейс Redmine *СЧАСТЬЕ*.

В статье я постараюсь рассказать вам о установке и настройки всех необходимых компонентов для использования Redmine на ОС Windows XP SP2 / Windows 7. Начнем с терминов и названий.
Читать дальше →
Всего голосов 22: ↑5 и ↓17-12
Комментарии17

Изучая Rails (ну, и Ruby)

Время на прочтение8 мин
Количество просмотров45K
Я знаю PHP. Не просто знаю, а действительно знаю. Не только синтаксис, или идиомы и особенности, но еще и почему — почему что-то работает именно так как оно работает, понимаете, под капотом. И скорее всего я тем или иным образом принимал участие в принятии того или иного решения. Все таки, тринадцать лет с языком — это долгий срок. Но я работал не только с PHP.

Читать дальше →
Всего голосов 73: ↑53 и ↓20+33
Комментарии53

rake setup: Конфигурация окружения для работы проекта на Ruby On Rails

Время на прочтение4 мин
Количество просмотров10K
Доброго времени суток!

Перечитывая блог Signals Vs Noise я наткнулся на интересную статью

В ней рекомендовали создать rake задачу, которая полностью подготовит ваше приложение к разработке после клонирование из репозитория.

> `rake setup`

> All our apps has a rake setup task that’ll run bundler,
> create the databases, import seeds, and install any auxiliary
> software (little these days) or do any other setup. So when you git
> clone a new app, you know that “rake setup” will take care of you.

Я расскажу о том, как сделать подобную задачу в Ruby On Rails приложении.
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии0

Ruby on Rails и Nginx: эффективно отдаем большие файлы

Время на прочтение2 мин
Количество просмотров10K
В этом посте я расскажу, как правильно настроить Nginx для максимально эффективной отдачи больших файлов из вашего rails приложения. К своему удивлению, на русском языке я такой информации не нашел. Есть статьи про использование X-Accel-Redirect совместно с php, а вот чтобы про рельсы да на родном языке что-то не густо… Вобщем, постараюсь восполнить этот пробел.

Задача


Итак, исходные данные следующие:
  • мы используем Ruby on Rails, запросы пользователей проходят через Nginx;
  • нам нужно отдавать большие файлы;
  • файлы должны быть недоступны для прямого скачивания, решение об отдаче файла принимает rails приложение.

Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии12

Узнайте бандлер получше

Время на прочтение5 мин
Количество просмотров16K
Бандлер оказался замечательным средством установки и отслеживания джемов, которое так нужно каждому руби проекту настолько, что почти каждый проект использует его. Однако, несмотря на его повсеместность, большинство пользователей не знают о встроенных средствах и помощниках бандлера. В попытке повысить осведомленность (и производительность Руби разработчиков), я собираюсь рассказать вам о них.

Читать дальше →
Всего голосов 58: ↑52 и ↓6+46
Комментарии11

Тонкости Rails 4 — Thread-Safety

Время на прочтение7 мин
Количество просмотров24K


В Rails 4.0 по умолчанию будет включена опция config.threadsafe! и в данном уроке вы узнаете о том, что же она все-таки делает, как влияет на production и как вообще стоит вести себя с потоками.
Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии14

Ruby on Rails. Установка, настройка, начало работы

Время на прочтение7 мин
Количество просмотров112K

Зачем.


В этой маленькой статье, которую с удовольствием прочитал бы сам неделю назад, я попытался собрать все вещи, которые понадобились бы человеку, задумай он «с нуля» написать приложение на RoR. То есть не углубляясь ни в одну из областей, описать необходимый минимум действий, чтобы установить, настроить и написать своё первое приложение.Здесь собрано, как мне кажется, всё, что нужно и я надеюсь этот текст сэкономит кому-нибудь несколько часов поиска в интернете). Сам изучаю RoR вторую неделю, так что не судите строго).

Установка.


Просто и быстро ror ставится через rvm c rvm.io.

>\curl -L https://get.rvm.io | bash -s stable --rails --autolibs=enabled


Запустить rvm:

>source /Путь_к_домашней_директории*/.rvm/scripts/rvm

*$HOME в дальнейшем.
После этого в $HOME/.bash_profile должна появиться строчка:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*


и при каждом открытии консоли rvm будет подгружаться, но у меня этого не случилось — пришлось ещё в $HOME/bashrc прописывать:

. ~/.bash_profile


Теперь всё точно должно быть хорошо.
Устанавливаем нужную(скорее всего это будет самая последняя) версию руби (сколько их и в чём отличие можно посмотреть здесь -http://www.ruby-lang.org).
>rvm install 1.9.3

Проверка на успешность создания
>ruby -v

должна вернуть более подробную информацию, вроде
ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux].

В процессе установки я случайно установил несколько версий, что потом доставило некоторые неприятности). Посмотреть список установленных версий руби можно так:
>rvm list
Если версий несколько, то текущая будет помечена "=>", дефолтная — "*", а текущая и дефолтная — "=*". Поменять на нужную используемую версию можно так:
>rvm use ruby-1.9.2-p320 (любая нужная версия)

Чтобы поменять дефолтную версию руби пишем:
>rvm use ruby-1.9.2-p320 --default

Читать дальше →
Всего голосов 66: ↑35 и ↓31+4
Комментарии89

Используем потоки в Ruby

Время на прочтение6 мин
Количество просмотров27K
Многие Руби-разработчики игнорируют потоки (threads), хотя это очень полезный инструмент. В данной статье мы рассмотрим создание IO потоков в Руби и покажем как Руби справляется с потоками в которых происходит много вычислительных операций. Попробуем применить альтернативные имплементации Руби, а так же узнаем, каких результатов можно добиться при помощи модуля DRb. В конце статьи посмотрим, как эти принципы используются в различных серверах для приложений на Ruby on Rails.

IO потоки в Руби


Рассмотрим небольшой пример:

def call_remote(host)
  sleep 3 # симулируем долгий запрос к серверу
end

Если нам надо обратитьcя к двум серверам, например, чтобы очистить кэш, и мы дважды последовательно вызовем эту функцию:

call_remote 'host1/clear_caches'
call_remote 'host2/clear_caches'

то наша программа будет работать 6 секунд.

Мы можем ускорить исполнение программы, если будем использовать потоки, например, так:

threads = []

['host1', 'host2'].each do |host|
  threads << Thread.new do
    call_remote "#{host}/clear_caches"
  end
end

threads.each(&:join)

Мы создали два потока, в каждом потоке обратились к своему серверу и командами #join сказали, что главной программе (главному потоку) надо подождать их завершения. Теперь наша программа успешно выполняется в два раза быстрее, за 3 секунды.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии18

Быстрое разверытвание среды разработки для Ruby on Rails

Время на прочтение3 мин
Количество просмотров7.2K
Привет хабражители. Если вам надоело постоянно устанавливать на новых машинах с разными ОС одно и тоже rails окружение с десятками зависимостей и кучей пакетов, то предлагаю вам ознакомится с интересным решением от rails-core разработчиков. На вашей хост-машине нужно иметь лишь Vagrant и Virtual Box.
Читать дальше →
Всего голосов 12: ↑7 и ↓5+2
Комментарии5

ActiveRecord Hacks

Время на прочтение4 мин
Количество просмотров10K
Сегодня я поделюсь своим набором не всегда очевидных функций и возможностей Active Record, с которыми я столкнулся в процессе разработки Ruby on Rails приложений или нашел в чужих блогах.

Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии18

Разработка приложений на Ruby on Rails в Visual Studio

Время на прочтение3 мин
Количество просмотров20K
Речь сегодня пойдет о том, как разрабатывать и отлаживать приложения на всеми уже давно любимом фрэймворке Ruby on Rails. Для всех меня лично с первого дня знакомства с Rails привычно стало использование следующей связки:
— Ubuntu
— Rvm
— Gedit + terminal (в качестве среды разработки)
Но сегодня хотелось бы поговорить о разработке на рельсах именно под виндой Windows в лучшей объективно по моему мнению среде разработки на сегодняшний день MS Visual Studio. Кому интересно прошу под кат.
Читать дальше →
Всего голосов 23: ↑13 и ↓10+3
Комментарии37

Правила для разработчиков от Sandi Metz

Время на прочтение3 мин
Количество просмотров12K
В январе этого года, Sandi Metz представила свои правила для разработчиков в эфире подкаста Ruby Rogues. Примерно в это же время, я и моя команда начали новый проект. Эта статья описывает тот опыт, что мы получили, применяя эти правила к своему новому проекту.

Правила


  1. Классы не могут содержать больше чем 100 строк кода.
  2. Методы не могут быть длиннее чем 5 строк кода.
  3. Нельзя передавать больше 4 параметров в метод. Значения хэша также считаются параметрами.
  4. Контроллеры могут инстанциировать только один объект. Следовательно, представление может знать только об одной инстанс переменной и должно только слать сообщения этому объекту (@object.collaborator.value не допустим).

Читать дальше →
Всего голосов 54: ↑38 и ↓16+22
Комментарии47

Ruby: про email вообще и ради валидации без регекспов, в частности

Время на прочтение3 мин
Количество просмотров6.9K
image

Привет Хабр!

Немного наблюдений.



По предложенному вопросу пергамента исписано непозволительно много. Тем не менее, я бы хотел остановится на трех важных, но игнорируемых аттрибутах, свойственных email-у, с точки web-разработки.
Во первых email уникален, в отличии от никнейма, который, в половине случаев, занят кем-то до нас. Однако все еще встречаются сайты с логином по никнейму, который, для всех таких сайтов, ну никак не упомнить. Предлагаю использовать для логина только email.
Во вторых, часть разработчиков игнорирует type='email', когда JS валидаторы натравлены на это поле, и планшетные устройства переключают раскладку, что удобно.
В третьих, ради чего это статья, каждый год пишутся статьи вида «Почему плохо валидировать регекспом», что больше похоже на фетиш. Надеюсь гугл проиндексирует верно.

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

Решение... без регекспов
Всего голосов 16: ↑10 и ↓6+4
Комментарии31

RVM Autolibs: Автоматическое управление зависимостями и Ruby 2.0

Время на прочтение3 мин
Количество просмотров4.6K

Прошлый месяц ознаменован началом новой вехи для рубистов — релиз Ruby 2.0.0. Вместе с ним обновлённый RubyGems и новые зависимости, включая OpenSSL. Ранее RVM почти ничего не предпринимала для разрешения зависимостей, устанавливая вместо этого LibYAML, так как он был нужен для функционирования RubyGemsк. Ситуация изменилась с появлением OpenSSL, так как это является бОльшей зависимостью. Раньше для Ruby 2.0.0-rc RVM устанавливал OpenSSL. Однако компилирование OpenSSL не лёгкая задача, используя LibYAML.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии0

Разработка встраиваемого JavaScript приложения

Время на прочтение4 мин
Количество просмотров13K

Вместо вступления


Я хочу рассказать вам о некоторых трудностях, с которыми мы столкнулись при разработке встраиваемого JavaScript приложения, виджета комментариев "Комментатр".
В этой статье я опишу некоторые проблемы и тонкости разработки подобных приложений, а также предложу варианты их решения.
В качестве backend–решения мы используем приложение на Ruby on Rails, поэтому некоторые фрагменты этой статьи будут специфичны для Rails–окружения.

Комментатр состоит из двух проектов: API и виджета, который устанавливается на сайт клиента. Речь пойдет об их взаимодействии между собой и виджета с сайтом клиента. В основном общение виджета и API происходит посредством JSONP, который, как известно, поддерживает только GET–запросы. В связи с этим возникает первая сложность.

Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии24

Избавляемся от повторения кода с помощью DRY CRUD

Время на прочтение5 мин
Количество просмотров9.2K
Фреймворк Ruby on Rails меня просто очаровывает, но до недавнего времени некоторую сложность представляла из себя генерация CRUD контроллеров.

Почти всегда мне было необходимо реализовывать списки с сортировкой, фильтрацией и пагинацией, а стандартного способа этого достичь в рельсах я не обнаружил. Перепробовал несколько вариантов и ни один меня не удовлетворил:
  • стандартный генератор scaffold_controller — ничего подобного нет, CRUD с простейшим дизайном
  • nifty Scaffold — его разработка приостановлена, но все равно фильтрации и сортировки нет
  • гем для DataTable — не прижился, он обеспечивает только представление данных, а код для фильтрации и сортировки пришлось бы писать самому

Долгое время не удавалось найти ничего похожего на полюбившийся мне виджет CGridView из Yii framework. Уже почти смирился с необходимостью писать свой велосипед, но наткнулся на DRY CRUD и хочу поделится опытом его использования. Может кому-то он окажется полезным, а может кто-то подскажет еще более подходящий инструмент.
Далее
Всего голосов 14: ↑12 и ↓2+10
Комментарии4