# File lib/rabl/builder.rb, line 30
    def compile_hash(options={})
      @_result = {}
      # Extends
      @options[:extends].each do |settings|
        extends(settings[:file], settings[:options], &settings[:block])
      end if @options.has_key?(:extends)
      # Attributes
      @options[:attributes].each_pair do |attribute, name|
        attribute(attribute, :as => name)
      end if @options.has_key?(:attributes)
      # Node
      @options[:node].each do |settings|
        node(settings[:name], settings[:options], &settings[:block])
      end if @options.has_key?(:node)
      # Children
      @options[:child].each do |settings|
        child(settings[:data], settings[:options], &settings[:block])
      end if @options.has_key?(:child)
      # Glues
      @options[:glue].each do |settings|
        glue(settings[:data], &settings[:block])
      end if @options.has_key?(:glue)

      # Wrap result in root
      if options[:root_name].present?
        @_root_name = options[:root_name]
      else # no root
        @_root_name = nil
      end

      # Return Results
      @_root_name ? { @_root_name => @_result } : @_result
    end