Many languages feature a with
statement that allows programmers to omit the receiver of method calls.
with
can be easily emulated in Ruby using instance_eval
:
def with(object, &block)
object.instance_eval &block
end
The with
method can be used to seamlessly execute methods on objects:
hash = Hash.new
with hash do
store :key, :value
has_key? :key # => true
values # => [:value]
end