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)


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

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)


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

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)


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

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)


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

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