lib/redstream/model.rb in redstream-0.0.1 vs lib/redstream/model.rb in redstream-0.1.0

- old
+ new

@@ -1,6 +1,5 @@ - module Redstream # Include Redstream::Model in your model to stream the model's updates via # redis streams. # # @example @@ -13,11 +12,11 @@ # end module Model def self.included(base) base.extend(ClassMethods) - end + end module ClassMethods # Adds after_save, after_touch, after_destroy and, most importantly, # after_commit callbacks. after_save, after_touch and after_destroy write # a delay message to a delay stream. The delay messages are exactly like @@ -28,15 +27,15 @@ # # @param producer [Redstream::Producer] A Redstream::Producer that is # responsible for writing to a redis stream def redstream_callbacks(producer: Producer.new) - after_save { |object| producer.delay object } - after_touch { |object| producer.delay object } - after_destroy { |object| producer.delay object } - after_commit { |object| producer.queue object } - end + after_save { |object| producer.delay(object) if object.saved_changes.present? } + after_touch { |object| producer.delay(object) } + after_destroy { |object| producer.delay(object) } + after_commit { |object| producer.queue(object) if object.saved_changes.present? } + end def redstream_name name.pluralize.underscore end end @@ -50,8 +49,7 @@ # end def redstream_payload { id: id } end - end + end end -