Class: Deepagents::Generators::ControllerGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/deepagents/controller/controller_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_routesObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/generators/deepagents/controller/controller_generator.rb', line 19

def add_routes
  return if options[:skip_routes]
  
  route_file = "config/routes.rb"
  route_content = <<~ROUTE
    namespace :api do
      namespace :#{options[:api_version]} do
        resources :#{plural_name}, only: [:index, :show, :create] do
          member do
            post :run
            post :upload
          end
        end
      end
    end
  ROUTE
  
  inject_into_file route_file, route_content, after: "Rails.application.routes.draw do\n"
end

#create_controller_fileObject



11
12
13
# File 'lib/generators/deepagents/controller/controller_generator.rb', line 11

def create_controller_file
  template "api_controller.rb", "app/controllers/api/#{options[:api_version]}/#{file_name}_controller.rb"
end

#create_serializer_fileObject



15
16
17
# File 'lib/generators/deepagents/controller/controller_generator.rb', line 15

def create_serializer_file
  template "serializer.rb", "app/serializers/#{file_name}_serializer.rb"
end

#display_next_stepsObject



39
40
41
42
43
44
45
46
47
48
# File 'lib/generators/deepagents/controller/controller_generator.rb', line 39

def display_next_steps
  say "\n"
  say "DeepAgents API controller for #{file_name} has been created! 🎮", :green
  say "\n"
  say "Next steps:", :yellow
  say "  1. Ensure you have the required models (use the model generator if needed)"
  say "  2. Add any custom API endpoints to your controller"
  say "  3. Test your API endpoints with curl or Postman"
  say "\n"
end