alvarobp / inverse_sortable
- Source
- Commits
- Network (0)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
| name | age | message | |
|---|---|---|---|
| |
Manifest | ||
| |
README.rdoc | ||
| |
Rakefile | ||
| |
TODO | ||
| |
benchmark/ | ||
| |
init.rb | ||
| |
inverse_sortable.gemspec | ||
| |
lib/ | ||
| |
test/ |
README.rdoc
inverse_sortable
Sets negative timestamps on Active Record models for efficiently sort in reverse order.
Install
sudo gem install alvarobp-inverse_sortable --source http://gems.github.com
Add to environment.rb:
config.gem "alvarobp-inverse_sortable", :lib => "inverse_sortable"
Usage
As a very simple plugin, using it is simple. Just add an integer attribute called "created_at_inverse" to your model. Afterwards you can make that model inverse sortable, for example:
class Film < ActiveRecord::Base
acts_as_inverse_sortable
end
Therefore, you can get an inverse sorted array of Films with
Film.find(:all, :order => 'created_at_inverse')
Test
Just do
rake test
Benchmarks
I ran some benchmarks to see how efficient is this method. Well, most of the times benchmarks showed that this method is more efficient than "ORDER BY created_at DESC" as the table grows.
Just in case you want to run these benchmarks, you will need a mysql database (maybe other engines as well) and configure it at the top of benchmark/benchmark.rb file.

