add method 'last' to simplify queries
This commit is contained in:
parent
92a10dbfc9
commit
3a1b271558
|
@ -75,6 +75,12 @@ module CouchRest
|
|||
doc
|
||||
end
|
||||
|
||||
def last(opts = {})
|
||||
doc = @klass.last({:database => @database}.merge(opts))
|
||||
doc.database = @database if doc && doc.respond_to?(:database)
|
||||
doc
|
||||
end
|
||||
|
||||
def get(id)
|
||||
doc = @klass.get(id, @database)
|
||||
doc.database = @database if doc && doc.respond_to?(:database)
|
||||
|
|
|
@ -38,6 +38,22 @@ module CouchRest
|
|||
first_instance.empty? ? nil : first_instance.first
|
||||
end
|
||||
|
||||
# Load the last document that have the model_type_key's field equal to
|
||||
# the name of the current class.
|
||||
# It's similar to method first, just adds :descending => true
|
||||
#
|
||||
# ==== Returns
|
||||
# Object:: The last object instance available
|
||||
# or
|
||||
# Nil:: if no instances available
|
||||
#
|
||||
# ==== Parameters
|
||||
# opts<Hash>::
|
||||
# View options, see <tt>CouchRest::Database#view</tt> options for more info.
|
||||
def last(opts = {})
|
||||
first(opts.merge!(:descending => true))
|
||||
end
|
||||
|
||||
# Load a document from the database by id
|
||||
# No exceptions will be raised if the document isn't found
|
||||
#
|
||||
|
|
|
@ -87,6 +87,12 @@ describe "Proxy Class" do
|
|||
u = @us.first
|
||||
u.title.should =~ /\A...\z/
|
||||
end
|
||||
|
||||
it "should get last" do
|
||||
u = @us.last
|
||||
u.title.should == "aaa"
|
||||
end
|
||||
|
||||
it "should set database on first retreived document" do
|
||||
u = @us.first
|
||||
u.database.should === DB
|
||||
|
|
|
@ -273,6 +273,12 @@ describe "Model views" do
|
|||
u = Unattached.first :database=>@db
|
||||
u.title.should =~ /\A...\z/
|
||||
end
|
||||
|
||||
it "should get last" do
|
||||
u = Unattached.last :database=>@db
|
||||
u.title.should == "aaa"
|
||||
end
|
||||
|
||||
it "should barf on all_design_doc_versions if no database given" do
|
||||
lambda{Unattached.all_design_doc_versions}.should raise_error
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue