Stores the enabled/disabled state of individual observers for a particular model class.
Methods
    - D
 - E
 - N
 - O
 - S
 - T
 
Attributes
      | [R] | model_class | 
Class Public methods
      
        
            
              new(model_class, *args)
            
            Link
          
          
          
            Instance Public methods
      
        
            
              disable(*observers, &block)
            
            Link
          
          
          
            Disables one or more observers. This supports multiple forms:
ORM.observers.disable :user_observer # => disables the UserObserver User.observers.disable AuditTrail # => disables the AuditTrail observer for User notifications. # Other models will still notify the AuditTrail observer. ORM.observers.disable :observer_1, :observer_2 # => disables Observer1 and Observer2 for all models. ORM.observers.disable :all # => disables all observers for all models. User.observers.disable :all do # all user observers are disabled for # just the duration of the block end
            
              disabled_for?(observer)
            
            Link
          
          
          
            Returns true if the given observer is disabled for the model class.
            
              enable(*observers, &block)
            
            Link
          
          
          
            Enables one or more observers. This supports multiple forms:
ORM.observers.enable :user_observer # => enables the UserObserver User.observers.enable AuditTrail # => enables the AuditTrail observer for User notifications. # Other models will not be affected (i.e. they will not # trigger notifications to AuditTrail if previously disabled) ORM.observers.enable :observer_1, :observer_2 # => enables Observer1 and Observer2 for all models. ORM.observers.enable :all # => enables all observers for all models. User.observers.enable :all do # all user observers are enabled for # just the duration of the block end
Note: all observers are enabled by default. This method is only useful when you have previously disabled one or more observers.
Instance Protected methods
      
        
            
              disabled_observer_stack()
            
            Link
          
          
          
            
            
              disabled_observers()
            
            Link
          
          
          
            
            
              each_subclass_array()
            
            Link
          
          
          
            
            
              end_transaction()
            
            Link
          
          
          
            
            
              observer_class_for(observer)
            
            Link
          
          
          
            # File activemodel/lib/active_model/observer_array.rb, line 74 def observer_class_for(observer) return observer if observer.is_a?(Class) if observer.respond_to?(:to_sym) # string/symbol observer.to_s.camelize.constantize else raise ArgumentError, "#{observer} was not a class or a " + "lowercase, underscored class name as expected." end end
            
              set_enablement(enabled, observers)
            
            Link
          
          
          
            # File activemodel/lib/active_model/observer_array.rb, line 119 def set_enablement(enabled, observers) if block_given? transaction do set_enablement(enabled, observers) yield end else observers = ActiveModel::Observer.descendants if observers == [:all] observers.each do |obs| klass = observer_class_for(obs) unless klass < ActiveModel::Observer raise ArgumentError.new("#{obs} does not refer to a valid observer") end if enabled disabled_observers.delete(klass) else disabled_observers << klass end end each_subclass_array do |array| array.set_enablement(enabled, observers) end end end
            
              start_transaction()
            
            Link