mirror of
https://github.com/heartcombo/devise.git
synced 2026-01-14 09:17:55 -05:00
57 lines
1.8 KiB
Ruby
57 lines
1.8 KiB
Ruby
require 'generators/devise/orm_helpers'
|
|
|
|
module Mongoid
|
|
module Generators
|
|
class DeviseGenerator < Rails::Generators::NamedBase
|
|
include Devise::Generators::OrmHelpers
|
|
|
|
def generate_model
|
|
invoke "mongoid:model", [name] unless model_exists? && behavior == :invoke
|
|
end
|
|
|
|
def inject_field_types
|
|
inject_into_file model_path, migration_data, :after => "include Mongoid::Document\n" if model_exists?
|
|
end
|
|
|
|
def inject_devise_content
|
|
inject_into_file model_path, model_contents, :after => "include Mongoid::Document\n" if model_exists?
|
|
end
|
|
|
|
def migration_data
|
|
<<RUBY
|
|
## Database authenticatable
|
|
field :email, :type => String, :default => ""
|
|
field :encrypted_password, :type => String, :default => ""
|
|
|
|
## Recoverable
|
|
field :reset_password_token, :type => String
|
|
field :reset_password_sent_at, :type => Time
|
|
|
|
## Rememberable
|
|
field :remember_created_at, :type => Time
|
|
|
|
## Trackable
|
|
field :sign_in_count, :type => Integer, :default => 0
|
|
field :current_sign_in_at, :type => Time
|
|
field :last_sign_in_at, :type => Time
|
|
field :current_sign_in_ip, :type => String
|
|
field :last_sign_in_ip, :type => String
|
|
|
|
## Confirmable
|
|
# field :confirmation_token, :type => String
|
|
# field :confirmed_at, :type => Time
|
|
# field :confirmation_sent_at, :type => Time
|
|
# field :unconfirmed_email, :type => String # Only if using reconfirmable
|
|
|
|
## Lockable
|
|
# field :failed_attempts, :type => Integer, :default => 0 # Only if lock strategy is :failed_attempts
|
|
# field :unlock_token, :type => String # Only if unlock strategy is :email or :both
|
|
# field :locked_at, :type => Time
|
|
|
|
## Token authenticatable
|
|
# field :authentication_token, :type => String
|
|
RUBY
|
|
end
|
|
end
|
|
end
|
|
end |