class Actor::Messaging::Read

Attributes

queue[R]

Public Class Methods

build(address) click to toggle source
# File lib/actor/messaging/read.rb, line 10
def self.build address
  queue = address.queue

  new queue
end
call(address, wait: nil) click to toggle source
# File lib/actor/messaging/read.rb, line 16
def self.call address, wait: nil
  instance = build address

  instance.(wait: wait)
end
new(queue) click to toggle source
# File lib/actor/messaging/read.rb, line 6
def initialize queue
  @queue = queue
end

Public Instance Methods

address?(address) click to toggle source
# File lib/actor/messaging/read.rb, line 31
def address? address
  queue? address.queue
end
call(wait: nil) click to toggle source
# File lib/actor/messaging/read.rb, line 22
def call wait: nil
  non_block = wait == false

  queue.deq non_block

rescue ThreadError
  return nil
end
next_message?(message) click to toggle source
# File lib/actor/messaging/read.rb, line 35
def next_message? message
  begin
    next_message = @queue.deq true
  rescue ThreadError
    return false
  end

  next_message == message
end
queue?(queue) click to toggle source
# File lib/actor/messaging/read.rb, line 45
def queue? queue
  self.queue == queue
end