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