class VersionRecord::Sorting::Simple
Handles sorting a collection of AR objects.
This implementation uses in-memory sorting.
Public Class Methods
new(klass, version_column)
click to toggle source
# File lib/version_record/sorting/simple.rb, line 9 def initialize(klass, version_column) @klass = klass @version_column = version_column end
Public Instance Methods
by_version(direction = :asc)
click to toggle source
# File lib/version_record/sorting/simple.rb, line 14 def by_version(direction = :asc) collection = @klass.all direction.to_sym == :asc ? sort_asc(collection) : sort_desc(collection) end
Private Instance Methods
sort_asc(collection)
click to toggle source
# File lib/version_record/sorting/simple.rb, line 21 def sort_asc(collection) collection.sort_by { |object| version(object) } end
sort_desc(collection)
click to toggle source
# File lib/version_record/sorting/simple.rb, line 25 def sort_desc(collection) collection.sort { |obj_1, obj_2| version(obj_2) <=> version(obj_1) } end
version(object)
click to toggle source
# File lib/version_record/sorting/simple.rb, line 29 def version(object) object.public_send(@version_column) end