class ActiveModel::ObserverArray
Stores the enabled/disabled state of individual observers for a particular model class.
Attributes
model_class[R]
Public Instance Methods
disable(*observers, &block)
click to toggle source
Disables one or more observers. This supports multiple forms:
ORM.observers.disable :all # => disables all observers for all models subclassed from # an ORM base class that includes ActiveModel::Observing # e.g. ActiveRecord::Base 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. User.observers.disable :all do # all user observers are disabled for # just the duration of the block end
# File lib/rails/observers/active_model/observer_array.rb, line 40 def disable(*observers, &block) set_enablement(false, observers, &block) end
enable(*observers, &block)
click to toggle source
Enables one or more observers. This supports multiple forms:
ORM.observers.enable :all # => enables all observers for all models subclassed from # an ORM base class that includes ActiveModel::Observing # e.g. ActiveRecord::Base 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. 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.
# File lib/rails/observers/active_model/observer_array.rb, line 69 def enable(*observers, &block) set_enablement(true, observers, &block) end