Module: Legion::Extensions::Definitions

Included in:
Absorbers::Base, Hooks::Base
Defined in:
lib/legion/extensions/definitions.rb

Constant Summary collapse

DEFAULTS =
{
  remote_invocable: true,
  mcp_exposed:      true,
  idempotent:       false,
  risk_tier:        :standard,
  tags:             [],
  requires:         [],
  inputs:           {},
  outputs:          {}
}.freeze

Instance Method Summary collapse

Instance Method Details

#definition(method_name, **opts) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/legion/extensions/definitions.rb', line 17

def definition(method_name, **opts)
  base = DEFAULTS.transform_values do |value|
    case value
    when Array, Hash
      value.dup
    else
      value
    end
  end
  own_definitions[method_name.to_sym] = base.merge(opts)
end

#definition_for(method_name) ⇒ Object



37
38
39
# File 'lib/legion/extensions/definitions.rb', line 37

def definition_for(method_name)
  definitions[method_name.to_sym]
end

#definitionsObject



29
30
31
32
33
34
35
# File 'lib/legion/extensions/definitions.rb', line 29

def definitions
  if respond_to?(:superclass) && superclass.respond_to?(:definitions)
    superclass.definitions.merge(own_definitions)
  else
    own_definitions.dup
  end
end