torutkのブログ

ソフトウェア・エンジニアのブログ

Ruby事始

Java読書会の2次会(宴会)にて、Ruby開始宣言。
どうも苦手意識が抜けない弱い型の言語ですが、手に馴染むまでやってみるぞ。
昨日の和田さんのテスト駆動セミナーで紹介していた、本のコードを写して実行する「写経」に習ってRubyを身に付けよう。

Rubyのインストール(Windows XP/Cygwin編)

さて、家に帰って、Rubyを入れるところから・・・

メインのWindowsマシンは、普段Cygwinを使っているので、CygwinRubyをインストール。Cygwinのパッケージで既にruby-1.8.5が提供されているため、Cygwinのsetupで選択するだけでrubyが使えるようになります。なんと簡単だ。

さて、エディタはMeadow 2.10を使っているので、ruby-mode.elを入れようとしたのですが、cygwinrubyパッケージにはどうやら含まれていません。そこで、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?

CygwinrubyでTkを使うには

いろいろ探し回ったところ、少々古い情報が多く混乱しましたが、やっとhttp://d.hatena.ne.jp/begirama/20070107
で最新情報に行き当たりました。

CygwinRubyだと何も準備しないで始めれちゃうし。 

えっ、そうなの、と上記日記から参照しているhttp://www.mnet.ne.jp/~tnomura/rubytk.htmlを見ると簡単。Cygwinのtcltkパッケージを入れていればOKです。Xは入れてなくてもOKで、上記ページのサンプルを実行したらウィンドウが表示されました。