Class: LlmMetaClient::Generators::ScaffoldGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- LlmMetaClient::Generators::ScaffoldGenerator
- Includes:
- Rails::Generators::Migration
- Defined in:
- lib/generators/llm_meta_client/scaffold/scaffold_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add_migrations ⇒ Object
- #configure_asset_paths ⇒ Object
- #configure_importmap ⇒ Object
- #configure_routes ⇒ Object
- #create_controllers ⇒ Object
- #create_initializer ⇒ Object
- #create_javascript ⇒ Object
- #create_models ⇒ Object
- #create_views ⇒ Object
- #inject_helpers ⇒ Object
Class Method Details
.next_migration_number(dirname) ⇒ Object
10 11 12 13 |
# File 'lib/generators/llm_meta_client/scaffold/scaffold_generator.rb', line 10 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
#add_migrations ⇒ Object
61 62 63 64 65 |
# File 'lib/generators/llm_meta_client/scaffold/scaffold_generator.rb', line 61 def add_migrations migration_template "db/migrate/create_chats.rb", "db/migrate/create_chats.rb" migration_template "db/migrate/create_messages.rb", "db/migrate/create_messages.rb" migration_template "db/migrate/migrate_llm_uuid_to_prompt_executions.rb", "db/migrate/migrate_llm_uuid_to_prompt_executions.rb" end |
#configure_asset_paths ⇒ Object
105 106 107 108 109 110 111 112 |
# File 'lib/generators/llm_meta_client/scaffold/scaffold_generator.rb', line 105 def configure_asset_paths inject_into_class "config/application.rb", "Application", <<-RUBY # Add asset paths for prompt_navigator gem config.assets.paths << Rails.root.join("../prompt_navigator/app/assets/stylesheets") # Add asset paths for chat_manager gem config.assets.paths << Rails.root.join("../chat_manager/app/assets/stylesheets") RUBY end |
#configure_importmap ⇒ Object
93 94 95 96 97 98 |
# File 'lib/generators/llm_meta_client/scaffold/scaffold_generator.rb', line 93 def configure_importmap append_to_file "config/importmap.rb", <<~RUBY pin "controllers/history_controller", to: "controllers/history_controller.js" pin "popover", to: "popover.js" RUBY end |
#configure_routes ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/generators/llm_meta_client/scaffold/scaffold_generator.rb', line 67 def configure_routes route <<-RUBY root "chats#new" resources :chats, only: [ :new, :create, :edit, :update, :show ] do collection do delete :clear post :start_new get :download_all_csv end member do patch :update_title get :download_csv end resource :stream, only: [ :show ], controller: "chat_streams" end resources :prompts, only: [ :show ] namespace :api do resources :mcp_servers, only: [ :index ], param: :uuid do get :tools, on: :member end end RUBY end |
#create_controllers ⇒ Object
20 21 22 23 24 25 |
# File 'lib/generators/llm_meta_client/scaffold/scaffold_generator.rb', line 20 def create_controllers template "app/controllers/chats_controller.rb" template "app/controllers/chat_streams_controller.rb" template "app/controllers/prompts_controller.rb" template "app/controllers/api/mcp_servers_controller.rb" end |
#create_initializer ⇒ Object
57 58 59 |
# File 'lib/generators/llm_meta_client/scaffold/scaffold_generator.rb', line 57 def create_initializer template "config/initializers/llm_service.rb" end |
#create_javascript ⇒ Object
47 48 49 50 51 52 53 54 55 |
# File 'lib/generators/llm_meta_client/scaffold/scaffold_generator.rb', line 47 def create_javascript template "app/javascript/controllers/llm_selector_controller.js" template "app/javascript/controllers/chats_form_controller.js" template "app/javascript/controllers/chat_title_edit_controller.js" template "app/javascript/controllers/tool_selector_controller.js" template "app/javascript/controllers/generation_settings_controller.js" template "app/javascript/controllers/message_stream_controller.js" copy_file "app/javascript/popover.js" end |
#create_models ⇒ Object
15 16 17 18 |
# File 'lib/generators/llm_meta_client/scaffold/scaffold_generator.rb', line 15 def create_models template "app/models/chat.rb" template "app/models/message.rb" end |
#create_views ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/generators/llm_meta_client/scaffold/scaffold_generator.rb', line 27 def create_views template "app/views/chats/new.html.erb" template "app/views/chats/edit.html.erb" template "app/views/chats/create.turbo_stream.erb" template "app/views/chats/update.turbo_stream.erb" template "app/views/chats/_message.html.erb" template "app/views/chats/_streaming_message.html.erb" template "app/views/chats/_tool_call_message.html.erb" template "app/views/chats/_chat_sidebar.html.erb" template "app/views/chats/_messages_list.html.erb" template "app/views/shared/_family_field.html.erb" template "app/views/shared/_api_key_field.html.erb" template "app/views/shared/_model_field.html.erb" template "app/views/shared/_tool_selector_field.html.erb" template "app/views/shared/_generation_settings_field.html.erb" template "app/views/layouts/application.html.erb" template "app/views/layouts/_header.html.erb" template "app/views/layouts/_sidebar.html.erb" end |
#inject_helpers ⇒ Object
100 101 102 103 |
# File 'lib/generators/llm_meta_client/scaffold/scaffold_generator.rb', line 100 def inject_helpers inject_into_class "app/controllers/application_controller.rb", "ApplicationController", " include LlmMetaClient::Helpers\n" inject_into_module "app/helpers/application_helper.rb", "ApplicationHelper", " include LlmMetaClient::Helpers\n" end |