基本的な書式
- コメントアウト
- 一行のみ
#
 - 複数行
- 
=beginと=endでコメント行を囲む 
 - 
 
 - 一行のみ
 - インデント
- スペース2つ
 
 - メソッドの 
()は省略可能 - セミコロン
- 
;は処理の区切りを表す(通常は一行単位で処理が区切られる) 
 - 
 
基本的なオブジェクト操作
- 
変数宣言
変数名 = オブジェクト
 - 
代数演算子
- 和: 
+,差:-,積:*,商:/,剰余:%,冪:** 
 - 和: 
 - 
コマンドライン引数
- 配列 
ARGV- コマンドラインからスクリプトの引数として与えられた文字列を要素としてもつ
- 数値(整数)として利用する場合は 
.to_iで変換 
 - 数値(整数)として利用する場合は 
 
 - コマンドラインからスクリプトの引数として与えられた文字列を要素としてもつ
 - 要素の取り出し
ARGV[インデックス]
 
 - 配列 
 
外部ファイルの読み込み
require "ライブラリ名/ファイルパス"
- require時にコードの実行をしない方法
 
# 外部ファイル
if $PROGRAM_NAME == __FILE__
  require時に実行しない処理
end
出力(表示)
メソッド
- 
print:通常表示 - 
puts:通常表示,改行あり - 
p:型表現も含めた形の文字列を表示,改行あり 
フォーマット
- 文字列と変数の連結
- 通常
"文字列" + 変数
 - 省略
"文字列 #{変数}"
 
 - 通常
 
コンテナ
配列
- 
宣言
配列名 = [要素1, 要素2, ..., 要素n]
 - 
代入
配列名[インデックス] = オブジェクト
 - 
取り出し
- インデックス指定
配列名[インデックス]
 
 - インデックス指定
 - 
繰り返し処理
- eachメソッド
 
 
配列名.each do |変数|
  処理
end
ハッシュ
- 宣言
ハッシュ名 = {キー1:要素1, キー2:要素2,..., キーn:要素n}
 - 代入
ハッシュ名[キー] = オブジェクト
 - 取り出し
- キー指定
ハッシュ名[:キー]
 
 - キー指定
 - 繰り返し処理
- eachメソッド
 
 
ハッシュ名.each do |キーの変数, 値の変数|
  処理
end
条件分岐
if文
- 通常表記
 
if 条件
  処理
elsif 条件
  処理
else
  処理
end
- 条件が単一の場合
- 通常
if 条件 then 処理 end
 - 省略
処理 if 条件
 
 - 通常
 
case文
# 通常表記
case オブジェクト
when 値1 then
  処理
when 値2 then
  処理
...
# 省略表記
case # 何も与えないとwhenの真偽値で判断
when オブジェクト == 値1 ; 処理
when オブジェクト == 値2 ; 処理
...
関数
def メソッド名
  処理
end
ループ
for文
for 変数 in オブジェクト
  処理
end
while文
while 条件
  処理
end
クラス
継承なし
class クラス名
  # 初期化メソッド
  def initialize
    処理
  end
  def メソッド名
    処理
  end
end
- インスタンス変数(クラス内表記)
@変数名
 - クラス変数(クラス内表記)
@@変数名
 - インスタンス生成
クラス名.new
 
継承あり(差分)
class クラス名 < 継承したいクラス名
  ...
end
その他(rake/正規表現/)
rake
- 実行: 
rake タスク名 - タスク一覧表示: 
rake -T - 処理を記述する Rakefile の書き方
 
desc 'タスクの説明'
task :実行タスク名 do
  処理
end
- 用例
- gitのadd,commit,pull,pushを自動化
 
 
正規表現
- 練習用サイト: http://rubular.com/
 
参考
- チャート式ruby-I(puts)
 - チャート式ruby-II(variable and method)
 - チャート式ruby-III(if, case, Array.each by leap year)
 - チャート式ruby-appendix-IV(rake)
 - チャート式ruby-appendix-V(rubular)
 - チャート式ruby-VI(hello class)
 
- source ~/grad_members_20f/members/yuya-ohagi/ruby_summary.org