Sha256: 8b89b78e7833a91a4e701e1e88ca5d4f26476d053b3b4bc5b93abe08271f167d

Contents?: true

Size: 1.93 KB

Versions: 7

Compression:

Stored size: 1.93 KB

Contents

module Devise
  # Holds devise schema information. To use it, just include its methods
  # and overwrite the apply_schema method.
  module Schema

    # Creates email, encrypted_password and password_salt.
    #
    # == Options
    # * :null - When true, allow columns to be null.
    # * :encryptor - The encryptor going to be used, necessary for setting the proper encrypter password length.
    def authenticatable(options={})
      null       = options[:null] || false
      encryptor  = options[:encryptor] || (respond_to?(:encryptor) ? self.encryptor : :sha1)

      apply_schema :email,              String, :null => null, :limit => 100
      apply_schema :encrypted_password, String, :null => null, :limit => Devise::ENCRYPTORS_LENGTH[encryptor]
      apply_schema :password_salt,      String, :null => null, :limit => 20
    end

    # Creates confirmation_token, confirmed_at and confirmation_sent_at.
    def confirmable
      apply_schema :confirmation_token,   String, :limit => 20
      apply_schema :confirmed_at,         DateTime
      apply_schema :confirmation_sent_at, DateTime
    end

    # Creates reset_password_token.
    def recoverable
      apply_schema :reset_password_token, String, :limit => 20
    end

    # Creates remember_token and remember_created_at.
    def rememberable
      apply_schema :remember_token,      String, :limit => 20
      apply_schema :remember_created_at, DateTime
    end

    # Creates sign_in_count, current_sign_in_at, last_sign_in_at,
    # current_sign_in_ip, last_sign_in_ip.
    def trackable
      apply_schema :sign_in_count,      Integer
      apply_schema :current_sign_in_at, DateTime
      apply_schema :last_sign_in_at,    DateTime
      apply_schema :current_sign_in_ip, String
      apply_schema :last_sign_in_ip,    String
    end

    # Overwrite with specific modification to create your own schema.
    def apply_schema(name, type, options={})
      raise NotImplementedError
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
devise-0.8.2 lib/devise/schema.rb
devise-0.8.1 lib/devise/schema.rb
devise-0.8.0 lib/devise/schema.rb
devise-0.7.5 lib/devise/schema.rb
devise-0.7.4 lib/devise/schema.rb
devise-0.7.3 lib/devise/schema.rb
devise-0.7.2 lib/devise/schema.rb