rails3 アプリの骨組みづくり
まずは、rails コマンドでアプリの骨組みを作ってしまいます。
この時、オプションを特に指定しないと、デフォルトの設定のままできてしまうので、
各種オプションをつけてやります。
各種オプションってなんでしょう?
rails --help でヘルプを見てみるとこんな風に書かれています。
$rails --help 使い方: rails new APP_PATH [options] オプション: -r, [--ruby=PATH] # Ruby の実行パス # デフォルト: /home/shinsuke/.rvm/rubies/ruby-1.9.x/bin/ruby -d, [--database=DATABASE] # デフォルトで使う DB (オプション: mysql/oracle/postgresql/sqlite3/frontbase/ibm_db) # デフォルト: sqlite3 -O, [--skip-active-record] # Active Record 用ファイルをスキップします -T, [--skip-test-unit] # Test::Unit 用ファイルをスキップします -J, [--skip-prototype] # Prototype 用ファイルをスキップします -G, [--skip-git] # Git ignores と keeps をスキップします ランタイム オプション: -f, [--force] # すでにファイルが存在している場合、上書きします -p, [--pretend] # コマンドを実行しますが、何も作成しません -q, [--quiet] # rails コマンドのステータスを非表示にします -s, [--skip] # すでにファイルが存在している場合、作成をスキップします Rails オプション: -v, [--version] # Rails のバージョンを表示します -h, [--help] # ヘルプメッセージを表示します 概要: 'rails new' コマンドは新しい Rails アプリケーションの標準的な ディレクトリ構成と指定された設定ファイルを作成します。 例: rails new ~/Code/Ruby/weblog このコマンドは新しい Rails アプリのスケルトンを ~/Code/Ruby/weblog に作成します。 まずはじめに、自動的に作成された README ファイルを読んでみましょう。
今回は、mysql を使用することにし、また javascript ライブラリは prototype.js ではなく、 jQuery を使うことにします。
さらに、この記事のタイトル通り、test フレームワークは RSpec を用います。
ですので、使用するオプションは、"-d mysql", "-T", "-J" となります。
$rails new specapp -d mysql -T -J create create README create Rakefile create config.ru create .gitignore create Gemfile create app create app/controllers/application_controller.rb create app/helpers/application_helper.rb create app/mailers create app/models create app/views/layouts/application.html.erb create config create config/routes.rb create config/application.rb create config/environment.rb create config/environments create config/environments/development.rb create config/environments/production.rb create config/environments/test.rb create config/initializers create config/initializers/backtrace_silencers.rb create config/initializers/inflections.rb create config/initializers/mime_types.rb create config/initializers/secret_token.rb create config/initializers/session_store.rb create config/locales create config/locales/en.yml create config/boot.rb create config/database.yml create db create db/seeds.rb create doc create doc/README_FOR_APP create lib create lib/tasks create lib/tasks/.gitkeep create log create log/server.log create log/production.log create log/development.log create log/test.log create public create public/404.html create public/422.html create public/500.html create public/favicon.ico create public/index.html create public/robots.txt create public/images create public/images/rails.png create public/stylesheets create public/stylesheets/.gitkeep create public/javascripts create public/javascripts/.gitkeep create public/javascripts/application.js create script create script/rails create tmp create tmp/sessions create tmp/sockets create tmp/cache create tmp/pids create vendor/plugins create vendor/plugins/.gitkeep
こんな感じで、あらかた自動的にアプリが作成されてくれます。
RSpec2 の導入
RSpec2 の公式サイトはコチラ (http://relishapp.com/rspec) です。
このサイトのRSpec Rails 2.6 を読んでいきましょう。
とりあえず、 gem でインストールと書いてありますが、どうせ bundler 経由で gem を管理するので、サクっと Gemfile を編集します。
公式にも書かれているとおり、:development 環境と :test 環境の2つに rspec-rails をインストールすることにしています。
group :development, :test do gem 'rspec-rails', '~>2.4' end
わざわざ :development 環境が指定されているのは、 RSpec を起動するための rake コマンドで、いちいち RAILS_ENV="test" を付けるのを省力化するためです。
Gemfile の編集が終わったら、bundler 経由でインストールを済ませてしまいましょう。
$bundle update
最後に、RSpec 用ファイルの作成コマンドを実行しておしまいです。
$ruby script/rails generate rspec:install create .rspec create spec create spec/spec_helper.rb
これで、RSpec を動かすのに必要なファイルがそろいました。
Cucumber の導入
Cucumber の公式サイトはコチラ (http://cukes.info/) です。
rails 用のインストールドキュメントは、wiki から飛んだ、github の某ページにあります。
とりあえず、gem でインストールすればよさそうですが、この際、何でもかんでも bundler にやらせましょう。
(ちなみに、こうしておけば、大抵の gem の依存関係は解決できるはずです。cucumber install document の "Install new dependenciesもスキップできます。)
Gemfile に 1 行追加します。
group :development, :test do gem 'cucumber-rails' gem 'rspec-rails', '~>2.4' end
そしてインストールします。
$bundle update
次に、 RSpec の時と同じく cucumber 用のファイルを rails プロジェクトに追加します。
前もって --help でヘルプを読んでおくと、多分 RSpec を使うためのオプションなどを知っておくことができそうです。
$ruby script/rails generate cucumber:install --rspec create config/cucumber.yml create script/cucumber chmod script/cucumber create features/step_definitions create features/step_definitions/web_steps.rb create features/support create features/support/paths.rb create features/support/selectors.rb create features/support/env.rb exist lib/tasks create lib/tasks/cucumber.rake gsub config/database.yml gsub config/database.yml force config/database.yml
これで、ひと通りの導入はおしまいとなります。
それでは、いよいよ実装を行っていきましょう。