Class: ActiveadminTherole::Generators::InstallGenerator

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



7
8
9
10
11
# File 'lib/generators/activeadmin_therole/install/install_generator.rb', line 7

def self.next_migration_number(dirname)
  orm = Rails.configuration.generators.options[:rails][:orm]
  require "rails/generators/#{orm}"
  "#{orm.to_s.camelize}::Generators::Base".constantize.next_migration_number(dirname)
end

Instance Method Details

#activeadmin_installObject

Action: generate active_admin:install



14
15
16
17
18
19
20
# File 'lib/generators/activeadmin_therole/install/install_generator.rb', line 14

def activeadmin_install
  if File.exists?(File.join(destination_root, "config", "initializers", "active_admin.rb"))
    log :generate, "No need to install ActiveAdmin, already done."
  else
    generate "active_admin:install"
  end
end

#installObject

Execute all steps for Devise, ActiveAdmin and TheRole



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

def install
  if File.exists?(File.join(destination_root, "app", "admin", "roles.rb"))
    log :generate, "No need to copy admin/roles.rb, already done."
  else
    # copy our section
    copy_file "app/admin/roles.rb", "app/admin/roles.rb"
  end
end

#invoke_db_migrateObject



45
46
47
# File 'lib/generators/activeadmin_therole/install/install_generator.rb', line 45

def invoke_db_migrate
  rake "db:migrate" if ActiveRecord::Migrator.needs_migration?
end

#therole_installObject

Action: generate the_role install



32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/generators/activeadmin_therole/install/install_generator.rb', line 32

def therole_install
  if File.exists?(File.join(destination_root, "config", "initializers", "the_role.rb"))
    log :generate, "No need to install TheRole, already done."
  else
    generate "the_role", "install"
    rake "the_role_engine:install:migrations"
    migration_template 'db/migrate/add_role_id_to_user.rb', 'db/migrate/add_role_id_to_user.rb'
    inject_into_file File.join(destination_root, "app", "models", "user.rb"), "\n\tinclude TheRoleUserModel\n\n", after: "class User < ActiveRecord::Base\n"
    rake "db:migrate" if ActiveRecord::Migrator.needs_migration?
    generate "the_role", "admin"
  end
end

#user_model_createObject

Action: generate devise User



23
24
25
26
27
28
29
# File 'lib/generators/activeadmin_therole/install/install_generator.rb', line 23

def user_model_create
  if File.exists?(File.join(destination_root, "app", "models", "user.rb"))
    log :generate, "No need to create User model, already done."
  else
    generate "devise", "User"
  end
end