この記事の概要
Rubyやってみたいと思いつつ、全然手をつけられていなかったので、いい加減やろうかと。
そもそもRubyってどんな言語なの?というところでこちらより引用させていただきました。
1993年にまつもとゆきひろ氏が開発したオブジェクト指向のスクリプト言語。テキスト処理能力に優れており、Perlからの乗り換えユーザーが多い。はじめからオブジェクト指向言語として開発されているため、データ構造はすべてオブジェクトとして扱われ、オブジェクトに対するインターフェースが統一されているなどの特徴を持つ。UNIX、Linux、Windows、Mac OSといった、主要なOSで利用できる
オブジェクト指向言語なんですねーいいですね。
早速開発環境に入れてみようと思います。
環境はCentOS5系です。
Rubyのインストール
バージョンによっては他ツール(Redmine等)を導入する際にうまく動かなかったりするらしい。
ので、ここではyumでなくソースからインストールしてみます。
$ cd /usr/local/src
$ sudo wget http://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz
$ sudo tar zxvf ruby-1.9.3-p448.tar.gz
$ cd ruby-1.9.3-p448
$ sudo ./configure
$ sudo make
$ sudo make install
$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]
入りました。
コマンドラインの実行
-eオプションを使用します。
-eオプションについてはこちらに記載がありました。
コマンドラインからスクリプトを指定します。-eオ プションを付けた時には引数からスクリプトファイル名を取りません。
-e オプションを複数指定した場合、各スクリプトの間に改行を 挟んで解釈します。
とのこと。
とりあえず試してみます。
$ ruby -e 'print "Hello World\n"'
Hello World
こんな風に改行しながらの入力もできました。
$ ruby -e 'print"
test
"'
test
ファイルの作成・実行
続いてファイルに記述してみます。
$ vim first.rb
$ cat first.rb
#!/usr/local/bin/ruby
print "Hello World\n"
$ chmod 755 first.rb
$ ./first.rb
Hello World
メソッドの定義・実行
では、メソッドはどう書くのか?
「def」で定義できるようです。
$ vim func.rb
$ cat func.rb
def printStr
print("Hello World\n")
end
printStr
$ ruby func.rb
Hello World
できた。
もうひと頑張りしてみます。
func.rbを下記のように修正。
#!/usr/local/bin/ruby
def printStr(name)
msg = "Hello," + name + "\n"
puts(msg)
end
if ARGV.size != 1
print "ex) $ ruby func.rb hoge\n"
exit
else
name = ARGV[0]
end
printStr(name)
権限変更 & 実行
$ chmod 755 func.rb
$ ./func.rb Test
Hello,Test
$ ./func.rb
ex) $ ruby func.rb hoge
クラスの定義・実行
ここまできたらクラスも書いてみたくなりました。
・インスタンス生成は「クラス名.new(引数)」のように記述する
・コンストラクタは「initialize」
上記踏まえ、func.rbを下記のように修正。
#!/usr/local/bin/ruby
class Func
def initialize(name)
@name = name
end
def printStr()
msg = "Hello," + @name + "\n"
puts(msg)
end
end
if ARGV.size != 1
print "ex) $ ruby func.rb hoge\n"
exit
else
name = ARGV[0]
end
func = Func.new(name)
func.printStr()
実行
$ ./func.rb Test
Hello,Test
できました。
本記事で作成したソースコードはgithubにも上げてあります。