@uents blog

Code wins arguments.

Rails3の開発環境構築あれこれ

今年はRubyに触れようと思って、ここ1カ月ほどRails3をちまちま触ってます。忘備録がてら開発環境の構築でやった事をあれこれ残してみます。

環境

  • Mac OS X 10.7.3 (Lion)
  • Ruby 1.4.8
  • RubyGems 1.3.6
  • SQLite3 3.7.1
  • Homebrew 0.8.1
  • Emacs 24.1 (Homebrewよりインストール)

Ruby/RubyGems/SQLite3は最初からMacに入っていたものです。

Rails3のインストール

% gem install rails
(関連パッケージがどさどさとインストールされる)

% rails -v
Rails 3.2.1
% which rails
/usr/bin/rails

/usr/binに入ってしまうのが若干微妙だけど。。

さっそくRailsアプリを作成してキックしてみます。

% rails new myapp
% cd myapp
% rails server

ブラウザでlocalhost:3000にアクセスして以下の画面が出ればOKです。

CoffeeScriptのインストール

元々はNode.js由来のCoffeeScriptですが、Ruby 3.1よりUI実装として、CoffeeScript+jQueryがデフォルトになっています。せっかくなので、CoffeeeScriptのインタプリタもインストールします。

Node.js

Homebrewから取得します。

% brew install node
npm

Homebrewでは取得できなかったので、Curlで取得します。

% sudo curl http://npmjs.org/install.sh | sh
% which npm
/usr/local/bin/npm
CoffeeScript

npmで取得します。

% sudo npm install -g coffee-script
% which coffee
/usr/local/bin/coffee

CoffeeScriptのコーディングについては、カヤックさんのブログが参考になると思います。

Emacs Lispのインストール

以下のEmacs LispをGitHubからクローン祭りします。

  • Rinari
  • rhtml-mode
  • yaml-mode
  • js2-mode
  • coffee-mode
  • flymake-coffee
  • scss-mode

Emacs Lispの展開先は~/.emacs.d/elisp としています。

Rinari

Rails向けのマイナーモードを提供します。GitHubからクローンして、

% cd ~/emacs.d/elisp
% git://github.com/eschulte/rinari.git
% cd rinari
% git submodule init
% git submodule update

init.elに追記します。

(add-to-list 'load-path "~/.emacs.d/elisp/rinari")
(require 'rinari nil t)

使い方などは、以下のブログが参考になると思います。

rhtml-mode

ERB(Embedded Ruby)テンプレートのコーディングを支援してくれます。Rinariと開発者が同じようです。GitHubからクローンして、

% cd ~/.emacs.d/elisp
% git clone git://github.com/eschulte/rhtml.git

init.elに追記します。

(add-to-list 'load-path "~/.emacs.d/elisp/rhtml")
(when (require 'rhtml-mode nil t)
  (add-hook 'rhtml-mode-hook
	    (lambda () (rinari-launch)))
)
yaml-mode

YAMLのコーディングを支援します。データベースのフィクスチャファイルの作成でを使うことがあるので導入。GitHubからクローンして、

% cd ~/.emacs.d/elisp
% git clone https://github.com/yoshiki/yaml-mode

init.elに追記します。

(add-to-list 'load-path "~/.emacs.d/elisp/yaml-mode")
(when (require 'yaml-mode nil t)
  (add-to-list 'auto-mode-alist '("\\.yml$" . yaml-mode))
)
js2-mode

おなじみのEmacs Lispですね。JavaScriptのコーディングを支援します。GitHubからクローンして、

% cd ~/.emacs.d/elisp
% git clone git://github.com/mooz/js2-mode.git

init.elに追記します。

(add-to-list 'load-path "~/.emacs.d/elisp/js2-mode")
(when (require 'js2-mode nil t)
  (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))
)
coffee-mode & flymake-coffee

前述で紹介したCoffeeScirptのコーディングを支援してくれます。GitHubからそれぞれクローンして、

% cd ~/.emacs.d/elisp
% git clone git://github.com/defunkt/coffee-mode.git
% git clone https://github.com/purcell/flymake-coffee.git

init.elに追記します。

;; coffee-mode
(add-to-list 'load-path "~/.emacs.d/elisp/coffee-mode")
(when (require 'coffee-mode nil t)
  (add-to-list 'auto-mode-alist '("\\.coffee$" . coffee-mode))
  (add-to-list 'auto-mode-alist '("Cakefile" . coffee-mode))
  (add-hook 'coffee-mode-hook
	    '(lambda () (setq tab-width 2)))
)

;; flymake-coffee
(add-to-list 'load-path "~/.emacs.d/elisp/flymake-coffee")
(when (require 'flymake-coffee nil t)
  (add-hook 'coffee-mode-hook 'flymake-coffee-load)
)
scss-mode

CSS拡張メタ言語であるSCSSを支援します。SASSとかもあってよく分かってないですが…GitHubからクローンして、

% cd ~/.emacs.d/elisp
% git clone https://github.com/antonj/scss-mode.git

init.elに追記します。

(add-to-list 'load-path "~/.emacs.d/elisp/scss-mode")
(autoload 'scss-mode "scss-mode")
(setq scss-compile-at-save nil) ;; 自動コンパイルをオフにする
(add-to-list 'auto-mode-alist '("\\.scss\\'" . scss-mode))

こんなもんでだいたいRails3の環境は整ったかなと思います。

init.elは下記でも公開していますので、参考にしてみてください。