Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

define_methodでメソッドの生成

概要

メソッドの生成

詳細

Rubyのdefine_methodで動的にメソッドを生成することができます。

サンプル仕様

ヒアドキュメントの文字列をメソッドとして定義する。

サンプルコード

# encoding: Windows-31J

Hoge = Class.new do
  METHOD_NAMES =<<EOS
hoge
hige
hage
EOS

  METHOD_NAMES.split("\n").each do |method_name|
    define_method(method_name) do
      puts method_name
    end
  end
end

hoge = Hoge.new
hoge.hoge
hoge.hige
hoge.hage

出力

hoge
hige
hage