Sha256: 8f8d5114a2cce9d0940b83ff12f6475d3119d822569c404db05be3d0e8f21c0a
Contents?: true
Size: 642 Bytes
Versions: 2
Compression:
Stored size: 642 Bytes
Contents
require 'active_support' module CollectionSorter module Sorter extend ActiveSupport::Concern included do class_eval do class_attribute :sorters end end module ClassMethods def sort_with(name, &block) self.sorters = self.sorters || {} self.sorters[name] = block end end def apply_sort(scope, default=nil) params = {} unless params sorter = params[:sort] || default || (return scope) sorter = default unless self.sorters.include?(sorter.to_sym) return self.sorters[sorter.to_sym].call(scope) if sorter.present? scope end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
collection_sorter-0.0.2 | lib/collection_sorter/sorter.rb |
collection_sorter-0.0.1 | lib/collection_sorter/sorter.rb |