Class: Authenticate::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Helpers, Rails::Generators::Migration
Defined in:
lib/generators/authenticate/install/install_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeInstallGenerator

Returns a new instance of InstallGenerator.



16
17
18
19
# File 'lib/generators/authenticate/install/install_generator.rb', line 16

def initialize(*)
  super
  assign_names!(model_class_name)
end

Class Method Details

.next_migration_number(dir) ⇒ Object

for generating a timestamp when using ‘create_migration`



155
156
157
# File 'lib/generators/authenticate/install/install_generator.rb', line 155

def self.next_migration_number(dir)
  ActiveRecord::Generators::Base.next_migration_number(dir)
end

Instance Method Details

#copy_migration_filesObject



44
45
46
47
48
# File 'lib/generators/authenticate/install/install_generator.rb', line 44

def copy_migration_files
  copy_migration 'add_authenticate_brute_force_to_users.rb'
  copy_migration 'add_authenticate_timeoutable_to_users.rb'
  copy_migration 'add_authenticate_password_reset_to_users.rb'
end

#create_authenticate_user_migrationObject



36
37
38
39
40
41
42
# File 'lib/generators/authenticate/install/install_generator.rb', line 36

def create_authenticate_user_migration
  if users_table_exists?
    create_add_columns_migration
  else
    create_new_users_migration
  end
end

#create_initializerObject



58
59
60
61
62
63
64
65
66
67
# File 'lib/generators/authenticate/install/install_generator.rb', line 58

def create_initializer
  copy_file 'authenticate.rb', 'config/initializers/authenticate.rb'
  if options[:model]
    inject_into_file(
        'config/initializers/authenticate.rb',
        "  config.user_model = '#{options[:model]}' \n",
        after: "Authenticate.configure do |config|\n",
    )
  end
end

#create_or_inject_into_user_modelObject



28
29
30
31
32
33
34
# File 'lib/generators/authenticate/install/install_generator.rb', line 28

def create_or_inject_into_user_model
  if File.exist? model_path
    inject_into_class(model_path, model_class_name, "  include Authenticate::User\n\n")
  else
    copy_file 'user.rb', 'app/models/user.rb'
  end
end

#inject_into_application_controllerObject



50
51
52
53
54
55
56
# File 'lib/generators/authenticate/install/install_generator.rb', line 50

def inject_into_application_controller
  inject_into_class(
      'app/controllers/application_controller.rb',
      ApplicationController,
      "  include Authenticate::Controller\n\n"
  )
end

#verifyObject



21
22
23
24
25
26
# File 'lib/generators/authenticate/install/install_generator.rb', line 21

def verify
  if options[:model] && !File.exists?(model_path)
    puts "Exiting: the model class you specified, #{options[:model]}, is not found."
    exit 1
  end
end