Class: ESM::Bot::DeliveryOverseer
- Inherits:
-
Object
- Object
- ESM::Bot::DeliveryOverseer
- Defined in:
- lib/esm/bot/delivery_overseer.rb
Defined Under Namespace
Classes: Delivery, Envelope, PendingDelivery
Instance Method Summary collapse
- #add(message, delivery_channel, embed_message: "", replying_to: nil, wait: false) ⇒ Object
- #get(id) ⇒ Object
-
#initialize ⇒ DeliveryOverseer
constructor
A new instance of DeliveryOverseer.
Constructor Details
#initialize ⇒ DeliveryOverseer
Returns a new instance of DeliveryOverseer.
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/esm/bot/delivery_overseer.rb', line 53 def initialize @queue = Queue.new @deliveries = {} @deliveries_mutex = Mutex.new @check_every = ESM.config.bot_delivery_overseer.check_every.freeze @deliveries_thread = oversee_deliveries! @sender_thread_one = oversee! @sender_thread_two = oversee! end |
Instance Method Details
#add(message, delivery_channel, embed_message: "", replying_to: nil, wait: false) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/esm/bot/delivery_overseer.rb', line 64 def add(, delivery_channel, embed_message: "", replying_to: nil, wait: false) envelope = Envelope.new( message: , delivery_channel: delivery_channel, embed_message: , replying_to: , wait: wait ) @queue << envelope return PendingDelivery.new(envelope.id) if wait nil end |
#get(id) ⇒ Object
79 80 81 82 83 84 |
# File 'lib/esm/bot/delivery_overseer.rb', line 79 def get(id) @deliveries_mutex.synchronize do delivery = @deliveries.delete(id) delivery&. end end |