class Hashie::Dash

def initialize(attributes = {}, &block)

just like you would many other kinds of data objects.
You may initialize a Dash with an attributes hash
def initialize(attributes = {}, &block)
  super(&block)
  self.class.defaults.each_pair do |prop, value|
    self[prop] = begin
      val = value.dup
      if val.is_a?(Proc)
        val.arity == 1 ? val.call(self) : val.call
      else
        val
      end
    rescue TypeError
      value
    end
  end
  initialize_attributes(attributes)
  assert_required_attributes_set!
end