Module: RosettAi::Plugins::GuiContract::ClassMethods

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

Overview

GUI-specific class methods beyond the base Contract.

Instance Method Summary collapse

Instance Method Details

#application_classClass

Returns the main application class.

Returns:

  • (Class)

    the main application class

Raises:

  • (NotImplementedError)


41
42
43
# File 'lib/rosett_ai/plugins/gui_contract.rb', line 41

def application_class
  raise NotImplementedError, "#{self}#application_class must return the application class"
end

#available?Boolean

Check if system dependencies for this GUI are available.

Returns:

  • (Boolean)


48
49
50
# File 'lib/rosett_ai/plugins/gui_contract.rb', line 48

def available?
  false
end

#dbus_interface_classClass?

Returns optional D-Bus interface class.

Returns:

  • (Class, nil)

    optional D-Bus interface class



69
# File 'lib/rosett_ai/plugins/gui_contract.rb', line 69

def dbus_interface_class = nil

#gui_nameString

Returns GUI identifier (e.g. 'gtk4', 'qt6').

Returns:

  • (String)

    GUI identifier (e.g. 'gtk4', 'qt6')

Raises:

  • (NotImplementedError)


31
32
33
# File 'lib/rosett_ai/plugins/gui_contract.rb', line 31

def gui_name
  raise NotImplementedError, "#{self}#gui_name must return the GUI identifier"
end

#launch(argv) ⇒ Integer

Launch the GUI application.

Parameters:

  • argv (Array<String>)

    command-line arguments

Returns:

  • (Integer)

    exit code



56
57
58
59
# File 'lib/rosett_ai/plugins/gui_contract.rb', line 56

def launch(argv)
  app = application_class.new
  app.run(argv)
end

#plugin_nameObject

Convenience alias — delegates to plugin_name for Contract compatibility.



72
# File 'lib/rosett_ai/plugins/gui_contract.rb', line 72

def plugin_name = gui_name

#plugin_typeSymbol

Return the plugin type identifier.

Returns:

  • (Symbol)


28
# File 'lib/rosett_ai/plugins/gui_contract.rb', line 28

def plugin_type = :gui

#required_system_packagesArray<String>

List system packages required by this GUI.

Returns:

  • (Array<String>)

    package names (e.g. ['libgtk-4-1'])



64
65
66
# File 'lib/rosett_ai/plugins/gui_contract.rb', line 64

def required_system_packages
  []
end

#toolkitSymbol

Returns toolkit identifier (:gtk4, :qt6, etc.).

Returns:

  • (Symbol)

    toolkit identifier (:gtk4, :qt6, etc.)

Raises:

  • (NotImplementedError)


36
37
38
# File 'lib/rosett_ai/plugins/gui_contract.rb', line 36

def toolkit
  raise NotImplementedError, "#{self}#toolkit must return a toolkit symbol"
end