class Hashie::Dash

def [](property)

property's default value if it hasn't been set).
Retrieve a value from the Dash (will return the
def [](property)
  assert_property_exists! property
  value = super(property)
  # If the value is a lambda, proc, or whatever answers to call, eval the thing!
  if value.is_a? Proc
    self[property] = value.call # Set the result of the call as a value
  else
    yield value if block_given?
    value
  end
end