Ruby Language Implémenter "avec" en utilisant l'évaluation d'instance


Exemple

De nombreux langages disposent d'une instruction with qui permet aux programmeurs d'omettre le récepteur d'appels de méthode.

with peut être facilement émulé dans Ruby en utilisant instance_eval :

def with(object, &block)
  object.instance_eval &block
end

La méthode with peut être utilisée pour exécuter de manière transparente des méthodes sur des objets:

hash = Hash.new

with hash do
  store :key, :value
  has_key? :key       # => true
  values              # => [:value]
end