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
Keep views simple
Some times you need complex logic in views to filter some fields from unregistered users and show default message for blank fields. This case instead of tons if statements you can use nifty helpers with the power of ruby blocks. Like this:
Как заставить PostgreSQL правильно сортировать UTF8 кириллицу на Mac OS X
Как известно, PostgreSQL очень капризен к окружению в котором он работает. Он использует настройки окружения для определения правил сортировки, преобразования в строчные и заглавные буквы, работы с датами и т.д. Точнее эти настройки он высасывает из окружения в момент инициализации кластера, и в дальнейшем они уже не имеют значения.
Bundler on heroku and without feature
Since bundler 1.0 release it recommends include Gemfile.lock into repository to force exactly the same gem environment for all users. Good idea, but here is one problem occurs - we can't use Gemfile hacks like this anymore:
[cc lang=ruby]
if RUBY_PLATFORM =~ /darwin/
gem "autotest-fsevent"
end
[/cc]
This case on other platform bundler will detect what gem "autotest-fsevent" is not present in Gemfile but presents in Gemfile.lock and fails.
How to run Rails 3 rc on heroku
Heroku is awesome! You can easily run Rails 3 Beta on Heroku without any hacks. But if you want run Rails 3 RC where will be a problem: Rails 3.0.0.rc depends on Bundler 1.0.0.rc but Heroku now supports only Bundler 0.9.26. So you can't run app based on Rails 3.0.0.rc gem easily on Heroku now.
Rails 3 + Ruby 1.9 = борьба с кодировками
Посвящается Rails 3.0.0.rc
Недавно пробовал покатать Rails EDGE на Ruby 1.9.2-head и конечно же нарвался на проблему с кодировками. Однако их оказалось не так много как я предполагал.
Для начала надо убедиться что в файле config/application.rb прописано config.encoding = "utf-8". Это позволяет сэкономить нервы с кодировкой шаблонов. Но именно шаблонов, для моделей и контроллеров надо указывать специальный комментарий вначале файла:
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:
- 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]
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 это выглядит так:
RVM и Rails 3
RVM (Ruby Version Manager) - это замечательный способ иметь несколько версий ruby на одной машине без головной боли. Кроме того у него есть отличная фича gemset, которая позволяет иметь несколько невзаимосвязанных наборов гемов в пределах одной версии руби.
В свете нестабильности и грядущих больших перемен в мире ruby и rails это очень востребовано. Очень удобно использовать rvm для экспериментов с rails 3 в окружении различных версий руби. Для этого достаточно сделать следующее:
[cc lang="bash" width="700"]
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
[/cc]
Получить HTML без запуска сервера
Нашел замечательный способ получить содержимое HTML страницы проекта на рельсах из консоли без запуска сервера:
[cc lang="ruby"]
require 'config/environment'
require 'console_app'
app.get '/events'
body = app.response.body
[/cc]
Надо будет запомнить.