このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

web帳

記事詳細

2013.12.12

Ruby 基本まとめ

ざっとRubyに関する基礎的な部分をまとめてみました。

Ruby基本

ruby実行
ruby ファイル名

 irb

irb(Interactive Ruby)起動

irb

irb(Interactive Ruby)終了

exit

表示メソッド

print 
puts

数値、文字列変換

to string(文字列へ)

.to_s

to integer (数値へ)

.to_i

to flort(浮動小数点へ)

.to_f

オブジェクト

オブジェクトのクラスを調べる

.class

オブジェクトのスーパークラスを調べる 

.superclass

インスタンスを調べる

.instance_of?(String)
.instance_of?(Fixnum)

空かどうかを調べる 

.empty?

オブジェクトIDを調べる

.object_id

オブジェクトをコピー

.clone

オブジェクトIDが同じか 

.equal?

中身を比較

 == 

Rubyの変数

グローバル変数 $foo
インスタンス変数 @foo
クラス変数 @@foo
ローカル変数 foo
rubyの予約語
BEGIN END alias and begin
break case class def defined?
do else elseif end ensure
false for if in module
next nil not or redo
rescue retry return self super
then true undef unless until
when while yield

定数は全て大文字

ADMIN

制御構造

if文
if 条件 then
  条件が真の時に実行する処理
end
if 条件 then
    条件が真の時に実行する処理
  else
    条件が偽の時に実行する処理
end 

unless文
unless 条件 then
    条件が偽の時に実行する処理
  else
    条件が真の時に実行する処理
end

if 条件1 && 条件2 then

 条件が真の時に実行する処理

end

case文

case 比較するオブジェクト

when 値1 then
    値1と一致した時に実行する処理
  when 値2 then
    値2と一致した時に実行する処理
  when 値3 then
    値3と一致した時に実行する処理
  else
    どの値にも一致しないときに実行する処理
end

繰り返し処理
while文
  while 条件 do
  条件が”真”の時に繰り返す処理
end

sleep

指定時間待機

until文
until 条件 do
  条件が”偽”の時に繰り返す処理
end
for文
for 変数 in オブジェクト do
  繰り返し処理
end

timesメソッド で指定可数繰り返し
整数.times do |変数|
  繰り返す処理
end

timesメソッド他の記述

整数.times { |変数|
  繰り返す処理
}
upto,down toメソッド
times integer
upto integer
downto integer
step Numeric

uptoメソッド
整数.upto(max) do |変数|
  繰り返す処理
end

downtoメソッド
整数.downto(min) do |変数|
  繰り返す処理
end
stepメソッド
整数.step(limit, step) do |変数|
  繰り返す処理
end

eachメソッド
オブジェクト.each do |変数|
  繰り返す処理
end
ループ終了

break

example

dollar = 102
i = 1
loop {
  rate = i * dollar
  if rate >= 5000
    break
  end
  print i, “$ ==> “, <span style="font-family: Arial, 'Arial New', 'MS P ゴシック', sans-serif;">rate</span>, “Yen¥n"</p>
  i = i + 1
}

rubyファイルからの rubyの呼び出し

win
#!C:/ruby/bin/ruby

mac
#!/usr/bin/ruby

コマンドラインで実行
$ ./hoge.rb

文字コード指定
#!/usr/bin/ruby -Ks

EUC -Ke
Shift-JIS -Ks
UTF-8 -Ku

制御文字
¥b バックスペース
¥e エスケープ
¥f 改ページ
¥n 改行
¥r 復帰
¥s 半角スペース
¥t タブ
¥¥ ¥ 
文字列中で変数、式を使用
#{ 変数 }

example

who = “たかやま"
print “こんにちは、”, who, ”さん”
who = “たかやま"
print “こんにちは、#{who}さん”

計算式も可能

print “計算:20 × 20 = #{20*20}です” 

ファイル操作

