Module: CouchRest::Mixins::DocumentQueries::ClassMethods

Defined in:
lib/couchrest/mixins/document_queries.rb

Instance Method Summary collapse

Instance Method Details

#all(opts = {}, &block) ⇒ Object

Load all documents that have the type field equal to the name of the current class. Take the standard set of CouchRest::Database#view options.



14
15
16
# File 'lib/couchrest/mixins/document_queries.rb', line 14

def all(opts = {}, &block)
  view(:all, opts, &block)
end

#count(opts = {}, &block) ⇒ Object

Returns the number of documents that have the type field equal to the name of the current class. Takes the standard set of CouchRest::Database#view options



21
22
23
# File 'lib/couchrest/mixins/document_queries.rb', line 21

def count(opts = {}, &block)
  all({:raw => true, :limit => 0}.merge(opts), &block)['total_rows']
end

#first(opts = {}) ⇒ Object

Load the first document that have the type field equal to the name of the current class.

Returns

Object

The first object instance available

or

Nil

if no instances available

Parameters

opts<Hash>

View options, see CouchRest::Database#view options for more info.



36
37
38
39
# File 'lib/couchrest/mixins/document_queries.rb', line 36

def first(opts = {})
  first_instance = self.all(opts.merge!(:limit => 1))
  first_instance.empty? ? nil : first_instance.first
end

#get(id, db = database) ⇒ Object Also known as: find

Load a document from the database by id No exceptions will be raised if the document isn’t found

Returns

Object

if the document was found

or

Nil

Parameters

id<String, Integer>

Document ID

db<Database>

optional option to pass a custom database to use



52
53
54
55
56
57
58
# File 'lib/couchrest/mixins/document_queries.rb', line 52

def get(id, db = database)
  begin
    get!(id, db)
  rescue
    nil
  end
end

#get!(id, db = database) ⇒ Object Also known as: find!

Load a document from the database by id An exception will be raised if the document isn’t found

Returns

Object

if the document was found

or Exception

Parameters

id<String, Integer>

Document ID

db<Database>

optional option to pass a custom database to use



72
73
74
75
# File 'lib/couchrest/mixins/document_queries.rb', line 72

def get!(id, db = database)
  doc = db.get id
  create_from_database(doc)
end