Sha256: 488ce0c6197eca21563c2f0669292fa7907842da0820e6e41cf3b53741e1cd6d
Contents?: true
Size: 1.11 KB
Versions: 4
Compression:
Stored size: 1.11 KB
Contents
module Trestle class Scopes class Scope attr_reader :name, :options, :block def initialize(admin, name, options={}, &block) @admin, @name, @options, @block = admin, name, options, block end def to_param name unless default? end def label @options[:label] || @admin.t("scopes.#{name}", default: name.to_s.humanize.titleize) end def group @options[:group] end def default? @options[:default] == true end def apply(collection) if @block if @block.arity == 1 @admin.instance_exec(collection, &@block) else @admin.instance_exec(&@block) end else collection.public_send(name) end end def count(collection) @admin.count(@admin.merge_scopes(collection, apply(collection))) end def active?(params) active_scopes = Array(params[:scope]) if active_scopes.any? active_scopes.include?(to_param.to_s) else default? end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
trestle-0.9.8 | lib/trestle/scopes/scope.rb |
trestle-0.9.7 | lib/trestle/scopes/scope.rb |
trestle-0.9.6 | lib/trestle/scopes/scope.rb |
trestle-0.9.5 | lib/trestle/scopes/scope.rb |