Class: ActionMCP::RegistryBase

Inherits:
Object
  • Object
show all
Defined in:
lib/action_mcp/registry_base.rb

Overview

Base class for registries.

Defined Under Namespace

Classes: NotFound, RegistryScope

Class Method Summary collapse

Class Method Details

.clear!void

This method returns an undefined value.

Clears the registry cache.



64
65
66
# File 'lib/action_mcp/registry_base.rb', line 64

def clear!
  @items = nil
end

.find(name) ⇒ Class

Retrieve an item by name.

Parameters:

  • name (String)

    The name of the item to find.

Returns:

  • (Class)

    The class of the item.

Raises:

  • (NotFound)

    if the item is not found.



40
41
42
43
44
45
# File 'lib/action_mcp/registry_base.rb', line 40

def find(name)
  item = items[name]
  raise NotFound, "Item '#{name}' not found." if item.nil?

  item
end

.itemsHash

Returns all registered items.

Returns:

  • (Hash)

    A hash of registered items.



13
14
15
# File 'lib/action_mcp/registry_base.rb', line 13

def items
  @items ||= {}
end

.non_abstractRegistryScope

Chainable scope: returns only non-abstract items.

Returns:



57
58
59
# File 'lib/action_mcp/registry_base.rb', line 57

def non_abstract
  RegistryScope.new(items)
end

.register(klass) ⇒ void

This method returns an undefined value.

Register an item explicitly

Parameters:

  • klass (Class)

    The class to register



21
22
23
24
25
# File 'lib/action_mcp/registry_base.rb', line 21

def register(klass)
  return if klass.abstract?

  items[klass.capability_name] = klass
end

.sizeInteger

Return the number of registered items, ignoring abstract ones.

Returns:

  • (Integer)

    The number of registered items.



50
51
52
# File 'lib/action_mcp/registry_base.rb', line 50

def size
  items.size
end

.unregister(klass) ⇒ void

This method returns an undefined value.

Unregister an item

Parameters:

  • klass (Class)

    The class to unregister



31
32
33
# File 'lib/action_mcp/registry_base.rb', line 31

def unregister(klass)
  items.delete(klass.capability_name)
end