Ruby Language Évaluation d'instance


Exemple

La méthode instance_eval est disponible sur tous les objets. Il évalue le code dans le contexte du récepteur:

object = Object.new

object.instance_eval do
  @variable = :value
end

object.instance_variable_get :@variable  # => :value

instance_eval définit lui- self object pour la durée du bloc de code:

object.instance_eval { self == object }  # => true

Le récepteur est également transmis au bloc comme seul argument:

object.instance_eval { |argument| argument == object }  # => true

La méthode instance_exec diffère à cet égard: elle transmet ses arguments au bloc à la place.

object.instance_exec :@variable do |name|
  instance_variable_get name  # => :value
end