Sha256: 03e3301aab280deac93e82108d7c60937ac6075caa18dfd81f56498fd6bf4fc7

Contents?: true

Size: 526 Bytes

Versions: 1

Compression:

Stored size: 526 Bytes

Contents

# frozen_string_literal: true

require 'beaconable/version'
require 'beaconable/object_was'
require 'beaconable/base_beacon'
require 'active_record'

module Beaconable
  extend ActiveSupport::Concern
  included do
    before_save :save_for_beacon
    before_destroy :save_for_beacon
    after_commit :fire_beacon
  end

  private

  def save_for_beacon
    @object_was ||= ObjectWas.new(self).call
  end

  def fire_beacon
    "#{self.class.name}Beacon".constantize.new(self, @object_was).call
    @object_was = nil
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
beaconable-0.3.2 lib/beaconable.rb