eval

参考:

ruby のリフレクション | 備忘録的な blog

module function Kernel.#eval (Ruby 2.6.0)

module_eval / class_eval

モジュールのコンテキストで文字列、もしくはブロックを評価して、評価した値を返す。

A.class_eval(<<~RUBY, __FILE__, __LINE__ + 1)
  def #{method_name}
    puts "This is #{method_name}."
  end
RUBY

参考:

Ruby の #class_eval と #module_eval の違い – Qiita

class_eval, module_eval (Module) | Rubyリファレンス (ref.xaio.jp)

instance method Module#class_eval (Ruby 2.6.0)

module_exec / class_exec

参考:

異色の Ruby メソッド: `Module.class_exec` 翻訳 | TechRacho

instance method Module#class_exec (Ruby 2.6.0)

instance_eval / instance_exec

インスタンスのコンテキストで文字列、またはブロックを評価して、評価した値を返す。

instance_exec を使えばブロックに引数を渡すことができる。

obj.instance_exec(*args, &block)

self のコンテキストで評価する場合はレシーバーを省略できる。

instance_exec(*args, &block)

参考:

Ruby の #instance_eval と #instance_exec の違い | Secret Garden (Instrumental)

instance_exec でブロックに引数を渡して実行できる | Bye Bye Moore

ブロック実行には instance_exec – Qiita

instance method BasicObject#instance_eval (Ruby 2.6.0)

instance method BasicObject#instance_exec (Ruby 2.6.0)

Wrap a Ruby function – Stack Overflow

特異クラスのコンテキストでコードを評価する

参考:

self.class.class_eval or singleton_class.class_eval – Stack Overflow

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です