Module: RosettAi::Plugins::Contract::ClassMethods

Defined in:
lib/rosett_ai/plugins/contract.rb

Overview

Class-level interface that every plugin must implement.

Instance Method Summary collapse

Instance Method Details

#display_nameString

Returns human-readable display name (e.g. 'ACME AI Tool (Example)').

Returns:

  • (String)

    human-readable display name (e.g. 'ACME AI Tool (Example)')

Raises:

  • (NotImplementedError)


32
33
34
# File 'lib/rosett_ai/plugins/contract.rb', line 32

def display_name
  raise NotImplementedError, "#{self}#display_name must return a human-readable name"
end

#plugin_nameString

Returns machine-readable plugin name (e.g. 'claude', 'gtk4').

Returns:

  • (String)

    machine-readable plugin name (e.g. 'claude', 'gtk4')

Raises:

  • (NotImplementedError)


27
28
29
# File 'lib/rosett_ai/plugins/contract.rb', line 27

def plugin_name
  raise NotImplementedError, "#{self}#plugin_name must return the plugin identifier"
end

#plugin_typeSymbol

Returns one of :engine, :gui, :mcp.

Returns:

  • (Symbol)

    one of :engine, :gui, :mcp

Raises:

  • (NotImplementedError)


22
23
24
# File 'lib/rosett_ai/plugins/contract.rb', line 22

def plugin_type
  raise NotImplementedError, "#{self}#plugin_type must return :engine, :gui, or :mcp"
end

#versionString

Returns SemVer version string.

Returns:

  • (String)

    SemVer version string

Raises:

  • (NotImplementedError)


37
38
39
# File 'lib/rosett_ai/plugins/contract.rb', line 37

def version
  raise NotImplementedError, "#{self}#version must return a SemVer string"
end