Class: SolidAgent::Generators::ContextGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Includes:
ActiveRecord::Generators::Migration
Defined in:
lib/generators/solid_agent/context/context_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



118
119
120
121
# File 'lib/generators/solid_agent/context/context_generator.rb', line 118

def self.next_migration_number(dirname)
  next_migration_number = current_migration_number(dirname) + 1
  ActiveRecord::Migration.next_migration_number(next_migration_number)
end

Instance Method Details

#create_migrationsObject



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/generators/solid_agent/context/context_generator.rb', line 21

def create_migrations
  return if options[:skip_migrations]

  migration_template "create_context.rb.erb",
    "db/migrate/create_#{table_name}.rb"

  migration_template "create_messages.rb.erb",
    "db/migrate/create_#{message_table_name}.rb"

  migration_template "create_generations.rb.erb",
    "db/migrate/create_#{generation_table_name}.rb"
end

#create_modelsObject



34
35
36
37
38
# File 'lib/generators/solid_agent/context/context_generator.rb', line 34

def create_models
  template "context_model.rb.erb", "app/models/#{file_name}.rb"
  template "message_model.rb.erb", "app/models/#{message_file_name}.rb"
  template "generation_model.rb.erb", "app/models/#{generation_file_name}.rb"
end

#show_usageObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/generators/solid_agent/context/context_generator.rb', line 40

def show_usage
  say ""
  say "Context models created!", :green
  say ""
  say "Files generated:"
  say "  app/models/#{file_name}.rb"
  say "  app/models/#{message_file_name}.rb"
  say "  app/models/#{generation_file_name}.rb"
  say "  db/migrate/*_create_#{table_name}.rb"
  say "  db/migrate/*_create_#{message_table_name}.rb"
  say "  db/migrate/*_create_#{generation_table_name}.rb"
  say ""
  say "Next steps:", :yellow
  say "  1. Run migrations: rails db:migrate"
  say ""
  say "  2. Add to your agent:"
  say "     class #{agent_class_name} < ApplicationAgent"
  say "       include SolidAgent::HasContext"
  say "       has_context :#{context_name}"
  say ""
  say "       def perform"
  say "         create_#{context_name}(contextable: params[:user])"
  say "         prompt"
  say "       end"
  say "     end"
  say ""
end