Sha256: 513c31c26012a50cde4daa3ccc8b4d1f9a7d7e58de0c53173d19753d2bee3454
Contents?: true
Size: 760 Bytes
Versions: 4
Compression:
Stored size: 760 Bytes
Contents
# encoding: UTF-8 module MongoMapper module Plugins module Scopes extend ActiveSupport::Concern included do class_attribute :_scopes end module ClassMethods def scope(name, scope_options={}) # Assign to _scopes instead of using []= to avoid mixing subclass scopes self._scopes = scopes.merge(name => lambda do |*args| result = scope_options.is_a?(Proc) ? scope_options.call(*args) : scope_options result = self.query(result) if result.is_a?(Hash) self.query.merge(result) end) singleton_class.send :define_method, name, &scopes[name] end def scopes self._scopes ||= {} end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems