Module: Beholders::CallbackHooks

Defined in:
lib/beholders/callback_hooks.rb

Constant Summary collapse

BEHOLDER_CB_RAILS_3 =
%i[
  after_save
  after_create
  after_update
  after_destroy
  after_commit
].freeze
BEHOLDER_CB_RAILS_5 =
[
  *BEHOLDER_CB_RAILS_3,
  :after_create_commit,
  :after_update_commit,
  :after_destroy_commit
].freeze

Instance Method Summary collapse

Instance Method Details

#observed_by(observer) ⇒ Object

Pass class name as string not class, for same reason rails 5.1 deprecates the latter: github.com/rails/rails/blob/5-1-stable/activerecord/CHANGELOG.md



21
22
23
24
25
26
27
# File 'lib/beholders/callback_hooks.rb', line 21

def observed_by(observer)
  instance_eval do
    available_callbacks(self).each do |cb|
      send cb, -> { observer.constantize.trigger(cb, self) }
    end
  end
end