Class: Synthra::Behaviors::Registry
- Inherits:
-
Object
- Object
- Synthra::Behaviors::Registry
- Defined in:
- lib/synthra/behaviors/registry.rb
Overview
Registry for behavior classes
Thread-safe registry for storing and retrieving behavior implementations. Supports both class-based and block-based behavior registration.
Defined Under Namespace
Classes: BlockBehavior, BlockBehaviorInstance
Class Method Summary collapse
-
.clear ⇒ void
Clear all registered behaviors.
-
.lookup(name) ⇒ Class
Look up a behavior by name.
-
.names ⇒ Array<Symbol>
List all registered behavior names.
-
.register(name, klass = nil) {|context, result, value| ... } ⇒ void
Register a behavior.
-
.register_builtins! ⇒ void
Register all built-in behaviors.
-
.registered?(name) ⇒ Boolean
Check if a behavior is registered.
Class Method Details
.clear ⇒ void
This method returns an undefined value.
Clear all registered behaviors
Primarily used for testing. After calling this, you'll need to call register_builtins! to restore built-in behaviors.
143 144 145 |
# File 'lib/synthra/behaviors/registry.rb', line 143 def clear @mutex.synchronize { @behaviors.clear } end |
.lookup(name) ⇒ Class
Look up a behavior by name
96 97 98 99 100 101 102 |
# File 'lib/synthra/behaviors/registry.rb', line 96 def lookup(name) @mutex.synchronize do @behaviors.fetch(name.to_sym) do raise ArgumentError, "Unknown behavior: #{name}" end end end |
.names ⇒ Array<Symbol>
List all registered behavior names
130 131 132 |
# File 'lib/synthra/behaviors/registry.rb', line 130 def names @mutex.synchronize { @behaviors.keys } end |
.register(name, klass = nil) {|context, result, value| ... } ⇒ void
This method returns an undefined value.
Register a behavior
72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/synthra/behaviors/registry.rb', line 72 def register(name, klass = nil, &block) @mutex.synchronize do if block_given? @behaviors[name.to_sym] = BlockBehavior.new(&block) elsif klass @behaviors[name.to_sym] = klass else raise ArgumentError, "Must provide a class or block" end end end |
.register_builtins! ⇒ void
This method returns an undefined value.
Register all built-in behaviors
Called automatically at gem initialization. Registers the standard behaviors like latency, failure, partial_data, etc.
156 157 158 159 160 161 162 163 164 |
# File 'lib/synthra/behaviors/registry.rb', line 156 def register_builtins! register(:latency, Latency) register(:failure, Failure) register(:partial_data, PartialData) register(:close_connection, CloseConnection) register(:simulate_error, SimulateError) register(:randomize_order, RandomizeOrder) register(:deprecated, Deprecated) end |
.registered?(name) ⇒ Boolean
Check if a behavior is registered
115 116 117 118 119 |
# File 'lib/synthra/behaviors/registry.rb', line 115 def registered?(name) @mutex.synchronize do @behaviors.key?(name.to_sym) end end |