以下の内容はhttps://tbpgr.hatenablog.com/entry/20140725/1406291427より取得しました。


Ruby | Module | module_eval/class_eval

概要

Module#module_eval(expr, fname = "(eval)", lineno = 1) -> object[permalink][rdoc]
Module#module_eval {|mod| ... } -> object
Module#class_eval(expr, fname = "(eval)", lineno = 1) -> object
Module#class_eval {|mod| ... } -> object

詳細

モジュールのコンテキストで文字列 expr またはモジュール自身をブロックパラメータとするブロックを 評価してその結果を返却。

サンプルコード
module Hogeable
  def hogeable
  end
end

class Hoge
  include Hogeable
  def hoge
    print 'hoge'
  end
end

Hoge.module_eval %Q{
  def hoge2
    puts 'hoge2'
  end
}
Hogeable.module_eval %Q{
  def hogeable2
    puts 'hogeable2'
  end
}

Hoge.new.hoge2
Hoge.new.hogeable2
print Hoge.new.methods.grep /hoge/

出力

出力

hoge2
hogeable2
[:hoge, :hoge2, :hogeable, :hogeable2]



以上の内容はhttps://tbpgr.hatenablog.com/entry/20140725/1406291427より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14