module NoBrainer::Criteria::Scope
Public Instance Methods
method_missing(name, *args, &block)
click to toggle source
Calls superclass method
# File lib/no_brainer/criteria/scope.rb, line 14 def method_missing(name, *args, &block) return super unless self.model.respond_to?(name) apply_named_scope(name, args, block) end
respond_to?(name, include_private = false)
click to toggle source
Calls superclass method
# File lib/no_brainer/criteria/scope.rb, line 10 def respond_to?(name, include_private = false) super || self.model.respond_to?(name) end
unscoped()
click to toggle source
# File lib/no_brainer/criteria/scope.rb, line 6 def unscoped chain(:use_default_scope => false) end
Private Instance Methods
apply_default_scope()
click to toggle source
# File lib/no_brainer/criteria/scope.rb, line 27 def apply_default_scope return self if @options[:use_default_scope] == false (model.default_scopes.map(&:call).compact + [self]).reduce(:merge) end
apply_named_scope(name, args, block)
click to toggle source
# File lib/no_brainer/criteria/scope.rb, line 21 def apply_named_scope(name, args, block) criteria = self.model.method(name).call(*args, &block) raise "#{name} did not return a criteria" unless criteria.is_a?(NoBrainer::Criteria) merge(criteria) end