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