module Chatrix::Events
Keeps track of what events have already been processed.
Public Class Methods
parse_event(event)
click to toggle source
Extract the event ID from an event object. If this is a string, it's returned verbatim.
@param event [String,Hash] The event object to extract information from. @return [String] The event ID.
@raise ArgumentError if the event object is of an invalid type or does
not contain an ID.
# File lib/chatrix/events.rb, line 32 def self.parse_event(event) if event.is_a? String event elsif event.is_a?(Hash) && event.key?('event_id') event['event_id'] else raise ArgumentError, 'Invalid event object' end end
processed(event)
click to toggle source
Marks an event as having been processed. @param event [String,Hash] The affected event.
# File lib/chatrix/events.rb, line 11 def self.processed(event) @processed.push parse_event event end
processed?(event)
click to toggle source
Checks if an event has been processed.
@param event [String,Hash] The event to check. @return [Boolean] `true` if the event has been processed,
otherwise `false`.
# File lib/chatrix/events.rb, line 20 def self.processed?(event) @processed.member? parse_event event end