Sha256: 46ccf25eb74c2c23b4f06effa28f3970a684c001b74e117b672e592deaebc95b
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
require 'wisper' module Wisper module ActiveRecord module Publisher extend ActiveSupport::Concern included do include Wisper::Publisher after_validation :after_validation_broadcast after_commit :after_create_broadcast, on: :create after_commit :after_update_broadcast, on: :update after_commit :after_destroy_broadcast, on: :destroy after_commit :after_commit_broadcast after_rollback :after_rollback_broadcast end private def after_validation_broadcast action = new_record? ? 'create' : 'update' broadcast("#{action}_#{broadcast_model_name_key}_failed", self) unless errors.empty? end def after_create_broadcast broadcast(:after_create, self) broadcast("create_#{broadcast_model_name_key}_successful", self) end def after_update_broadcast broadcast(:after_update, self) broadcast("update_#{broadcast_model_name_key}_successful", self) end def after_destroy_broadcast broadcast(:after_destroy, self) broadcast("destroy_#{broadcast_model_name_key}_successful", self) end def after_commit_broadcast broadcast(:after_commit, self) broadcast("#{broadcast_model_name_key}_committed", self) end def after_rollback_broadcast broadcast(:after_rollback, self) end def broadcast_model_name_key self.class.model_name.param_key end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wisper-activerecord-1.0.0 | lib/wisper/active_record/publisher.rb |