Module: Renalware::Broadcasting

Extended by:
ActiveSupport::Concern
Includes:
Wisper::Publisher
Included in:
Events::CreateEvent, Events::UpdateEvent, Feeds::MessageProcessor, Letters::ApproveLetter, Letters::CompleteLetter, Letters::ResolveDefaultElectronicCCs, Modalities::ChangePatientModality
Defined in:
app/models/concerns/renalware/broadcasting.rb

Defined Under Namespace

Classes: Subscriber

Instance Method Summary collapse

Instance Method Details

#broadcasting_to_configured_subscribersObject

Subscribes any listeners configured in Renalware.config.broadcast_subscription_map to the current instance.

Example usage

class SomeServiceObject
  include Broadcasting

  def call
    ..
  end
end

SomeServiceObject.new(..).broadcasting_to_configured_subscribers.call(..)

See github.com/krisleech/wisper



49
50
51
52
53
54
55
56
57
# File 'app/models/concerns/renalware/broadcasting.rb', line 49

def broadcasting_to_configured_subscribers
  subscribers = Array(Renalware.config.broadcast_subscription_map[self.class.name])
  subscribers.each do |subscriber|
    # Support String subscribers eg a simple class name as well as Subscriber instances.
    subscriber = Subscriber.new(subscriber) unless subscriber.respond_to?(:klass)
    subscribe(subscriber.instance, async: subscriber.async?)
  end
  self
end