Ruby 入門

Ruby 入門

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

Amebaでブログを始めよう!
<< 目次

ip address の処理するのにすごく便利。
ipaddr を使ってみる。

require しましょう。

require 'ipaddr'


文字列が IP アドレス かを判断する。

array = [ "192.168.1.1" , "fe80::1" ]
array.each{|a|
if IPAddr.new(a).ipv4?
puts "ipv4"
elsif IPAddr.new(a).ipv6?
puts "ipv6"
else
puts "not an ip address"
end
}

実行結果

ipv4
ipv6


ip address から mask を判断する。

ipaddr = IPAddr.new("192.168.1.1")
ipaddr.mask(8).to_s
ipaddr.mask(16).to_s
ipaddr.mask(24).to_s
ipaddr.mask(32).to_s

実行結果

"192.0.0.0"
"192.168.0.0"
"192.168.1.0"
"192.168.1.1"


<< 目次

<< 目次

Ruby での、ヒアドキュメントの書き方。

str = <<AA
t
e
s
t
AA

実行結果

" t\n e\n s\n t\n"


"<< AA" のように << と AA の間に
空白とかが入るとエラーで実行できないので注意。

<< 目次
<< 目次

配列の中から特定の要素を見つけて位置を返す。

array = [ "a", "b", "c" ]

p array.index("a")
p array.index("b")
p array.index("c")

実行結果

0
1
2

<< 目次
<< 目次

配列の値を昇順、降順でソートする。

array = [ "a", "b", "c" ]
p array.reverse

array = [ "c", "b", "a" ]
p array.sort

実行結果

["c", "b", "a"]
["a", "b", "c"]

<< 目次
<< 目次

配列同士を結合する。

array1 = [ "a", "b", "c" ]
array2 = [ "d", "e", "f" ]
array3 = [ "g", "h", "i" ]

p array = array1 + array2 + array3

実行結果

["a", "b", "c", "d", "e", "f", "g", "h", "i"]

<< 目次
<< 目次

ハッシュを配列に変換する。キーとかバリューでとかいろいろ可能。

hash = { "a" => 1, "b" => 2, "c" => 3 }

p hash
p hash.keys
p hash.values
p hash.to_a

実行結果

{"a"=>1, "b"=>2, "c"=>3}
["a", "b", "c"]
[1, 2, 3]
[["a", 1], ["b", 2], ["c", 3]]

<< 目次


<< 目次

手作りのコマンドを作る際など、実行する時に引数を与えたい場合は、以下の様にする。

a = ARGV[0]
b = ARGV[1]
c = ARGV[2]

puts "ARGV[0] => #{a}"
puts "ARGV[1] => #{b}"
puts "ARGV[2] => #{c}"

puts "#{a} + #{b} + #{c} = #{a.to_i + b.to_i + c.to_i}"

実行結果

% ./test.rb 1 2 3
ARGV[0] => 1
ARGV[1] => 2
ARGV[2] => 3
1 + 2 + 3 = 6

ARGV という配列に空白区切りの引数が順番に格納されている。

<< 目次