Class: Actor::Messaging::Publish::Substitute

Inherits:
Object
  • Object
show all
Defined in:
lib/actor/messaging/publish/substitute.rb

Defined Under Namespace

Classes: Record

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSubstitute

Returns a new instance of Substitute.



9
10
11
12
13
# File 'lib/actor/messaging/publish/substitute.rb', line 9

def initialize
  @registered_addresses = Set.new
  @unregistered_addresses = Set.new
  @records = []
end

Instance Attribute Details

#recordsObject (readonly)

Returns the value of attribute records.



5
6
7
# File 'lib/actor/messaging/publish/substitute.rb', line 5

def records
  @records
end

#registered_addressesObject (readonly)

Returns the value of attribute registered_addresses.



6
7
8
# File 'lib/actor/messaging/publish/substitute.rb', line 6

def registered_addresses
  @registered_addresses
end

#unregistered_addressesObject (readonly)

Returns the value of attribute unregistered_addresses.



7
8
9
# File 'lib/actor/messaging/publish/substitute.rb', line 7

def unregistered_addresses
  @unregistered_addresses
end

Instance Method Details

#call(message, wait: nil) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/actor/messaging/publish/substitute.rb', line 23

def call(message, wait: nil)
  wait = false if wait.nil?

  record = Record.new(message, wait)

  records << record
end

#published?(message = nil, wait: nil) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
50
51
52
53
54
55
56
# File 'lib/actor/messaging/publish/substitute.rb', line 47

def published?(message=nil, wait: nil)
  records.each do |record|
    next unless message.nil? or record.message == message
    next unless wait.nil? or record.wait == wait

    return true
  end

  false
end

#register(address) ⇒ Object



15
16
17
# File 'lib/actor/messaging/publish/substitute.rb', line 15

def register(address)
  registered_addresses << address
end

#registered?(address = nil) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
34
35
36
37
# File 'lib/actor/messaging/publish/substitute.rb', line 31

def registered?(address=nil)
  if address.nil?
    registered_addresses.any?
  else
    registered_addresses.include?(address)
  end
end

#unregister(address) ⇒ Object



19
20
21
# File 'lib/actor/messaging/publish/substitute.rb', line 19

def unregister(address)
  unregistered_addresses << address
end

#unregistered?(address = nil) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
42
43
44
45
# File 'lib/actor/messaging/publish/substitute.rb', line 39

def unregistered?(address=nil)
  if address.nil?
    unregistered_addresses.any?
  else
    unregistered_addresses.include?(address)
  end
end