ruby メタプログラミング

本稿について

本稿はサイト運営者が学んだことなどを記したメモの内容です。
全てが正確な情報とは限りません。ご注意ください。また修正するべき点は適時修正していきます
eval
文字列をRubyプログラムとして実行する
eval "self.#{column} -= #{params}"

send
オブジェクトのメソッドを文字列で呼び出す
if 0 > self.send("affect_param_#{column}") && Random.new.rand(1..100)

引数あり
param = self.send("actual_affect_param_#{column}", current_time)

動的に変数名を設定する
instance_variable_set("#{@hoge}des", 50)

変数名をクラスメイトして利用する
company_user = Object.const_get(option[:company_user_type]).create if option[:company_user_type].present?

Back