Module: RosettAi::Plugins::EngineContract::ClassMethods
- Defined in:
- lib/rosett_ai/plugins/engine_contract.rb
Overview
Engine-specific class methods beyond the base Contract.
Instance Method Summary collapse
-
#backend_class ⇒ Class
The Backend subclass for rule compilation.
-
#config_compiler_class ⇒ Class?
Optional ConfigCompiler subclass for settings compilation.
-
#detector_class ⇒ Class?
Optional Detector subclass for system probing.
-
#engine_name ⇒ String
Engine identifier (e.g. 'claude', 'goose').
-
#executor_class ⇒ Class?
Optional Executor subclass for API calls.
-
#manifest_path ⇒ Pathname
Path to the engine's manifest.yml.
-
#plugin_name ⇒ Object
Convenience alias — delegates to plugin_name for Contract compatibility.
-
#plugin_type ⇒ Symbol
Return the plugin type identifier.
-
#target_profile_path ⇒ Pathname
Path to the engine's target profile YAML.
Instance Method Details
#backend_class ⇒ Class
Returns the Backend subclass for rule compilation.
34 35 36 |
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 34 def backend_class raise NotImplementedError, "#{self}#backend_class must return the backend class" end |
#config_compiler_class ⇒ Class?
Returns optional ConfigCompiler subclass for settings compilation.
45 |
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 45 def config_compiler_class = nil |
#detector_class ⇒ Class?
Returns optional Detector subclass for system probing.
39 |
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 39 def detector_class = nil |
#engine_name ⇒ String
Returns engine identifier (e.g. 'claude', 'goose').
29 30 31 |
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 29 def engine_name raise NotImplementedError, "#{self}#engine_name must return the engine identifier" end |
#executor_class ⇒ Class?
Returns optional Executor subclass for API calls.
42 |
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 42 def executor_class = nil |
#manifest_path ⇒ Pathname
Returns path to the engine's manifest.yml.
48 49 50 |
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 48 def manifest_path raise NotImplementedError, "#{self}#manifest_path must return the manifest path" end |
#plugin_name ⇒ Object
Convenience alias — delegates to plugin_name for Contract compatibility.
58 |
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 58 def plugin_name = engine_name |
#plugin_type ⇒ Symbol
Return the plugin type identifier.
26 |
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 26 def plugin_type = :engine |
#target_profile_path ⇒ Pathname
Returns path to the engine's target profile YAML.
53 54 55 |
# File 'lib/rosett_ai/plugins/engine_contract.rb', line 53 def target_profile_path manifest_path.dirname.join('target.yml') end |