Module: RubyLLM::MCP::Handlers::Concerns::Lifecycle::ClassMethods

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

Instance Method Summary collapse

Instance Method Details

#after_execute(method_name = nil) { ... } ⇒ Object

Register an after_execute hook

Parameters:

  • method_name (Symbol, nil) (defaults to: nil)

    method name to call, or pass a block

Yields:

  • block to execute after main execution, receives result as parameter



25
26
27
# File 'lib/ruby_llm/mcp/handlers/concerns/lifecycle.rb', line 25

def after_execute(method_name = nil, &block)
  after_hooks << (method_name || block)
end

#after_hooksObject

Store after hooks



35
36
37
# File 'lib/ruby_llm/mcp/handlers/concerns/lifecycle.rb', line 35

def after_hooks
  @after_hooks ||= []
end

#before_execute(method_name = nil) { ... } ⇒ Object

Register a before_execute hook

Parameters:

  • method_name (Symbol, nil) (defaults to: nil)

    method name to call, or pass a block

Yields:

  • block to execute before main execution



18
19
20
# File 'lib/ruby_llm/mcp/handlers/concerns/lifecycle.rb', line 18

def before_execute(method_name = nil, &block)
  before_hooks << (method_name || block)
end

#before_hooksObject

Store before hooks



30
31
32
# File 'lib/ruby_llm/mcp/handlers/concerns/lifecycle.rb', line 30

def before_hooks
  @before_hooks ||= []
end

#inherited(subclass) ⇒ Object

Inherit hooks from parent classes



40
41
42
43
44
# File 'lib/ruby_llm/mcp/handlers/concerns/lifecycle.rb', line 40

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