47 lines
1.2 KiB
Ruby
47 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails/generators/base'
|
|
require 'securerandom'
|
|
|
|
module Devise
|
|
module Generators
|
|
MissingORMError = Class.new(Thor::Error)
|
|
|
|
class InstallGenerator < Rails::Generators::Base
|
|
source_root File.expand_path("../../templates", __FILE__)
|
|
|
|
desc "Creates a Devise initializer and copy locale files to your application."
|
|
class_option :orm
|
|
|
|
def copy_initializer
|
|
unless options[:orm]
|
|
raise MissingORMError, <<-ERROR.strip_heredoc
|
|
An ORM must be set to install Devise in your application.
|
|
|
|
Be sure to have an ORM like Active Record or Mongoid loaded in your
|
|
app or configure your own at `config/application.rb`.
|
|
|
|
config.generators do |g|
|
|
g.orm :your_orm_gem
|
|
end
|
|
ERROR
|
|
end
|
|
|
|
template "devise.rb", "config/initializers/devise.rb"
|
|
end
|
|
|
|
def copy_locale
|
|
copy_file "../../../config/locales/en.yml", "config/locales/devise.en.yml"
|
|
end
|
|
|
|
def show_readme
|
|
readme "README" if behavior == :invoke
|
|
end
|
|
|
|
def rails_4?
|
|
Rails::VERSION::MAJOR == 4
|
|
end
|
|
end
|
|
end
|
|
end
|