ファイル操作
File.open(“ファイル名”, “モード")

読み込みのみ

File.open(“index.txt”, “r”)

r 読み込み
r+ 読み込みと書き込み
w 新規に作成して書き込み
w+ 新規に作成して読み込みと書き込み
a 追加で書き込み
a+ 追加で読み込みと書き込み

f = File.open(“index.txt")

まとめて読み込み

f.read

標準出力

print f.read

読み込み後は閉じる

f.close

1行ずつ読み込み
f = File.open(“index.txt”)
f.each{|line|
  print line
}
f.close

配列とハッシュ

配列

foo = []

example

#!/usr/bin/ruby
arr = [“web帳”, “takayama”,”boy"]
print “このサイトは”, arr[0], “です¥n”
print “作者は”, arr[1], “で¥n”
print  arr[1], “は”, arr[2], “である¥n” 

fruit = [“みかん”,”りんご”,”なし”,”ぶどう”,”もも"]
puts fruit [0..3]
puts fruit [1, 3] 
数を調べる
puts fruit.size
puts fruit.length

コマンドライン引数取得
ARGV

example

sample.rb one two

#!/usr/bin/ruby

# 1〜3番目の引数を表示
puts ARGV[0]
puts ARGV[1]
puts ARGV[2] 

全ての引数を表示

puts ARGV 

繰り返し処理での表示

ARGV .each{|arg|
  puts arg
  puts “**************"
} 

ファイルコピー

example

f1 = File.open(ARGV[0])
f2 = File.open(ARGV[1], “w")

data = f1.read
f2.print data

f1.close
f2.close 

ハッシュ

連想配列

キー(key)と値(value)

キー => 値

animal = {

  “cat” => “たま”,

 “dog” => “ぽち”,

 “bird” => “とりんどる”

}

key取得
.keys
value取得
.values

フェッチで取り出す事も可能

.fetch

eachでの繰り返しでの取得

.each_key{|key|
  puts “#{key}"
}
配列のハッシュ
animal = {
  “dog” => [“ぽち”,”じろう”,”ごま”],
  “cat” => [“たま”,”ごろう”,”ひな”]
}
ハッシュの配列
student = [
  { “no” => 1, “name” => “たかやま”, “blood” => “O”},
  { “no” => 1, “name” => “たなか”, “blood” => “A”}
] 
ハッシュのハッシュ
band = {
  “1” => {“name” => “たかやま”, “part” => “guitar”},
  “2” => {“name” => “たなか”, “part” => “vocal”},
  “3” => {“name” => “なかた”, “part” => “bass”}
}

正規表現

マッチするかは~(チルダ)を用いて判別

正規表現オブジェクト =~ 文字列オブジェクト

/^How/ =~ “How are you? "
=> 0

/sad/ =~ “I am sad. "
=> 5
主なメタ文字
. 任意の1文字にマッチ
* 0回以上の繰り返しにマッチ
+ 1回以上の繰り返しにマッチ
? 0回または1回の繰り返しにマッチ
{} 指定した範囲の繰り返しにマッチ
() グループ
[] 文字クラス
^ 行頭にマッチ
$ 行末にマッチ
| いずれかにマッチ
{m} m回にマッチ
{m,} m回以上にマッチ
{m,n} m回以上,n回以下にマッチ

選択

/apple|orange/

グループ化

/(sing){2}/ =~ "singapplesongsingsingsong"
=> 13

後方参照

正規表現グループによる後方参照

/5(.)7(.)/ =~ "123456788"
=> 4
$1
=> "6"
$2
=> "8"

文字クラスの主な略記法
¥w アルファベットと数字
¥W アルファベットと数字以外
¥s 空白文字
¥S 空白文字以外
¥d 数字
¥D 数字以外
¥b 単語の境界
¥B 単語の境界以外
¥A 文字列の最初
¥Z 文字列の最後
日本語の正規表現
s Shift-JIS
e EUC-JP
u UTF-8
n 文字コードなし
文字を置換
文字列.sub(/パターン/,”置換文字列")

すべて置換

.gsub

puts str.gsub(/ウェブ/s,”Web")

メソッド

メソッド定義

def メソッド名
  処理
  ...
end

引数

def hello who
  処理..
end

または

def hello(who)
  処理..
end 

クラス定義

class クラス名
  クラスの定義...
endf

モジュール

モジュールはインスタンスを作れない includeしての利用となる。( Mix-in)

module モジュール名
  モジュール定義
end

ライブラリの読み込み

require “hogege"

以上になりますー。

  • RSSを登録する

  • follow us in feedly

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、港区六本木で活動中。

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。