Class: Zero::Moo::Publisher

Inherits:
Communicator show all
Defined in:
lib/zero/moo/publisher.rb

Direct Known Subclasses

Subscriber

Defined Under Namespace

Classes: BindError, Error, InvalidAddressError, MessageError, MissingAddressError, SocketOptionError, SocketShutdownError

Instance Attribute Summary collapse

Attributes inherited from Communicator

#context

Instance Method Summary collapse

Constructor Details

#initialize(**kwargs) ⇒ Publisher

Get publishing instance.

Parameters:

  • address (String)

Raises:



24
25
26
27
28
29
30
31
32
# File 'lib/zero/moo/publisher.rb', line 24

def initialize **kwargs
  @address = kwargs.delete(:address)
  kwargs[:type] = 1 
  raise MissingAddressError, 
    ":address for bind was not given" unless @address
  validate_address
  validate_port
  super **kwargs
end

Instance Attribute Details

#addressObject (readonly)

Returns the value of attribute address.



16
17
18
# File 'lib/zero/moo/publisher.rb', line 16

def address
  @address
end

Instance Method Details

#push!(message) ⇒ Object

Push a message to all subscribers.



37
38
39
40
41
# File 'lib/zero/moo/publisher.rb', line 37

def push! message
  bind! unless socket
  error? socket.send_string(message), raize: MessageError
  message
end