Заметки Ruby программиста Всякие полезные наработки

23Июн/101

Cross version Ruby debug with ruby-debug-wrapper

When you debuging Rails 3 application (which uses Bundler) and trying different ruby versions with RVM you have following problem: you should switch your Gemfile between ruby-debug and ruby-debug19 gems to work with 1.8 and 1.9 Rubies. ruby-debug-wrapper gem solves the problem.

Follow this steps:

  1. Install ruby-debug gem for each ruby version you will use. For example:
     # rvm use system
     # gem install ruby-debug
     # rvm use ree@rails3
     # gem install ruby-debug -- --with-ruby-include=$rvm_path/src/ree-1.8.7-2010.02/
     # rvm use ruby-1.9.2-head@rails3
     # gem install ruby-debug19 -- --with-ruby-include=$rvm_path/src/ruby-1.9.2-head/
13Июн/100

Ruby 1.9 + RVM + Ruby-Debug + Bundler

Как оказалось, установка отладчика ruby-debug для руби семейства 1.9 задачка не такая тривиальная, как кажется.

Во-первых, классический gem ruby-debug вообще не собирается под 1.9, но есть портированная версия, которая именуется ruby-debug19.

Во-вторых, ruby-debug19 тоже не заводится с полпинка. По умолчанию он ищет ruby19 где-то в недрах macports. А по-скольку этот способ установки руби нынче не в моде, то прийдется указать путь к сорцам руби явно. Например, для ruby 1.9.2 head установленного через rvm это выглядит так:

10Июн/100

RVM и Rails 3

RVM (Ruby Version Manager) - это замечательный способ иметь несколько версий ruby на одной машине без головной боли. Кроме того у него есть отличная фича gemset, которая позволяет иметь несколько невзаимосвязанных наборов гемов в пределах одной версии руби.

В свете нестабильности и грядущих больших перемен в мире ruby и rails это очень востребовано. Очень удобно использовать rvm для экспериментов с rails 3 в окружении различных версий руби. Для этого достаточно сделать следующее:

bash << ( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/ && git clone --depth 1 git://github.com/wayneeseguin/rvm.git && cd rvm && ./install
Метки записи: , , Читать полностью
8Июн/100

Получить HTML без запуска сервера

Нашел замечательный способ получить содержимое HTML страницы проекта на рельсах из консоли без запуска сервера:

require 'config/environment'
require 'console_app'

app.get '/events'
body = app.response.body

Надо будет запомнить.

Метки записи: , , Нет комментариев
5Июн/100

Нашел баг в Sequel

Недавно разбирался с замечательным e-commerce решением на ruby . Когда дело дошло до деплоя - решил попробовать heroku. Соответствующее расширение для адаптации Spree к "суровым реалиям" heroku безнадежно устарело, поэтому пришлось его переписать.

Все вроде получилось и заработало... Но вот засада: команда "heroku db:push" вдруг стала пропихивать на хост вопросительные знаки (?) вместо кириллических символов... Варианты решения проблемы путем явного указания кодировки не помогли.