Ruby Developer Notes Useful things

22Feb/121

Install ruby 1.9.3 with RVM and MacPorts

I have the following problem when i do just:

rvm install 1.9.3

It installs fine and works good except one bug during `cap deploy`:

/Users/pasha/.rvm/gems/ruby-1.9.3-p125@smartsourcing/gems/net-ssh-2.3.0/lib/net/ssh/buffer.rb:255: [BUG] Segmentation fault
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]

Here is similar ruby bug http://bugs.ruby-lang.org/issues/5559

27Jul/106

Rails 3 + Ruby 1.9 = борьба с кодировками

Посвящается Rails 3.0.0.rc

Недавно пробовал покатать Rails EDGE на Ruby 1.9.2-head и конечно же нарвался на проблему с кодировками. Однако их оказалось не так много как я предполагал.

Для начала надо убедиться что в файле config/application.rb прописано config.encoding = "utf-8". Это позволяет сэкономить нервы с кодировкой шаблонов. Но именно шаблонов, для моделей и контроллеров надо указывать специальный комментарий вначале файла:

23Jun/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:
    [cc lang="bash" width="670"]
    # 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/
    [/cc]
13Jun/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 это выглядит так: