Revision 1298:4f746d8966dd lib/plugins/acts_as_versioned
| lib/plugins/acts_as_versioned/lib/acts_as_versioned.rb | ||
|---|---|---|
| 216 | 216 |
has_many :versions, version_association_options do |
| 217 | 217 |
# finds earliest version of this record |
| 218 | 218 |
def earliest |
| 219 |
@earliest ||= find(:first, :order => 'version')
|
|
| 219 |
@earliest ||= order('version').first
|
|
| 220 | 220 |
end |
| 221 | 221 |
|
| 222 | 222 |
# find latest version of this record |
| 223 | 223 |
def latest |
| 224 |
@latest ||= find(:first, :order => 'version desc')
|
|
| 224 |
@latest ||= order('version desc').first
|
|
| 225 | 225 |
end |
| 226 | 226 |
end |
| 227 | 227 |
before_save :set_new_version |
| ... | ... | |
| 248 | 248 |
def self.reloadable? ; false ; end |
| 249 | 249 |
# find first version before the given version |
| 250 | 250 |
def self.before(version) |
| 251 |
find :first, :order => 'version desc', |
|
| 252 |
:conditions => ["#{original_class.versioned_foreign_key} = ? and version < ?", version.send(original_class.versioned_foreign_key), version.version]
|
|
| 251 |
order('version desc').
|
|
| 252 |
where("#{original_class.versioned_foreign_key} = ? and version < ?", version.send(original_class.versioned_foreign_key), version.version).
|
|
| 253 |
first |
|
| 253 | 254 |
end |
| 254 | 255 |
|
| 255 | 256 |
# find first version after the given version. |
| 256 | 257 |
def self.after(version) |
| 257 |
find :first, :order => 'version', |
|
| 258 |
:conditions => ["#{original_class.versioned_foreign_key} = ? and version > ?", version.send(original_class.versioned_foreign_key), version.version]
|
|
| 258 |
order('version').
|
|
| 259 |
where("#{original_class.versioned_foreign_key} = ? and version > ?", version.send(original_class.versioned_foreign_key), version.version).
|
|
| 260 |
first |
|
| 259 | 261 |
end |
| 260 | 262 |
|
| 261 | 263 |
def previous |
| ... | ... | |
| 467 | 469 |
|
| 468 | 470 |
# Finds versions of a specific model. Takes an options hash like <tt>find</tt> |
| 469 | 471 |
def find_versions(id, options = {})
|
| 470 |
versioned_class.find :all, {
|
|
| 472 |
versioned_class.all({
|
|
| 471 | 473 |
:conditions => ["#{versioned_foreign_key} = ?", id],
|
| 472 |
:order => 'version' }.merge(options) |
|
| 474 |
:order => 'version' }.merge(options))
|
|
| 473 | 475 |
end |
| 474 | 476 |
|
| 475 | 477 |
# Returns an array of columns that are versioned. See non_versioned_columns |
Also available in: Unified diff