lib/templates/outbox.rb in outboxable-0.1.2 vs lib/templates/outbox.rb in outboxable-0.1.3
- old
+ new
@@ -1,12 +1,12 @@
class Outbox < ApplicationRecord
attribute :allow_publish, :boolean, default: true
# Callbacks
- after_commit :publish, if: :allow_publish?
+ before_create :set_last_attempted_at
before_save :check_publishing
-
+ after_commit :publish, if: :allow_publish?
# Enums
enum status: { pending: 0, published: 1, failed: 2 }
enum size: { single: 0, batch: 1 }
# Validations
@@ -15,18 +15,17 @@
validates :routing_key, presence: true
# Associations
belongs_to :outboxable, polymorphic: true, optional: true
- def increment_attempt
- self.attempts = attempts + 1
+ def set_last_attempted_at
self.last_attempted_at = Time.zone.now
end
def publish
Outboxable::Worker.perform_async(id)
end
def check_publishing
self.allow_publish = false if published?
end
-end
\ No newline at end of file
+end