Module: Rage::Events::Subscriber::ClassMethods
- Defined in:
 - lib/rage/events/subscriber.rb
 
Instance Method Summary collapse
- 
  
    
      #rescue_from(*klasses, with: nil) {|exception| ... } ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Define exception handlers for the subscriber.
 - 
  
    
      #subscribe_to(*event_classes, deferred: false)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Subscribe the class to one or more events.
 
Instance Method Details
#rescue_from(*klasses, with: nil) {|exception| ... } ⇒ Object
    Note:
    
  
If you do not re-raise exceptions in deferred subscribers, the subscriber will be marked as successful and Rage will not attempt to retry it.
Define exception handlers for the subscriber.
      123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139  | 
    
      # File 'lib/rage/events/subscriber.rb', line 123 def rescue_from(*klasses, with: nil, &block) unless with if block_given? with = Rage::Internal.define_dynamic_method(self, block) else raise ArgumentError, "No handler provided. Pass the `with` keyword argument or provide a block." end end if @__rescue_handlers.nil? @__rescue_handlers = [] elsif @__rescue_handlers.frozen? @__rescue_handlers = @__rescue_handlers.dup end @__rescue_handlers.unshift([klasses, with]) end  | 
  
#subscribe_to(*event_classes, deferred: false) ⇒ Object
Subscribe the class to one or more events.
      102 103 104 105 106 107 108 109 110 111 112 113 114 115  | 
    
      # File 'lib/rage/events/subscriber.rb', line 102 def subscribe_to(*event_classes, deferred: false) @__event_classes = (@__event_classes || []) | event_classes @__is_deferred = !!deferred @__log_context = { subscriber: name }.freeze @__event_classes.each do |event_class| Rage::Events.__register_subscriber(event_class, self) end if @__is_deferred include Rage::Deferred::Task alias_method :perform, :__call end end  |