Sha256: 7a575b6a08ccbfd2cc1aaa97a264ac408e2f7a8f4960ab7f6672a31481fabb19

Contents?: true

Size: 984 Bytes

Versions: 2

Compression:

Stored size: 984 Bytes

Contents

module Devise
  module Orm
    module Mongoid
      module Hook
        def devise_modules_hook!
          extend Schema
          include ::Mongoid::Timestamps
          include Compatibility
          yield
          return unless Devise.apply_schema
          devise_modules.each { |m| send(m) if respond_to?(m, true) }
        end
      end
      
      module Schema
        include Devise::Schema

        # Tell how to apply schema methods
        def apply_schema(name, type, options={})
          type = Time if type == DateTime
          field name, { :type => type }.merge(options)
        end
      end
      
      module Compatibility
        def save(validate = true)
          if validate.is_a?(Hash) && validate.has_key?(:validate)
            validate = validate[:validate]
          end
          super(validate)
        end
      end
    end
  end
end

Mongoid::Document::ClassMethods.class_eval do
  include Devise::Models
  include Devise::Orm::Mongoid::Hook
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
devise-1.1.rc1 lib/devise/orm/mongoid.rb
devise-1.1.rc0 lib/devise/orm/mongoid.rb