module LaGear::ActiveRecord::PublishTriggerable
Public Instance Methods
publish_after_commit(routing_key, opts) { |self| ... }
click to toggle source
# File lib/la_gear/active_record/publish_triggerable.rb, line 4 def publish_after_commit(routing_key, opts) publish_method = "publish_#{routing_key}" la_gear_opts = la_gear_options(opts) define_method publish_method do message = block_given? ? yield(self) : {} Bus.publish(routing_key.to_s, message, la_gear_opts) end after_commit publish_method.to_sym, after_commit_options(opts) end
send_after_commit(routing_key, opts) { |self| ... }
click to toggle source
# File lib/la_gear/active_record/publish_triggerable.rb, line 14 def send_after_commit(routing_key, opts) publish_method = "publish_#{routing_key}" la_gear_opts = la_gear_options(opts) define_method publish_method do message = block_given? ? yield(self) : {} Bus.publish_local(routing_key.to_s, message, la_gear_opts) end after_commit publish_method.to_sym, after_commit_options(opts) end
send_in_after_commit(routing_key, opts, interval) { |self| ... }
click to toggle source
# File lib/la_gear/active_record/publish_triggerable.rb, line 24 def send_in_after_commit(routing_key, opts, interval) publish_method = "publish_#{routing_key}" la_gear_opts = la_gear_options(opts) define_method publish_method do message = block_given? ? yield(self) : {} Bus.publish_local_in(routing_key.to_s, message, la_gear_opts, interval) end after_commit publish_method.to_sym, after_commit_options(opts) end
Private Instance Methods
after_commit_options(opts = {})
click to toggle source
# File lib/la_gear/active_record/publish_triggerable.rb, line 36 def after_commit_options(opts = {}) opts.reject { |k, _v| [:version, :suffix].include?(k) } end
la_gear_options(opts = {})
click to toggle source
# File lib/la_gear/active_record/publish_triggerable.rb, line 40 def la_gear_options(opts = {}) opts.select { |k, _v| [:version, :suffix].include?(k) } end