Class: RobotLab::Generators::InstallGenerator

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



18
19
20
# File 'lib/generators/robot_lab/install_generator.rb', line 18

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

Instance Method Details

#create_directoriesObject



45
46
47
48
# File 'lib/generators/robot_lab/install_generator.rb', line 45

def create_directories
  empty_directory "app/robots"
  empty_directory "app/tools"
end

#create_initializerObject



22
23
24
# File 'lib/generators/robot_lab/install_generator.rb', line 22

def create_initializer
  template "initializer.rb.tt", "config/initializers/robot_lab.rb"
end

#create_jobObject



39
40
41
42
43
# File 'lib/generators/robot_lab/install_generator.rb', line 39

def create_job
  return if options[:skip_job]

  template "job.rb.tt", "app/jobs/robot_run_job.rb"
end

#create_migrationObject



26
27
28
29
30
# File 'lib/generators/robot_lab/install_generator.rb', line 26

def create_migration
  return if options[:skip_migration]

  migration_template "migration.rb.tt", "db/migrate/create_robot_lab_tables.rb"
end

#create_modelsObject



32
33
34
35
36
37
# File 'lib/generators/robot_lab/install_generator.rb', line 32

def create_models
  return if options[:skip_migration]

  template "thread_model.rb.tt", "app/models/robot_lab_thread.rb"
  template "result_model.rb.tt", "app/models/robot_lab_result.rb"
end

#display_post_installObject



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

def display_post_install
  say ""
  say "RobotLab installed successfully!", :green
  say ""
  say "Next steps:"
  say "  1. Run migrations: rails db:migrate"
  say "  2. Configure your LLM API keys in config/initializers/robot_lab.rb"
  say "  3. Generate your first robot: rails g robot_lab:robot MyRobot"
  say "  4. Enqueue robot runs via RobotRunJob (app/jobs/robot_run_job.rb)" unless options[:skip_job]
  say ""
end