Class: RailsMultitenantSignupFlow::Generators::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#configure_application_recordObject



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

def configure_application_record
  path = "app/models/application_record.rb"
  if File.exist?(path)
    ensure_tenanted_in_application_record(path)
  else
    say_status :missing, path, :yellow
    create_default_application_record(path)
  end
end

#configure_databaseObject



67
68
69
# File 'lib/generators/rails_multitenant_signup_flow/install/install_generator.rb', line 67

def configure_database
  template "database.yml.tt", "config/database.yml", force: force?
end

#copy_global_recordObject



33
34
35
# File 'lib/generators/rails_multitenant_signup_flow/install/install_generator.rb', line 33

def copy_global_record
  template "global_record.rb.tt", "app/models/global_record.rb", force: force?
end

#copy_host_url_concernObject



37
38
39
# File 'lib/generators/rails_multitenant_signup_flow/install/install_generator.rb', line 37

def copy_host_url_concern
  template "host_url.rb.tt", "app/controllers/concerns/host_url.rb", force: force?
end

#copy_session_modelObject



53
54
55
# File 'lib/generators/rails_multitenant_signup_flow/install/install_generator.rb', line 53

def copy_session_model
  template "session.rb.tt", "app/models/session.rb", force: force?
end

#copy_sessions_controllerObject



21
22
23
# File 'lib/generators/rails_multitenant_signup_flow/install/install_generator.rb', line 21

def copy_sessions_controller
  template "sessions_controller.rb.tt", "app/controllers/sessions_controller.rb", force: force?
end

#copy_sign_up_viewObject



29
30
31
# File 'lib/generators/rails_multitenant_signup_flow/install/install_generator.rb', line 29

def 
  template "sign_ups_show.html.erb.tt", "app/views/sign_ups/show.html.erb", force: force?
end

#copy_sign_ups_controllerObject



25
26
27
# File 'lib/generators/rails_multitenant_signup_flow/install/install_generator.rb', line 25

def copy_sign_ups_controller
  template "sign_ups_controller.rb.tt", "app/controllers/sign_ups_controller.rb", force: force?
end

#copy_tenant_modelObject



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

def copy_tenant_model
  template "tenant.rb.tt", "app/models/tenant.rb", force: force?
end

#copy_tenant_serviceObject



41
42
43
# File 'lib/generators/rails_multitenant_signup_flow/install/install_generator.rb', line 41

def copy_tenant_service
  template "tenant_service.rb.tt", "lib/tenant_service.rb", force: force?
end

#copy_user_modelObject



49
50
51
# File 'lib/generators/rails_multitenant_signup_flow/install/install_generator.rb', line 49

def copy_user_model
  template "user.rb.tt", "app/models/user.rb", force: force?
end

#ensure_authentication_scaffoldObject



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

def ensure_authentication_scaffold
  return if authentication_generated?

  say_status :invoke, "rails generate authentication", :green
  rails_command "generate authentication"
  move_authentication_migrations_to_global
end

#ensure_sign_up_routeObject



71
72
73
74
75
76
77
78
79
# File 'lib/generators/rails_multitenant_signup_flow/install/install_generator.rb', line 71

def 
  routes_path = "config/routes.rb"
  return unless File.exist?(routes_path)

  content = File.read(routes_path)
  return if content.include?("resource :sign_up")

  route "resource :sign_up, only: [:show, :create]"
end

#generate_tenant_migrationsObject



81
82
83
84
85
86
87
88
89
# File 'lib/generators/rails_multitenant_signup_flow/install/install_generator.rb', line 81

def generate_tenant_migrations
  say_status :invoke, "rails generate migration CreateTenants", :green
  rails_command "generate migration CreateTenants name:string --database=global"

  say_status :invoke, "rails generate migration AddTenantToUsers", :green
  rails_command "generate migration AddTenantToUsers tenant:references --database=global"

  modify_add_tenant_to_users_migration
end