Rubyで簡単プログラミング
Ruby紹介&開発Tips
オブジェクト指向スクリプト言語「Ruby」を使って、簡単なプログラムを開発するための環境設定から簡単なスクリプト開発までのTipsです。
- Last Update:2004/09/16
オブジェクト指向スクリプト言語「Ruby」の概要
Rubyは、手軽なオブジェクト指向プログラミングを実現するための種々の機能を持つオブジェクト指向スクリプト言語です(本家より引用)。プログラミング言語では珍しく純国産(作者:まつもと ゆきひろ(敬称略))で、既に実際の開発の現場でも利用されており、完成度も申し分ありません。たとえば、単純にテキストを置換するプログラムを開発しようと思ったら、特に利用する言語の種類の制約がなければどんな言語を用いるでしょうか?例えば、Javaでファイルからストリームを取得してああして…とか、C++でポインタを使って配列に格納して…とかはうんざりすると思います。この場合には、RubyやPerlのようなスクリプト言語を用いるが一番手っ取り早いです。さらに、Rubyの特長を以下に列挙します(本家より引用)。- シンプルな文法
- 普通のオブジェクト指向機能(クラス、メソッドコールなど)
- 特殊なオブジェクト指向機能(Mixin、特異メソッドなど)
- 演算子オーバーロード
- 例外処理機能
- イテレータとクロージャ
- ガーベージコレクタ
- ダイナミックローディング(アーキテクチャによる)
- 移植性が高い。多くのUNIX上で動くだけでなく、DOSやWindows、Mac、BeOSなどの上でも動く
「Rubyの実行環境を準備しよう」
Rubyスクリプトを実行するためには、Rubyをインストールする必要があります。インストールには、
- ソースを自分でコンパイルする方法(中・上級者向け)
- プラットフォーム別に用意されたバイナリを用いる方法(初心者〜上級者向け)
ソフトウェア | 説明 | インストールフォルダ |
Ruby ver.1.8.1 Release mswin32版 | Rubyスクリプトを実行させるための基本ソフト | %RUBY_HOME% |
上記URLから、バイナリ(zip)を取得したら、"C:\Ruby"等に解凍しましょう。さらに、Windowsのコマンドプロンプトを開いたら、カレントフォルダを気にすることなく、Rubyを実行できるように、Pathに"C:\Ruby\bin"を追加しておきましょう。
「簡単なRubyスクリプトを実行してみよう 〜Hello Ruby編〜」
実行すると、画面に「Hello Ruby」を表示する最もシンプルなRubyスクリプトを作って、実行する手順を紹介します。
Rubyスクリプトの作成
Windowsのメモ帳などで、以下のソース(hello.rb)を作成してください。# 最もシンプルなRubyスクリプト print "Hello Ruby\n"
Rubyでは、#以下はから文末まではコメントとみなされます。また、ダブルクオート(")で囲まれた箇所は、文字列です。また、\nは改行コードです。
Rubyスクリプトの実行
Windowsのコマンドプロンプトを起動して、上記の"hello.rb"がある箇所まで移動しましょう。あとは、コマンドプロンプト内で以下のように入力するだけです。("C:\Ruby\Sample"フォルダに、"hello.rb"を配置した場合)C:\Ruby\Sample>ruby hello.rb
特に問題なければ、"Hello Ruby"と画面に表示されたはずです。
「簡単なRubyスクリプトを実行してみよう 〜テキスト置換Rubyスクリプト編〜」
任意のテキストファイルを引数に与えると、自分で定義した置換ルールに従って、ファイルの中身を書き換えて保存してくれるRubyスクリプトを作ってみます。
Rubyスクリプトの作成
Windowsのメモ帳などで、以下のソース(replace.rb)を作成してください。本スクリプトでは、ファイル内に含まれる"<"タグと">"タグを、"<"、">"に変換します。HTMLで"<"と">"を画面に表示したい場合、そのまま使えないため、"<"、">"に変換しておく必要があるため、本スクリプトを使えるはずです。- replace.rb -
#! C:/Ruby/bin/ruby -i.orig # テキスト置換Rubyスクリプト while gets gsub!('<', '<') gsub!('>', '>') print end exit
- test.xml -
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"> <faces-config> <navigation-rule> <from-view-id>/login.jsp</from-view-id> <navigation-case> <from-outcome>OK</from-outcome> <to-view-id>/success.jsp</to-view-id> </navigation-case> </navigation-rule> <managed-bean> <managed-bean-name>LogonBean</managed-bean-name> <managed-bean-class>org.iplatform.sample.LogonBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> </faces-config>
冒頭の文ではRubyインタプリタの場所と、引数に与えたファイルの内容を直接変更するための"-i"オプションを用いています。ただ、変換前のファイルを*.origという名前で保存もしておけるようにします。"while gets 〜 end"ではファイルの中を読み出す処理を行い、gsub!メソッドでは、文字列の置換を行います。もし、置換ルールをカスタマイズしたい場合は、この呼び出しを増やすなり、内容を変更するなりしてください。
Rubyスクリプトの実行
Windowsのコマンドプロンプトを起動して、上記の"replace.rb"がある箇所まで移動しましょう。あとは、コマンドプロンプト内で以下のように入力するだけです。("C:\Ruby\Sample"フォルダに、"replace.rb"を配置した場合)C:\Ruby\Sample>ruby replace.rb test.xml
特に問題なければ、test.xml内のタグが上記変換ルールに従って、変換され、さらに元のファイルは、test.xml.origとして保存されます。