Class: DbdocEngine::Generators::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#check_prerequisites ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/generators/dbdoc_engine/install/install_generator.rb', line 23

def check_prerequisites
  say_step "Checking prerequisites..."

  unless defined?(ActiveRecord::Base)
    say "ERROR: ActiveRecord is required. Please ensure your app uses ActiveRecord.", :red
    raise SystemExit
  end

  db_config = ActiveRecord::Base.connection_db_config
  say_done "Database: #{db_config.adapter} (#{db_config.database})"
end

#complete ⇒ Object



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/generators/dbdoc_engine/install/install_generator.rb', line 80

def complete
  say ""
  say "=" * 60, :green
  say "  DbdocEngine installed successfully!", :green
  say "=" * 60, :green
  say ""
  say "  Access your documentation at: http://localhost:3000/dbdoc", :cyan
  say ""
  say "  Default login credentials:", :cyan
  say "    user      / password123  (read-only)", :cyan
  say "    admin     / password123  (can edit)", :cyan
  say "    superadmin/ password123  (full control)", :cyan
  say ""
  say "  To uninstall later:", :yellow
  say "    bin/rails generate dbdoc_engine:uninstall", :yellow
  say ""
end

#copy_and_run_migrations ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/generators/dbdoc_engine/install/install_generator.rb', line 35

def copy_and_run_migrations
  rails_version = Rails.version.to_f

  say_step "Copying migrations (Rails #{rails_version >= 8.0 ? '8.x' : '7.x'})..."
  copy_migrations(rails_version)
  say_done "Migrations copied"

  Rake::Task.clear
  Rails.application.load_tasks

  invoke_task("dbdoc_engine:install:migrations", "Installing engine migrations")
  invoke_task("db:migrate", "Running migrations")
end

#seed_default_users ⇒ Object



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

def seed_default_users
  say_step "Seeding default users..."

  Rake::Task.clear
  Rails.application.load_tasks

  invoke_task("dbdoc_engine:install:seeds", "Copying seed file")
  invoke_task("dbdoc_engine:db:seed", "Creating default users")

  say_done "Default users created (user / admin / superadmin)"
end

#setup_javascript ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/generators/dbdoc_engine/install/install_generator.rb', line 61

def setup_javascript
  rails_version = Rails.version.to_f

  if rails_version < 8.0
    install_js_stack
  end

  update_importmap
  update_application_js

  if rails_version < 8.0
    update_manifest
  end
end

#setup_routes ⇒ Object



76
77
78
# File 'lib/generators/dbdoc_engine/install/install_generator.rb', line 76

def setup_routes
  update_routes
end

#welcome ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/generators/dbdoc_engine/install/install_generator.rb', line 12

def welcome
  say ""
  say "=" * 60, :green
  say "  DbdocEngine Installer", :green
  say "=" * 60, :green
  say ""
  say "  This will set up DbdocEngine in your Rails application.", :cyan
  say "  Rails version detected: #{Rails.version}", :cyan
  say ""
end