Many languages feature a
with statement that allows programmers to omit the receiver of method calls.
with can be easily emulated in Ruby using
def with(object, &block) object.instance_eval &block end
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