module Beholders::CallbackHooks

Constants

BEHOLDER_CB_RAILS_3
BEHOLDER_CB_RAILS_5

Public Instance Methods

observed_by(observer) click to toggle source

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

# 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

Private Instance Methods

available_callbacks(klass) click to toggle source
# File lib/beholders/callback_hooks.rb, line 31
def available_callbacks(klass)
  if klass.respond_to?(:after_create_commit)
    BEHOLDER_CB_RAILS_5
  else
    BEHOLDER_CB_RAILS_3
  end
end