Class: RosettAi::PackageManager::Base
- Inherits:
-
Object
- Object
- RosettAi::PackageManager::Base
- Defined in:
- lib/rosett_ai/package_manager/base.rb
Overview
Abstract base class for system package management.
Concrete implementations handle apt (Debian) and gem backends. All backends use array-form system() for security.
Direct Known Subclasses
Defined Under Namespace
Classes: PackageManagerError
Instance Method Summary collapse
-
#available? ⇒ Boolean
True if this backend is available on the system.
-
#available_packages(pattern) ⇒ Array<Hash>
Search for available packages matching a pattern.
-
#backend_name ⇒ String
Backend identifier.
-
#install(package_name) ⇒ Boolean
Install a package by name.
-
#installed?(package_name) ⇒ Boolean
Check if a package is installed.
-
#remove(package_name) ⇒ Boolean
Remove a package by name.
-
#update_index ⇒ Boolean
Update the package index.
Instance Method Details
#available? ⇒ Boolean
Returns true if this backend is available on the system.
64 65 66 |
# File 'lib/rosett_ai/package_manager/base.rb', line 64 def available? raise NotImplementedError, "#{self.class}#available? must be implemented" end |
#available_packages(pattern) ⇒ Array<Hash>
Search for available packages matching a pattern.
47 48 49 |
# File 'lib/rosett_ai/package_manager/base.rb', line 47 def available_packages(pattern) raise NotImplementedError, "#{self.class}#available_packages must be implemented" end |
#backend_name ⇒ String
Returns backend identifier.
59 60 61 |
# File 'lib/rosett_ai/package_manager/base.rb', line 59 def backend_name raise NotImplementedError, "#{self.class}#backend_name must be implemented" end |
#install(package_name) ⇒ Boolean
Install a package by name.
23 24 25 |
# File 'lib/rosett_ai/package_manager/base.rb', line 23 def install(package_name) raise NotImplementedError, "#{self.class}#install must be implemented" end |
#installed?(package_name) ⇒ Boolean
Check if a package is installed.
39 40 41 |
# File 'lib/rosett_ai/package_manager/base.rb', line 39 def installed?(package_name) raise NotImplementedError, "#{self.class}#installed? must be implemented" end |
#remove(package_name) ⇒ Boolean
Remove a package by name.
31 32 33 |
# File 'lib/rosett_ai/package_manager/base.rb', line 31 def remove(package_name) raise NotImplementedError, "#{self.class}#remove must be implemented" end |
#update_index ⇒ Boolean
Update the package index.
54 55 56 |
# File 'lib/rosett_ai/package_manager/base.rb', line 54 def update_index raise NotImplementedError, "#{self.class}#update_index must be implemented" end |