Class: Tasker::Events::CustomRegistry
- Inherits:
- 
      Object
      
        - Object
- Tasker::Events::CustomRegistry
 
- Includes:
- Singleton
- Defined in:
- lib/tasker/events/custom_registry.rb
Overview
CustomRegistry manages registration and validation of developer-defined custom events
This registry provides a safe way for developers to define their own events alongside Tasker's system events, with conflict prevention and namespace validation.
Usage: registry = Tasker::Events::CustomRegistry.instance registry.register_event('order.fulfilled', description: 'Order completed', fired_by: ['OrderService'])
Or through the Events module: Tasker::Events.register_custom_event('order.fulfilled', description: 'Order completed')
Instance Method Summary collapse
- 
  
    
      #clear!  ⇒ void 
    
    
      (also: #clear_all_events)
    
  
  
  
  
  
  
  
  
  
    Clear all registered custom events (useful for testing). 
- 
  
    
      #custom_events  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    Get all registered custom events. 
- 
  
    
      #event_info(name)  ⇒ Hash? 
    
    
  
  
  
  
  
  
  
  
  
    Get event information by name. 
- 
  
    
      #event_metadata(name)  ⇒ Hash? 
    
    
  
  
  
  
  
  
  
  
  
    Get metadata for a specific custom event. 
- 
  
    
      #initialize  ⇒ CustomRegistry 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of CustomRegistry. 
- 
  
    
      #register_event(name, description: 'Custom event', fired_by: [])  ⇒ void 
    
    
  
  
  
  
  
  
  
  
  
    Register a custom event with metadata. 
- 
  
    
      #registered?(name)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    Check if an event is registered as a custom event. 
- 
  
    
      #registered_events  ⇒ Array<String> 
    
    
  
  
  
  
  
  
  
  
  
    Get all registered custom event names. 
Constructor Details
#initialize ⇒ CustomRegistry
Returns a new instance of CustomRegistry.
| 21 22 23 | # File 'lib/tasker/events/custom_registry.rb', line 21 def initialize @custom_events = {} end | 
Instance Method Details
#clear! ⇒ void Also known as: clear_all_events
This method returns an undefined value.
Clear all registered custom events (useful for testing)
| 75 76 77 | # File 'lib/tasker/events/custom_registry.rb', line 75 def clear! @custom_events.clear end | 
#custom_events ⇒ Hash
Get all registered custom events
| 52 53 54 | # File 'lib/tasker/events/custom_registry.rb', line 52 def custom_events @custom_events.dup end | 
#event_info(name) ⇒ Hash?
Get event information by name
| 93 94 95 | # File 'lib/tasker/events/custom_registry.rb', line 93 def event_info(name) @custom_events[name] end | 
#event_metadata(name) ⇒ Hash?
Get metadata for a specific custom event
| 68 69 70 | # File 'lib/tasker/events/custom_registry.rb', line 68 def (name) @custom_events[name] end | 
#register_event(name, description: 'Custom event', fired_by: []) ⇒ void
This method returns an undefined value.
Register a custom event with metadata
| 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | # File 'lib/tasker/events/custom_registry.rb', line 32 def register_event(name, description: 'Custom event', fired_by: []) validate_event_name!(name) @custom_events[name] = { name: name, category: 'custom', description: description, fired_by: Array(fired_by), registered_at: Time.current } # Register with dry-events publisher so subscribers can listen Tasker::Events::Publisher.instance.register_event(name) Rails.logger.debug { "Registered custom event: #{name}" } end | 
#registered?(name) ⇒ Boolean
Check if an event is registered as a custom event
| 60 61 62 | # File 'lib/tasker/events/custom_registry.rb', line 60 def registered?(name) @custom_events.key?(name) end | 
#registered_events ⇒ Array<String>
Get all registered custom event names
| 85 86 87 | # File 'lib/tasker/events/custom_registry.rb', line 85 def registered_events @custom_events.keys end |