lib/discorb/event_handler.rb
# frozen_string_literal: true
module Discorb
#
# Represents a event handler.
# This class shouldn't be instantiated directly.
# Use {Client#on} instead.
#
class EventHandler
# @return [Proc] the block to be called.
attr_reader :block
# @return [Symbol] the event id.
attr_reader :id
# @return [Hash] the event metadata.
attr_reader :metadata
# @return [Boolean] whether the event is once or not.
attr_reader :once
alias once? once
def initialize(block, id, metadata)
@block = block
@id = id
@once = metadata.fetch(:once, false)
@metadata = metadata
@rescue = nil
end
def inspect
"#<#{self.class} @id=#{@id}"
end
#
# Calls the block associated with the event.
#
def call(...)
@block.call(...)
end
end
end