Class: RubyLLM::Generators::ToolGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Includes:
GeneratorHelpers
Defined in:
lib/generators/ruby_llm/tool/tool_generator.rb

Overview

Generator for RubyLLM tool classes and related message partials.

Constant Summary

Constants included from GeneratorHelpers

GeneratorHelpers::APPLICATION_MODEL_TYPES, GeneratorHelpers::DEFAULT_MODEL_NAMES

Instance Method Summary collapse

Methods included from GeneratorHelpers

#acts_as_chat_declaration, #acts_as_message_declaration, #chat_controller_class_name, #chat_job_class_name, #create_migration_class_name, #create_namespace_modules, #gem_in_bundle?, #message_controller_class_name, #migration_version, #model_controller_class_name, #model_model_name, #model_resource_name, #model_variable_name, #mysql?, #parse_model_mappings, #postgresql?, #reference_type, #table_exists?, #tailwind_available?, #tool_call_variable_name, #ui_template, #ui_variant, #unprocessable_content_status, #usage_operations_sql, #usage_statuses_sql, #validate_model_mapping!

Instance Method Details

#check_tool_class_collisionObject



23
24
25
# File 'lib/generators/ruby_llm/tool/tool_generator.rb', line 23

def check_tool_class_collision
  class_collisions tool_class_name
end

#create_tool_fileObject



27
28
29
# File 'lib/generators/ruby_llm/tool/tool_generator.rb', line 27

def create_tool_file
  template 'tool.rb.tt', File.join('app/tools', class_path, "#{tool_file_name}.rb")
end

#create_tool_view_partialsObject



31
32
33
34
35
36
# File 'lib/generators/ruby_llm/tool/tool_generator.rb', line 31

def create_tool_view_partials
  template ui_template('tool_call.html.erb'),
           File.join(message_view_path, 'tool_calls', "_#{tool_partial_name}.html.erb")
  template ui_template('tool_result.html.erb'),
           File.join(message_view_path, 'tool_results', "_#{tool_partial_name}.html.erb")
end