module ActiveJobChannel::Broadcaster
Public Instance Methods
active_job_channel(options = {})
click to toggle source
# File lib/active_job_channel/broadcaster.rb, line 9 def active_job_channel(options = {}) class_attribute :ajc_config self.ajc_config = { global_broadcast: false } ajc_config.merge!(options) after_perform :broadcast_success rescue_from '::StandardError' do |exception| broadcast_failure(exception) raise exception end end
ajc_channel_name()
click to toggle source
# File lib/active_job_channel/broadcaster.rb, line 28 def ajc_channel_name if ajc_config[:global_broadcast] if ajc_identifier.present? raise UnnecessaryIdentifierError, self.class.to_s end ::ActiveJobChannel::Channel::CHANNEL_NAME else [::ActiveJobChannel::Channel::CHANNEL_NAME, ajc_identifier]. compact. join('#') end end
ajc_identifier()
click to toggle source
# File lib/active_job_channel/broadcaster.rb, line 42 def ajc_identifier if ajc_identifier_missing? raise ::ActiveJobChannel::NoIdentifierError, self.class.to_s end @ajc_identifier end
ajc_identifier_missing?()
click to toggle source
# File lib/active_job_channel/broadcaster.rb, line 50 def ajc_identifier_missing? !ajc_config[:global_broadcast] && @ajc_identifier.nil? end
broadcast_failure(exception)
click to toggle source
# File lib/active_job_channel/broadcaster.rb, line 54 def broadcast_failure(exception) ::ActionCable.server.broadcast( ajc_channel_name, status: 'failure', data: serialize, error: exception.inspect ) end
broadcast_success()
click to toggle source
# File lib/active_job_channel/broadcaster.rb, line 63 def broadcast_success ::ActionCable.server.broadcast( ajc_channel_name, status: 'success', data: serialize ) end