Sha256: 87b2f827e1eb8b4741427df14df9c387f0bcf44b861803d0387170f418c86955

Contents?: true

Size: 1.23 KB

Versions: 5

Compression:

Stored size: 1.23 KB

Contents

module Devise
  module Orm
    module MongoMapper
      module InstanceMethods
        def save(options={})
          if options == false
            super(:validate => false)
          else
            super
          end
        end
      end

      def self.included_modules_hook(klass)
        klass.send :extend,  self
        klass.send :include, InstanceMethods
        yield

        klass.devise_modules.each do |mod|
          klass.send(mod) if klass.respond_to?(mod)
        end
      end
      
      def find(*args)
        options = args.extract_options!
        case args.first
          when :first
            first(options)
          when :all
            all(options)
          else
            super
        end
      end
      
      include Devise::Schema

      # Tell how to apply schema methods. This automatically converts DateTime
      # to Time, since MongoMapper does not recognize the former.
      def apply_schema(name, type, options={})
        return unless Devise.apply_schema
        type = Time if type == DateTime
        key name, type, options
      end
    end
  end
end

MongoMapper::Document::ClassMethods.send(:include, Devise::Models)
MongoMapper::EmbeddedDocument::ClassMethods.send(:include, Devise::Models)

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
glennr-devise-1.0.1.1 lib/devise/orm/mongo_mapper.rb
glennr-devise-1.0.1 lib/devise/orm/mongo_mapper.rb
devise-1.0.2 lib/devise/orm/mongo_mapper.rb
devise-1.0.1 lib/devise/orm/mongo_mapper.rb
devise-1.0.0 lib/devise/orm/mongo_mapper.rb