Started on the ExtendedDocument class with features moved to mixins.
Properties got added, they define getters, setters and aliases. They will also be the base of the new validation system.
This commit is contained in:
parent
83d7341553
commit
d64fa45cf0
|
@ -35,6 +35,12 @@ module CouchRest
|
||||||
first_instance.empty? ? nil : first_instance.first
|
first_instance.empty? ? nil : first_instance.first
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Load a document from the database by id
|
||||||
|
def get(id)
|
||||||
|
doc = database.get id
|
||||||
|
new(doc)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -64,7 +64,7 @@ module CouchRest
|
||||||
# Takes a hash as argument, and applies the values by using writer methods
|
# Takes a hash as argument, and applies the values by using writer methods
|
||||||
# for each key. It doesn't save the document at the end. Raises a NoMethodError if the corresponding methods are
|
# for each key. It doesn't save the document at the end. Raises a NoMethodError if the corresponding methods are
|
||||||
# missing. In case of error, no attributes are changed.
|
# missing. In case of error, no attributes are changed.
|
||||||
def update_attributes_without_saving hash
|
def update_attributes_without_saving(hash)
|
||||||
hash.each do |k, v|
|
hash.each do |k, v|
|
||||||
raise NoMethodError, "#{k}= method not available, use key_accessor or key_writer :#{k}" unless self.respond_to?("#{k}=")
|
raise NoMethodError, "#{k}= method not available, use key_accessor or key_writer :#{k}" unless self.respond_to?("#{k}=")
|
||||||
end
|
end
|
||||||
|
@ -76,7 +76,7 @@ module CouchRest
|
||||||
# Takes a hash as argument, and applies the values by using writer methods
|
# Takes a hash as argument, and applies the values by using writer methods
|
||||||
# for each key. Raises a NoMethodError if the corresponding methods are
|
# for each key. Raises a NoMethodError if the corresponding methods are
|
||||||
# missing. In case of error, no attributes are changed.
|
# missing. In case of error, no attributes are changed.
|
||||||
def update_attributes hash
|
def update_attributes(hash)
|
||||||
update_attributes_without_saving hash
|
update_attributes_without_saving hash
|
||||||
save
|
save
|
||||||
end
|
end
|
||||||
|
@ -86,7 +86,7 @@ module CouchRest
|
||||||
|
|
||||||
# Overridden to set the unique ID.
|
# Overridden to set the unique ID.
|
||||||
# Returns a boolean value
|
# Returns a boolean value
|
||||||
def save bulk = false
|
def save(bulk = false)
|
||||||
set_unique_id if new_document? && self.respond_to?(:set_unique_id)
|
set_unique_id if new_document? && self.respond_to?(:set_unique_id)
|
||||||
result = database.save_doc(self, bulk)
|
result = database.save_doc(self, bulk)
|
||||||
result["ok"] == true
|
result["ok"] == true
|
||||||
|
|
Loading…
Reference in a new issue