システム開発とデジタルマーケティング

Rubyでの動的なメソッドの呼び出し

呼び出すメソッドが動的に変わる場合のメソッドの呼び出し方法のメモ。

制御構造で分ける場合

def get_id
  return 256
end

def get_name
  return 'エナジー炭酸 がぶ飲み POWER SQUASH' # いまハマってる
end

# nameが欲しい
data_type = :name

# caseで処理を分ける
case data_type
when :id then p get_id
when :name then p get_name

メタプログラミングの場合

def get_id
  return 64
end

def get_name
  return 'A&W ROOT BEER' # ホントはこっちのほうが好き
end

# nameが欲しい
data_type = 'name'
#sendでメソッドを呼び出す
p send("get_#{data_type}")

Qiitaに投稿した記事です。