Class: RlsMultiTenant::Generators::SetupGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
RlsMultiTenant::Generators::Shared::TemplateHelper
Defined in:
lib/rls_multi_tenant/generators/setup/setup_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_tenant_migrationObject



34
35
36
37
38
39
40
41
42
43
# File 'lib/rls_multi_tenant/generators/setup/setup_generator.rb', line 34

def create_tenant_migration
  tenant_class_name = RlsMultiTenant.tenant_class_name
  migration_pattern = "*_create_#{tenant_class_name.underscore.pluralize}.rb"

  if Dir.glob(File.join(destination_root, "db/migrate/#{migration_pattern}")).any?
    say "#{tenant_class_name} migration already exists, skipping creation", :yellow
  else
    create_migration_with_timestamp('create_tenant', 3)
  end
end

#create_tenant_modelObject



15
16
17
18
19
20
21
22
23
24
# File 'lib/rls_multi_tenant/generators/setup/setup_generator.rb', line 15

def create_tenant_model
  tenant_class_name = RlsMultiTenant.tenant_class_name
  tenant_file_path = "app/models/#{tenant_class_name.underscore}.rb"

  if File.exist?(File.join(destination_root, tenant_file_path))
    say "#{tenant_class_name} model already exists, skipping creation", :yellow
  else
    template 'tenant_model.rb', tenant_file_path
  end
end

#create_uuid_migrationObject



26
27
28
29
30
31
32
# File 'lib/rls_multi_tenant/generators/setup/setup_generator.rb', line 26

def create_uuid_migration
  if Dir.glob(File.join(destination_root, 'db/migrate/*_enable_uuid_extension.rb')).any?
    say 'UUID extension migration already exists, skipping creation', :yellow
  else
    create_migration_with_timestamp('enable_uuid', 1)
  end
end

#show_instructionsObject



45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/rls_multi_tenant/generators/setup/setup_generator.rb', line 45

def show_instructions
  tenant_class_name = RlsMultiTenant.tenant_class_name
  say "\n#{'=' * 60}", :green
  say 'RLS Multi-tenant setup completed successfully!', :green
  say '=' * 60, :green
  say "\nCreated:", :yellow
  say "#{tenant_class_name} model", :green
  say '• UUID extension migration', :green
  say "#{tenant_class_name} migration", :green
  say "\nNext steps:", :yellow
  say "\n1. Use 'rails generate rls_multi_tenant:model <model_name>' for new multi-tenant models", :yellow
  say '=' * 60, :green
end