class Trestle::Resource::Collection
Public Class Methods
new(admin, options={})
click to toggle source
# File lib/trestle/resource/collection.rb, line 7 def initialize(admin, options={}) @admin, @options = admin, options end
Public Instance Methods
decorate?()
click to toggle source
# File lib/trestle/resource/collection.rb, line 37 def decorate? @options[:decorate] != false end
finalize?()
click to toggle source
# File lib/trestle/resource/collection.rb, line 33 def finalize? @options[:finalize] != false end
paginate?()
click to toggle source
# File lib/trestle/resource/collection.rb, line 29 def paginate? @options[:paginate] != false end
prepare(params)
click to toggle source
# File lib/trestle/resource/collection.rb, line 11 def prepare(params) collection = collection(params) collection = apply_scopes(collection, params) if scope? collection = apply_sorting(collection, params) if sort? collection = paginate(collection, params) if paginate? collection = finalize_collection(collection) if finalize? collection = decorate_collection(collection) if decorate? collection end
scope?()
click to toggle source
# File lib/trestle/resource/collection.rb, line 21 def scope? @options[:scope] != false end
sort?()
click to toggle source
# File lib/trestle/resource/collection.rb, line 25 def sort? @options[:sort] != false end
Private Instance Methods
apply_scopes(collection, params)
click to toggle source
# File lib/trestle/resource/collection.rb, line 42 def apply_scopes(collection, params) unscoped = collection(params) scopes.active(params).reduce(collection) do |collection, scope| merge_scopes(collection, scope.apply(unscoped)) end end
apply_sorting(collection, params)
click to toggle source
# File lib/trestle/resource/collection.rb, line 50 def apply_sorting(collection, params) return collection unless params[:sort] field = params[:sort].to_sym order = params[:order].to_s.downcase == "desc" ? :desc : :asc if column_sorts.has_key?(field) @admin.instance_exec(collection, order, &column_sorts[field]) else sort(collection, field, order) end end