Multiple database support for ExtendedDocument.
New optional parameters are available to select the database: Mixins::DocumentQueries * get <id>, <db> * all :database => <db> * first :database => <db> Mixins::Views * view <name>, :database => <db> * all_design_doc_versions <db> * cleanup_design_docs! <db> Mixins::DesignDoc * refresh_design_doc now only updates the design_doc _id and removes _rev * call save_design_doc to save and update the design_doc * call save_design_doc_on <db> to save the design doc on a given database without modifying the model's design_doc object Design (core/design.rb) * new method view_on <db>, ... Bug fixes: * design_doc_slug in mixins/design_doc.rb was using an empty document to calculate the slug each time * method_missing in core/extended_document.rb now passes a block through
This commit is contained in:
parent
f9278a4ca6
commit
ec7848b783
7 changed files with 158 additions and 55 deletions
|
@ -35,11 +35,17 @@ JAVASCRIPT
|
|||
end
|
||||
|
||||
# Dispatches to any named view.
|
||||
# (using the database where this design doc was saved)
|
||||
def view view_name, query={}, &block
|
||||
view_on database, view_name, query, &block
|
||||
end
|
||||
|
||||
# Dispatches to any named view in a specific database
|
||||
def view_on db, view_name, query={}, &block
|
||||
view_name = view_name.to_s
|
||||
view_slug = "#{name}/#{view_name}"
|
||||
defaults = (self['views'][view_name] && self['views'][view_name]["couchrest-defaults"]) || {}
|
||||
fetch_view(view_slug, defaults.merge(query), &block)
|
||||
db.view(view_slug, defaults.merge(query), &block)
|
||||
end
|
||||
|
||||
def name
|
||||
|
@ -64,22 +70,6 @@ JAVASCRIPT
|
|||
(self['views'][view]["couchrest-defaults"]||{})
|
||||
end
|
||||
|
||||
# def fetch_view_with_docs name, opts, raw=false, &block
|
||||
# if raw
|
||||
# fetch_view name, opts, &block
|
||||
# else
|
||||
# begin
|
||||
# view = fetch_view name, opts.merge({:include_docs => true}), &block
|
||||
# view['rows'].collect{|r|new(r['doc'])} if view['rows']
|
||||
# rescue
|
||||
# # fallback for old versions of couchdb that don't
|
||||
# # have include_docs support
|
||||
# view = fetch_view name, opts, &block
|
||||
# view['rows'].collect{|r|new(database.get(r['id']))} if view['rows']
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
|
||||
def fetch_view view_name, opts, &block
|
||||
database.view(view_name, opts, &block)
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue