Ruby 入門 -3ページ目

Ruby 入門

~ Ruby初心者による逆引き備忘録 ~

<< 目次

ruby には、イテレータと呼ばれる繰り返しの為のメソッドが存在する。
times は、イテレータのひとつでちょっとした作業の時に便利である。

10.times{|i|
puts i
}

実行結果

0
1
2
3
4
5
6
7
8
9


<< 目次
<< 目次

":"が先頭に着いた変数のことをシンボルという。

:symbol

シンボルは、プルグラム中で不変な値。
通常のオブジェクトは、生成される度に別のものとして存在する。

p "abc".object_id == "abc".object_id
p :abc.object_id == :abc.object_id

実行結果

false
true


"abc" は、別オブジェクトであり、":abc" は、一致していることがわかる。

<< 目次
<< 目次

文字列を空白で区切る。

str = "ruby script"

p str.split(/¥s+/)
p str.split(/¥s+/)[0]
p str.split(/¥s+/)[1]


実行結果

["ruby", "script"]
"ruby"
"script"


安全の為、空白を空白の繰り返しとしている為、¥s に + をつけている。

また、OS によって "¥s+" と "\s+" で違うので注意。

<< 目次
<< 目次

文字を置き換える。

str = "ruby script"
p str.gsub(/ruby/,"perl")
p str.gsub(/ruby/,"")

実行結果

"perl script"
" script"


<< 目次
<< 目次

文字列を置換する際に対象の文字列を保持しておいて後で使う事を後方参照というらしい。

必要になったことが無い人には、なんのことやらですがやってみる。


str = "ruby script"

p str.gsub(/ruby/,"test")

p str.gsub(/(ruby)/,"¥¥1 test")


実行結果

"test script"
"ruby test script"


正規表現中の "( )" で囲んだキーワードが ¥1 という変数に格納されてそれを使えるということ。
¥¥1 としているのは、エスケープしているだけ。

"¥" が OS によって見え方(逆スラッシュとか)が違うので
コピペして使う人は、自分の環境に合うように置き換えて使ってください。

<< 目次
<< 目次

Ruby から Ruby 以外のコマンド又は、関数等を使う事を
システム関数とか外部コマンドを呼ぶとか表現されている。

実行結果の内容を使いたいならこれ。

res = `ls -la`

実行結果の 真 or 偽 を取得したいならこれ。

res = system("ls -la")

exec は、処理をした後戻ってこないので繰り返し等には使えない。

exec("ls -la")


ちなみに "ls -la" は、 unix コマンド。

<< 目次
<< 目次

Dir::mkdir でも可能だが FileUtils の方が多機能かも。
FileUtils を使うときは、require が必要。

require 'fileutils'

path の dir を作成する。

FileUtils.mkdir(path)

path の dir を再帰的に作成する。

FileUtils.mkdir_p(path)


<< 目次
<< 目次

require すれば send_mail というメソッドが使える。

send_mail 使い方

send_mail("message", "from_addr", "to_addr")

実装例。localhost に postfix 相当があれば可能。

require 'net/smtp'
Net::SMTP.start( 'localhost', 25 ) {|smtp|
smtp.send_mail("This is test mail.", "xxx@xxx.xxx", "xxx@xxx.xxx")
}


<< 目次
<< 目次

実行しているファイル名を取得する。

filename_test.rb という名前で以下を書いて実行。
__FILE__ は、実行ファイル名が格納された予約変数。

p __FILE__
p File.basename(__FILE__)

実行結果

"./filename_test.rb"
"filename_test.rb"


<< 目次