# File lib/couchrest/model/designs/view.rb, line 21
        def initialize(design_doc, parent, new_query = {}, name = nil)
          self.design_doc = design_doc

          # Extrace important non-regular query values
          proxy  = new_query.delete(:proxy)
          delete = new_query.delete(:delete)

          if parent.is_a?(Class) && parent < CouchRest::Model::Base
            raise "Name must be provided for view to be initialized" if name.nil?
            self.model    = (proxy || parent)
            self.owner    = parent
            self.name     = name.to_s
            # Default options:
            self.query    = { }
          elsif parent.is_a?(self.class)
            self.model    = (proxy || parent.model)
            self.owner    = parent.owner
            self.name     = parent.name
            self.query    = parent.query.dup
          else
            raise "View cannot be initialized without a parent Model or View"
          end

          # Update the local query hash
          query.update(new_query)
          delete.each{|k| query.delete(k)} if delete

          super()
        end