Class: Makit::Commands::Strategies::Base
- Inherits:
-
Object
- Object
- Makit::Commands::Strategies::Base
- Defined in:
- lib/makit/commands/strategies/base.rb
Overview
Base class for command execution strategies.
Execution strategies define how commands are actually executed - synchronously, asynchronously, in parallel, etc. This provides flexibility in execution patterns while maintaining a consistent interface.
Direct Known Subclasses
Instance Method Summary collapse
-
#config ⇒ Hash
Get strategy configuration.
-
#execute(request) ⇒ Result
Execute a command request.
-
#execute_batch(requests) ⇒ Array<Result>
Execute multiple requests (default: sequential execution).
-
#name ⇒ String
Get strategy name for logging and debugging.
-
#supports?(_request) ⇒ Boolean
Check if this strategy can handle the given request.
Instance Method Details
#config ⇒ Hash
Get strategy configuration.
71 72 73 |
# File 'lib/makit/commands/strategies/base.rb', line 71 def config {} end |
#execute(request) ⇒ Result
Execute a command request.
This method must be implemented by subclasses to provide the actual command execution logic. The implementation should create a Result object and populate it with execution details.
35 36 37 |
# File 'lib/makit/commands/strategies/base.rb', line 35 def execute(request) raise NotImplementedError, "#{self.class.name} must implement #execute" end |
#execute_batch(requests) ⇒ Array<Result>
Execute multiple requests (default: sequential execution).
Override this method in subclasses to provide optimized batch execution such as parallel execution.
46 47 48 |
# File 'lib/makit/commands/strategies/base.rb', line 46 def execute_batch(requests) requests.map { |request| execute(request) } end |
#name ⇒ String
Get strategy name for logging and debugging.
64 65 66 |
# File 'lib/makit/commands/strategies/base.rb', line 64 def name self.class.name.split("::").last end |
#supports?(_request) ⇒ Boolean
Check if this strategy can handle the given request.
Override this method to provide conditional strategy selection based on request properties.
57 58 59 |
# File 'lib/makit/commands/strategies/base.rb', line 57 def supports?(_request) true end |