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.
63 64 65 |
# File 'lib/rosett_ai/package_manager/base.rb', line 63 def available? raise NotImplementedError, "#{self.class}#available? must be implemented" end |
#available_packages(pattern) ⇒ Array<Hash>
Search for available packages matching a pattern.
46 47 48 |
# File 'lib/rosett_ai/package_manager/base.rb', line 46 def available_packages(pattern) raise NotImplementedError, "#{self.class}#available_packages must be implemented" end |
#backend_name ⇒ String
Returns backend identifier.
58 59 60 |
# File 'lib/rosett_ai/package_manager/base.rb', line 58 def backend_name raise NotImplementedError, "#{self.class}#backend_name must be implemented" end |
#install(package_name) ⇒ Boolean
Install a package by name.
22 23 24 |
# File 'lib/rosett_ai/package_manager/base.rb', line 22 def install(package_name) raise NotImplementedError, "#{self.class}#install must be implemented" end |
#installed?(package_name) ⇒ Boolean
Check if a package is installed.
38 39 40 |
# File 'lib/rosett_ai/package_manager/base.rb', line 38 def installed?(package_name) raise NotImplementedError, "#{self.class}#installed? must be implemented" end |
#remove(package_name) ⇒ Boolean
Remove a package by name.
30 31 32 |
# File 'lib/rosett_ai/package_manager/base.rb', line 30 def remove(package_name) raise NotImplementedError, "#{self.class}#remove must be implemented" end |
#update_index ⇒ Boolean
Update the package index.
53 54 55 |
# File 'lib/rosett_ai/package_manager/base.rb', line 53 def update_index raise NotImplementedError, "#{self.class}#update_index must be implemented" end |