diff --git a/lib/couchrest/mixins/collection.rb b/lib/couchrest/mixins/collection.rb index 5548c65..b6bc02b 100644 --- a/lib/couchrest/mixins/collection.rb +++ b/lib/couchrest/mixins/collection.rb @@ -20,7 +20,7 @@ module CouchRest class_eval <<-END, __FILE__, __LINE__ + 1 def self.find_all_#{collection_name}(options = {}) view_options = #{view_options.inspect} || {} - CollectionProxy.new(database, "#{design_doc}", "#{view_name}", view_options.merge(options), Kernel.const_get('#{self}')) + CollectionProxy.new(options[:database] || database, "#{design_doc}", "#{view_name}", view_options.merge(options), Kernel.const_get('#{self}')) end END end @@ -63,12 +63,12 @@ module CouchRest def create_collection_proxy(options) design_doc, view_name, view_options = parse_view_options(options) - CollectionProxy.new(database, design_doc, view_name, view_options, self) + CollectionProxy.new(options[:database] || database, design_doc, view_name, view_options, self) end def create_search_collection_proxy(options) design_doc, search_name, search_options = parse_search_options(options) - CollectionProxy.new(@database, design_doc, search_name, search_options, self, :search) + CollectionProxy.new(options[:database] || database, design_doc, search_name, search_options, self, :search) end def parse_view_options(options) diff --git a/spec/couchrest/more/extended_doc_spec.rb b/spec/couchrest/more/extended_doc_spec.rb index bfe1ac1..3500d05 100644 --- a/spec/couchrest/more/extended_doc_spec.rb +++ b/spec/couchrest/more/extended_doc_spec.rb @@ -83,7 +83,7 @@ describe "ExtendedDocument" do self.conditional_two = true end end - + class WithTemplateAndUniqueID < CouchRest::ExtendedDocument use_database TEST_SERVER.default_database unique_id do |model| @@ -641,6 +641,7 @@ describe "ExtendedDocument" do @doc.run_after_validate.should be_true end end + describe "save" do it "should run the after filter after saving" do @doc.run_after_save.should be_nil diff --git a/spec/couchrest/more/extended_doc_view_spec.rb b/spec/couchrest/more/extended_doc_view_spec.rb index c903cf5..f622d7d 100644 --- a/spec/couchrest/more/extended_doc_view_spec.rb +++ b/spec/couchrest/more/extended_doc_view_spec.rb @@ -451,6 +451,12 @@ describe "ExtendedDocument views" do articles.paginate(:page => 4, :per_page => 3).size.should == 3 articles.paginate(:page => 5, :per_page => 3).size.should == 1 end + it "should pass database parameter to pager" do + proxy = mock(:proxy) + proxy.stub!(:paginate) + ::CouchRest::Mixins::Collection::CollectionProxy.should_receive(:new).with('database', anything(), anything(), anything(), anything()).and_return(proxy) + Article.paginate(:design_doc => 'Article', :view_name => 'by_date', :database => 'database') + end end end