# File lib/active_record/named_scope.rb, line 86 def named_scope(name, options = {}, &block) name = name.to_sym scopes[name] = lambda do |parent_scope, *args| Scope.new(parent_scope, case options when Hash options when Proc if self.model_name != parent_scope.model_name options.bind(parent_scope).call(*args) else options.call(*args) end end, &block) end singleton_class.send :define_method, name do |*args| scopes[name].call(self, *args) end end