td2sk の日記

技術メモとかゲームとか

Rails4の導入 その3 プロジェクト作成

rails new

前回導入したRails4を使い、プロジェクトを作成する。

# 下記コマンド実行中、以下の質問は y (or Enter) 
# Overwrite /home/note/workspace/pj/Gemfile?
bundle exec rails new . --skip-bundle

Gemfileの修正

Rails4のベータ版では、Gemfileの修正が必要になる。

# gem 'rails', '4.0.0' を、次行で置き換え
gem 'rails', github: 'rails'

# gem 'coffee-rails', '~> 4.0.0.beta' を、次行で置き換え
gem 'coffee-rails', github: 'rails/coffee-rails'

# gem 'sass-rails',   '~> 4.0.0.beta' を、次行で置き換え
gem 'sass-rails',  github: 'rails/sass-rails'

全ての置き換えが完了したら、bundle installを実行する。
その2同様、環境変数RUBY_VERSION_NAMEを指定すること。

# bundle install --path vendor/bundleを一度実行すれば
# 二回目からはpath指定は省略可能
$ bundle install

Railsの起動確認

動作確認のため、サーバーを起動してみる。
bundleで導入したバイナリには、bundle execでアクセスする。

$ bundle exec rails server

ブラウザから localhost:3000 にアクセスして
Welcome aboardが表示されることを確認する。

その4に続く

おまけ 置き換えの自動化

RailsのApplication Templateを使って、上記の書き換えを自動化できる。
各々のテンプレートに以下を追記する。

rename_pair = {
  'rails' => 'rails',
  'sass-rails' => 'rails/sass-rails',
  'coffee-rails' => 'rails/coffee-rails'}

rename_pair.each do |pkg_name, repository_name|
  gsub_file 'Gemfile', /^(\s*)gem '#{pkg_name}'.*$/, "\\1gem '#{pkg_name}', github: '#{repository_name}'"
end

これをapp_temp.rbなどとして保存し、railsに渡す。
この場合、skip-bundleは必要ない。

$ bundle exec rails new . -m app_temp.rb