Tire Multisort
multi_sort extended tire sort with some abilities
Installation
Add this line to your application's Gemfile:
gem 'tire-multisort'
And then execute:
$ bundle
Or install it yourself as:
$ gem install tire-multisort
Usage
multi_sort sort, order do
by_default :premium
by :date
by :name, :title
by :rating, :subject_rating
by :relevance, :_score
by :category, :category_name
by :distance, :_geo_distance, location: "test", unit: 'mi'
by :premium, :premium, :desc
by_collection :category, [:category, :name]
by_collection :premium, [:premium, :relevance, :name]
endCheckpoints
-
multi sort- acceptsortargument as stringname,rating,datewhich will be translated to propper sorting field -
auto order# multi_sort by :date
# sort by :date, order
-
predefined order- using predefined order insteadorderparameter# multi_sort by :date, :asc by :date, invert(order) # helper method (useful for some combination with using `collections`)
# sort by :date, :asc by :date, (order == :asc ? :desc : :asc)
-
auto check- run sort just fromcollection,defaultor fromsortparam# multi_sort by :date
# sort if sort == :date by :date, order end
-
aliasing# multi_sort by :name, :title
# sort if sort == :name by :title, order end
-
collections- group fiew sort fields to sort collection# multi_sort by_collection :category, [:category, :name]
# sort if sort == :category by :category, order by :name, order end
-
default- is used if passed sort param is incorrect or missedby_default :premium
Contributing
- Fork it ( http://github.com/igor04/tire-multisort/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request