Ruby事始
Java読書会の2次会(宴会)にて、Ruby開始宣言。
どうも苦手意識が抜けない弱い型の言語ですが、手に馴染むまでやってみるぞ。
昨日の和田さんのテスト駆動セミナーで紹介していた、本のコードを写して実行する「写経」に習ってRubyを身に付けよう。
Rubyのインストール(Windows XP/Cygwin編)
さて、家に帰って、Rubyを入れるところから・・・
メインのWindowsマシンは、普段Cygwinを使っているので、CygwinのRubyをインストール。Cygwinのパッケージで既にruby-1.8.5が提供されているため、Cygwinのsetupで選択するだけでrubyが使えるようになります。なんと簡単だ。
さて、エディタはMeadow 2.10を使っているので、ruby-mode.elを入れようとしたのですが、cygwinのrubyパッケージにはどうやら含まれていません。そこで、Rubyのソースリポジトリからtrunk/misc/へと辿り、ruby-mode.elとinf-ruby.elをダウンロードし、site-lisp下に置きました。.emacsに以下を追加。
;; Ruby (autoload 'ruby-mode "ruby-mode" "Mode for editing ruby source files" t) (setq auto-mode-alist (append '(("\\.rb$" . ruby-mode)) auto-mode-alist)) (setq interpreter-mode-alist (append '(("ruby" . ruby-mode)) interpreter-mode-alist)) (autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process") (autoload 'inf-ruby-keys "inf-ruby" "Set local key defs for inf-ruby in ruby-mode") (add-hook 'ruby-mode-hook '(lambda () (inf-ruby-keys)))
- svnでブラウザ越しにダウンロードしてくるとエラーが発生します。ruby-mode.elの最初の定数定義がキーワード展開されないためです。cvsでダウンロードしてくる必要があります。svnのコマンドでダウンロードするときは、キーワード展開されるかもしれません(未確認)。
subversion下のファイルruby-mode.elを持ってくると、$Revision$がキーワード展開されないままとなっています。しかし実行時にはここにバージョン数値が入っていないとエラーとなります。
(defconst ruby-mode-revision "$Revision$")
そこで、CVSから取り出します。
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/
(defconst ruby-mode-revision "$Revision: 1.97 $")
写経のお手本
過去にいくつか買ったRuby本もあるのですが(そんで挫折と・・・)、オンライン・マガジンの「Rubyist Magazine」002号から4回にわたって連載されている記事「Rubyではじめるプログラミング」が簡単でかつ楽しいサンプルなのでこれにしました。
とりあえず、2時間ほどパチパチッとコードを入力して実行を繰り返し、じゃんけんゲームやらアドベンチャーブックを動かし、最終回のビジュアルノベルにチャレンジ。えっ、GUIにTk?
Cygwin版rubyでTkを使うには
いろいろ探し回ったところ、少々古い情報が多く混乱しましたが、やっとhttp://d.hatena.ne.jp/begirama/20070107
で最新情報に行き当たりました。
えっ、そうなの、と上記日記から参照しているhttp://www.mnet.ne.jp/~tnomura/rubytk.htmlを見ると簡単。Cygwinのtcltkパッケージを入れていればOKです。Xは入れてなくてもOKで、上記ページのサンプルを実行したらウィンドウが表示されました。