原始的Ruby入門
最近、Rubyを書いていないので再入門しようと思い、Hello World のチュートリアルを書こうと思う。
まず、Rubyを入手する。ここから最新のソースを入手し、コンパイルしておこう。何事も新しいのはいいことだと思う。とりあえず、今回は、安定版の最新ソースを入手。
次に、お好きな vim で新しいファイルを作る。ファイルをつくるのは、先ほど落としたRubyのソースと同じディレクトリがいいだろう。ファイルの先頭には、おきまりのおまじないを書かなくてはいけない。
#include "ruby.h"
これは、Rubyを勉強していくうちに理解できると思う。
Rubyは、完全なオブジェクト指向言語なので(信じられるかい?数値や文字列までオブジェクトなんだ。Javaのようにプリミティブな型なんて存在しない。)、まずはオブジェクトを作成しなければならない。作成の方法は、
VALUE my_obj = rb_class_new_instance(0,0,rb_cObject);
これで、Objectクラスのインスタンスmy_objが作成された。
次に、今回のHello Worldプログラムでは、標準出力に文字を書き出さないといけない。Rubyでは、Kernelモジュールのメソッドとして、putsというのが用意されている。実は、Objectクラスには、最初からKernelモジュールがインクルードされているので、何もしなくてよい(何をいっているかわからなくても大丈夫。そのうちわかるから。)
次に、putsメソッドを呼び出すためのおまじない。
int method_id = rb_intern("puts");
これもおまじないなので、何をやっているかわからなくても大丈夫。(RubyはメソッドをIDで管理しているんだ。これは、"puts"のIDをとりだしている)
そして、実際にメソッドを呼び出す。
rb_funcall(my_obj,method_id,1,rb_str_new2("hello world"));
引数は順に、オブジェクト、おまじないで取り出したID、メソッドの引数の数、メソッドへの引数...になる。今回わたしている引数で使っているrb_str_new2というのは、(null終端されている)文字列を文字列クラスに変えている。上でも書いたけど、文字列もクラスなんだ。
これで、重要な部分は終わり。あとは、いくつかおまじないを書い手あげれば完成。最終的にファイルは、このようになる。
#include "ruby.h" int main() { VALUE obj; int method_id; ruby_init(); ruby_init_loadpath(); ruby_script("hello_ruby"); my_obj = rb_class_new_instance(0,0,rb_cObject); method_id = rb_intern("puts"); rb_funcall(my_obj,method_id,1,rb_str_new2("hello world")); ruby_finalize(); return 0; }
さて、いよいよお楽しみの実行だ。shellに次のように打ち込むんだ。
$gcc -o hello_ruby -I${Ruby_DIR} -g -L${Ruby_DIR} -lruby -ldl hello_ruby.c && ./hello_ruby hello world
${Ruby_DIR}と書いてある部分は、適宜おとしたRubyのディレクトリを指すようにして実行してみよう。
今回書いてみてわかったと思うけど、Rubyを書くにはおまじないがいっぱい必要になる。きっと、これがRubyは黒魔術がどうこういわれるゆえんなんだろうね。
終わりに:
ついカッとなってやった。これ書く前に、昔読んだRubyの本に、Hello Worldがインディアンの掟とか、Hello World書いて動かして、掟守られたとか書かれていた記憶があって、それを参照しようと思ったんだけど、どうしてもその本が思い出せなかった。自分が最初にRubyを書くきっかけになった、256本網道編で書かれていたかとずっと思っていたんだけど違った。だれか知っていたら教えてください。
あと、調べるのにRubyアプリケーションプログラミングって本も探したら、平成14年の本なのに、ちょこっとだがテストファーストプログラミングとかのっていて驚いた。どうも、テストファーストってきくと最近のイメージがあるからなぁ。さすがだね、オーム社。
- 作者: Dave Thomas,Chad Fowler,Andy Hunt,まつもとゆきひろ,田和勝
- 出版社/メーカー: オーム社
- 発売日: 2006/08/26
- メディア: 大型本
- 購入: 7人 クリック: 270回
- この商品を含むブログ (152件) を見る
- 作者: 前田修吾,まつもとゆきひろ,やまだあきら,永井秀利
- 出版社/メーカー: オーム社
- 発売日: 2002/04/01
- メディア: 単行本
- 購入: 3人 クリック: 45回
- この商品を含むブログ (27件) を見る