Advanced Capistrano usage

Posted by Dmytro Shteflyuk on under Development (1,292 views)

Capistrano — the dead simple deployment tool

One of the most important parts of a development process is an application deployment. There are many tools developed to make this process easy and painless: from the simple inploy to a complex all-in-one chef-based solutions. My tool of choice is Capistrano, simple and incredibly flexible piece of software. Today I’m going to talk about some advanced Capistrano usage scenarios.

Read the rest of entry »

Шпаргалки по Ruby on Rails и всему с ним связанному

Posted by Dmytro Shteflyuk on under Ruby & Rails · English (38,000 views)

В сети можно найти несколько шпаргалок по Ruby on Rails и связанным технологиям. Я решил собрать их все (или почти все) в одной заметке, чтобы не растерять. Все они доступны в виде полноцветных PDF или PNG файлов.

Read the rest of entry »

Гибкое конфигурирование приложения на Ruby on Rails

Posted by Dmytro Shteflyuk on under Ruby & Rails · English (32,722 views)

В моем текущем проекте на Ruby on Rails нужно хранить конфигурацию приложения. Я нашел несколько подходов к решению этой задачи: плагин AppConfig, несколько методов, описанных на странице Wiki HowtoAddYourOwnConfigInfo, но ни один из них не выглядит “похожим на конфигурационный файл”. Мы с другом, Алексеем Ковыриным, исследовали все, и решили использовать YAML-файл. Идеальной конфигурацией, как мне кажется, является следующий файл:

1
2
3
4
5
6
7
8
9
10
11
span class="re0"> common:
 support_email: admin@myhost.com
 root_url: myhost.com
 photos_max_number: 6

production:
 email_exceptions: true

development:
 root_url: localhost:3000
 photos_max_number: 10

В этом примере можно увидеть три раздела: common используется как базовая конфигурация для всех окружений, production и development – настройки, специфичные для окружения. Возможными разделами являются production, development и testing, а также любые другие пользовательские имена окружений. Я разместил этот файл в config/config.yml и добавил следующий код в config/environment.rb:

1
2
3
4
5
6
7
require 'ostruct'
require 'yaml'

config = OpenStruct.new(YAML.load_file("#{RAILS_ROOT}/config/config.yml"))
env_config = config.send(RAILS_ENV)
config.common.update(env_config) unless env_config.nil?
::AppConfig = OpenStruct.new(config.common)

Теперь я могу использовать конструкции вида AppConfig.support_email и AppConfig.root_url. Похоже на то, что мои конфигурационные файлы соответствуют принципу DRY, насколько это возможно :-)

Обновление Apache до версии 2.2 в Debian

Posted by Dmytro Shteflyuk on under Debian, Ruby & Rails · English (31,641 views)

Хорошие новости, парни! Apache 2.2 уже в unstable. Я был очень удивлен, когда попытался сделать apt-get install apache2-utils, и он предложил мне удалить apache2 и установить заново :-) Я решил установить новую версию и потестировать rails с Apache2, mod_proxy_balancing и mongrel. В этой заметке я опишу мои приключения (или злоключения?)

Read the rest of entry »