class Actors::Channel

Attributes

name[R]
subscribers[R]

Public Class Methods

new(name) click to toggle source
# File lib/actors/channel.rb, line 5
def initialize(name)
  raise ArgumentError, "'name' should be an instance of Symbol" unless name.instance_of? Symbol

  @name = name
  @subscribers = TypedMap.new(ktype: Symbol, vtype: Actors::Actor)
end

Public Instance Methods

publish(message) click to toggle source
# File lib/actors/channel.rb, line 12
def publish(message)
  raise ArgumentError, "'message' should be an instance of Hash" unless message.instance_of? Hash

  @subscribers.keys.each do |name|
    @subscribers[name].call message
  end
end