# File lib/couchrest/mixins/properties.rb, line 39 def apply_defaults return if self.respond_to?(:new_document?) && (new_document? == false) return unless self.class.respond_to?(:properties) return if self.class.properties.empty? # TODO: cache the default object self.class.properties.each do |property| key = property.name.to_s # let's make sure we have a default unless property.default.nil? if property.default.class == Proc self[key] = property.default.call else self[key] = Marshal.load(Marshal.dump(property.default)) end end end end