Module: ActiveRecord::NamedScope::ClassMethods

Defined in:
lib/fake_arel/extensions.rb

Instance Method Summary collapse

Instance Method Details

#named_scope(name, options = {}, &block) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/fake_arel/extensions.rb', line 4

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, Scope
        options
      when Proc
        options.call(*args)
    end, &block)
  end

  singleton_class.send :define_method, name do |*args|
    scopes[name].call(self, *args)
  end
end

#scoped(scope = {}, &block) ⇒ Object

make all arguments optional, like Rails 3



22
23
24
# File 'lib/fake_arel/extensions.rb', line 22

def scoped(scope = {}, &block)
  ActiveRecord::NamedScope::Scope.new(self, scope, &block)
end