Module: MongoDoc::NamedScope
- Defined in:
- lib/mongodoc/named_scope.rb
Defined Under Namespace
Classes: CriteriaProxy
Instance Method Summary collapse
Instance Method Details
#named_scope(name, options = {}, &block) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/mongodoc/named_scope.rb', line 8 def named_scope(name, = {}, &block) name = name.to_sym scopes[name] = lambda do |parent_scope, *args| CriteriaProxy.new(parent_scope, Hash === ? : .call(*args), &block) end (class << self; self; end).class_eval <<-EOT def #{name}(*args) scopes[:#{name}].call(self, *args) end EOT end |
#scopes ⇒ Object
4 5 6 |
# File 'lib/mongodoc/named_scope.rb', line 4 def scopes read_inheritable_attribute(:scopes) || write_inheritable_attribute(:scopes, {}) end |