def initialize(design_doc, parent, new_query = {}, name = nil)
self.design_doc = design_doc
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
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
query.update(new_query)
delete.each{|k| query.delete(k)} if delete
super()
end