Mixin rick.mixin.Runnable
Mixin that defines a runnable interface. Classes that extend Runnable implement a run() method
that receives a Di container.
Location: rick.mixin.Runnable
Methods
Runnable.run(di: Di)
Execute the runnable. The default implementation is a no-op; subclasses should override this method.
Parameters:
di(Di) - Dependency injection container
Usage
from rick.mixin import Runnable
from rick.base import Di
class MigrationTask(Runnable):
def run(self, di: Di):
db = di.get('db')
db.execute('ALTER TABLE users ADD COLUMN active BOOLEAN DEFAULT TRUE')
print("Migration complete")
class SeedTask(Runnable):
def run(self, di: Di):
db = di.get('db')
db.execute("INSERT INTO users (name) VALUES ('admin')")
print("Seeding complete")
# Execute tasks
di = Di()
di.add('db', my_database)
tasks = [MigrationTask(), SeedTask()]
for task in tasks:
task.run(di)
Related Topics
- Di - Dependency injection container
- Injectable - DI integration mixin
- Translator - Translation mixin