僕のYak Shavingは終わらない

車輪の再発明をやめたらそこには壮大なYakの群れが

WEB+DB No.73の記事よりRails 4に入門する 〜その1〜

WEB+DB PRESS Vol.73

WEB+DB PRESS Vol.73

  • 作者: 設樂洋爾,白土慧,奥野幹也,佐藤鉄平,後藤秀宣,mala,中島聡,堤智代,森田創,A-Listers,はまちや2,大和田純,松田明,後藤大輔,ひろせまさあき,小林篤,近藤宇智朗,まかまか般若波羅蜜,Mr. O,WEB+DB PRESS編集部
  • 出版社/メーカー: 技術評論社
  • 発売日: 2013/02/23
  • メディア: 大型本
  • 購入: 12人 クリック: 131回
  • この商品を含むブログ (3件) を見る

ということでずっとこれのRails4の特集を今更読んでて最後6章のチュートリアルまできたので再現してみます。
ちなみにMacでやってます。

Ruby 2.0のインストール

rbenvがすでに入っている前提です。
参考:rbenvとruby-buildのVersionを上げて最新のRubyをインストールする - 僕の車輪の再発明

# gitでrbenvをインストールしている場合
cd ~/.rbenv
git pull
# ruby-buildをアップデートしないとRuby 2.0がリストに出てこない
cd ~/.rbenv/plugins/ruby-build
git pull
rbenv install 2.0.0-p0
rbenv global 2.0.0-p0
rbenv rehash

これで入ったはず。

» ruby -v
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin11.4.2]

よし。

もしrbenvのインストールからの人はググってインストールしてください。
ちなみにMacの方は以下の記事が参考になると思います。
Homebrew+rbenvでRuby 2.0.0-p0インストール - 130単位

Rails 4.0のインストール

gem i bundle
gem i rails

で行くかなと思ったら

rdoc's executable "rdoc" conflicts with /Users/{MY_USER_NAME}/.rbenv/versions/2.0.0-p0/bin/rdoc
Overwrite the executable? [yN]  ERROR:  Error installing rails:
	"rdoc" from rdoc conflicts with /Users/{MY_USER_NAME}/.rbenv/versions/2.0.0-p0/bin/rdoc

あれ止まってる。適当にEnter連打してたので、まあそうなりますよね。

もっかい

» gem i rails
rdoc's executable "rdoc" conflicts with /Users/{MY_USER_NAME}/.rbenv/versions/2.0.0-p0/bin/rdoc
Overwrite the executable? [yN]  y
rdoc's executable "ri" conflicts with /Users/{MY_USER_NAME}/.rbenv/versions/2.0.0-p0/bin/ri
Overwrite the executable? [yN]  y
Depending on your version of ruby, you may need to install ruby rdoc/ri data:

<= 1.8.6 : unsupported
 = 1.8.7 : gem install rdoc-data; rdoc-data --install
 = 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
Successfully installed rdoc-3.12.2
Fetching: railties-3.2.13.gem (100%)
Successfully installed railties-3.2.13
Fetching: rails-3.2.13.gem (100%)
Successfully installed rails-3.2.13
Parsing documentation for rdoc-3.12.2
Installing ri documentation for rdoc-3.12.2
Parsing documentation for railties-3.2.13
Installing ri documentation for railties-3.2.13
Parsing documentation for rails-3.2.13
Installing ri documentation for rails-3.2.13
Done installing documentation for rdoc, railties, rails (6 sec).
3 gems installed

お入った!?

» rails --version
Rails 3.2.13

っておいー!って思ったら上でも堂々と3.2になってた。

ということで本書の注釈にあるように--preで入れます。

» gem i rails --pre
ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: rails requires activesupport (= 4.0.0.beta1), actionpack (= 4.0.0.beta1), activerecord (= 4.0.0.beta1), actionmailer (= 4.0.0.beta1), railties (= 4.0.0.beta1), sprockets-rails (~> 2.0.0.rc3)

それくらい勝手にいれてよ(^q^)

って思ったら書き方変えたらいけるみたい
参考:Mac 10.8 に Rails 4 をインストール | 書きかけの技術書+

» gem install rails --version 4.0.0.beta1
<省略>
Installing ri documentation for rails-4.0.0.beta1 ←これが無駄に長い・・・
Done installing documentation for i18n, atomic, thread_safe, activesupport, builder, rack, actionpack, activemodel, arel, activerecord-deprecated_finders, activerecord, actionmailer, railties, sprockets, sprockets-rails, rails (429 sec).
16 gems installed

終わったぁぁぁぁぁぁーーー!!!長かったぁぁぁーーー!!!
(長いの嫌な人はgem install rails --version=4.0.0.beta1 --no-ri --no-rdocとかがよさそうですね)

バージョンは

» rails --version
Rails 4.0.0.beta1

完璧!

アプリケーションの作成

rails new tetsuzine

bundle installも同時に走ったけど以外に速かったです!

スケルトンの確認

» tree -L 2
.
├── Gemfile
├── Gemfile.lock
├── README.rdoc
├── Rakefile
├── app
│   ├── assets
│   ├── controllers
│   ├── helpers
│   ├── mailers
│   ├── models
│   └── views
├── bin ←コマンドが置いてある!
│   ├── bundle
│   ├── rails
│   └── rake
├── config
│   ├── application.rb
│   ├── boot.rb
│   ├── database.yml
│   ├── environment.rb
│   ├── environments
│   ├── initializers
│   ├── locales
│   └── routes.rb
├── config.ru
├── db
│   └── seeds.rb
├── lib
│   ├── assets
│   └── tasks
├── log
├── public
│   ├── 404.html
│   ├── 422.html
│   ├── 500.html
│   ├── favicon.ico
│   └── robots.txt
├── test
│   ├── controllers
│   ├── fixtures
│   ├── helpers
│   ├── integration
│   ├── mailers
│   ├── models
│   └── test_helper.rb
├── tmp
│   └── cache
└── vendor
    └── assets

29 directories, 20 files

ちょっと変わったみたいです。binの登場とか、testフィルだが整理されていたり、controllerとmodelの下にconcernsってのも追加されたようです。

Spring

開発速度改善のために、Springっていうプロセスを常駐されておいて2回目以降のRailsコマンドを高速化できるやつを入れます。

gem i spring

試してみます。

» time spring rake about
spring rake about  0.12s user 0.05s system 7% cpu 2.228 total
» time spring rake about
spring rake about  0.12s user 0.05s system 30% cpu 0.538 total

確かにtotalが4倍くらい速いですね!

長くなったので今回はここまで!

続きは今日の夜か明日以降かな!!