Module: RubyLLM::MCP::Handlers::Concerns::Options::ClassMethods

Defined in:
lib/ruby_llm/mcp/handlers/concerns/options.rb

Instance Method Summary collapse

Instance Method Details

#inherited(subclass) ⇒ Object

Inherit options from parent classes



33
34
35
36
# File 'lib/ruby_llm/mcp/handlers/concerns/options.rb', line 33

def inherited(subclass)
  super
  subclass.instance_variable_set(:@options_config, options_config.dup)
end

#option(name, default: nil, required: false) ⇒ Object

Define a handler option with optional default value

Parameters:

  • name (Symbol)

    the option name

  • default (Object) (defaults to: nil)

    default value if not provided

  • required (Boolean) (defaults to: false)

    whether the option is required



18
19
20
21
22
23
24
25
# File 'lib/ruby_llm/mcp/handlers/concerns/options.rb', line 18

def option(name, default: nil, required: false)
  options_config[name] = { default: default, required: required }

  # Create accessor for this option in instances
  define_method(name) do
    @options[name]
  end
end

#options_configObject

Store option configurations



28
29
30
# File 'lib/ruby_llm/mcp/handlers/concerns/options.rb', line 28

def options_config
  @options_config ||= {}
end