Sha256: 8fa46ced6a79136cb15b06d71f862aa6a29d9a7bf7299d424f8394ed62320c63

Contents?: true

Size: 615 Bytes

Versions: 60

Compression:

Stored size: 615 Bytes

Contents

# encoding: UTF-8
module MongoMapper
  module Plugins
    module Scopes
      module ClassMethods
        def scope(name, scope_options={})
          scopes[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
          read_inheritable_attribute(:scopes) || write_inheritable_attribute(:scopes, {})
        end
      end
    end
  end
end

Version data entries

60 entries across 60 versions & 7 rubygems

Version Path
jonbell-mongo_mapper-0.8.6 lib/mongo_mapper/plugins/scopes.rb
ign-mongo_mapper-0.8.6.2 lib/mongo_mapper/plugins/scopes.rb
ign-mongo_mapper-0.8.6.1 lib/mongo_mapper/plugins/scopes.rb
ssherman-mongo_mapper-0.8.6 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-0.8.6 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-0.8.5 lib/mongo_mapper/plugins/scopes.rb
honkster-mongo_mapper-0.8.4 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-0.8.4 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-unstable-2010.08.19 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-unstable-2010.08.18 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-unstable-2010.08.17 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-unstable-2010.08.16 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-unstable-2010.08.15 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-unstable-2010.08.14 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-unstable-2010.08.13 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-unstable-2010.08.12 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-unstable-2010.08.11 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-unstable-2010.08.10 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-unstable-2010.08.09 lib/mongo_mapper/plugins/scopes.rb
mongo_mapper-0.8.3 lib/mongo_mapper/plugins/scopes.rb