Parent

Files

CouchRest::Document

Attributes

database[RW]

Public Class Methods

use_database(db) click to toggle source

override the CouchRest::Model-wide default_database This is not a thread safe operation, do not change the model database at runtime.

# File lib/couchrest/document.rb, line 98
def use_database(db)
  self.database = db
end

Public Instance Methods

copy(dest) click to toggle source

copies the document to a new id. If the destination id currently exists, a rev must be provided. dest can take one of two forms if overwriting: “id_to_overwrite?rev=revision” or the actual doc hash with a ‘_rev’ key

# File lib/couchrest/document.rb, line 71
def copy(dest)
  raise ArgumentError, "doc.database required to copy" unless database
  result = database.copy_doc(self, dest)
  result['ok']
end
destroy(bulk = false) click to toggle source

Deletes the document from the database. Runs the :delete callbacks. Removes the _id and _rev fields, preparing the document to be saved to a new _id. If bulk is true (defaults to false) the document won’t actually be deleted from the db until bulk save.

# File lib/couchrest/document.rb, line 58
def destroy(bulk = false)
  raise ArgumentError, "doc.database required to destroy" unless database
  result = database.delete_doc(self, bulk)
  if result['ok']
    self['_rev'] = nil
    self['_id'] = nil
  end
  result['ok']
end
id() click to toggle source
# File lib/couchrest/document.rb, line 27
def id
  self['_id']
end
id=(id) click to toggle source
# File lib/couchrest/document.rb, line 30
def id=(id)
  self['_id'] = id
end
new?() click to toggle source

returns true if the document has never been saved

# File lib/couchrest/document.rb, line 38
def new?
  !rev
end
Also aliased as: new_document?
new_document?() click to toggle source
Alias for: new?
rev() click to toggle source
# File lib/couchrest/document.rb, line 33
def rev
  self['_rev']
end
save(bulk = false) click to toggle source

Saves the document to the db using create or update. Also runs the :save callbacks. Sets the _id and _rev fields based on CouchDB’s response. If bulk is true (defaults to false) the document is cached for bulk save.

# File lib/couchrest/document.rb, line 47
def save(bulk = false)
  raise ArgumentError, "doc.database required for saving" unless database
  result = database.save_doc self, bulk
  result['ok']
end
uri(append_rev = false) click to toggle source

Returns the CouchDB uri for the document

# File lib/couchrest/document.rb, line 78
def uri(append_rev = false)
  return nil if new?
  couch_uri = "#{database.root}/#{CGI.escape(id)}"
  if append_rev == true
    couch_uri << "?rev=#{rev}"
  elsif append_rev.kind_of?(Integer)
    couch_uri << "?rev=#{append_rev}"
  end
  couch_uri
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.