Sha256: 35938681e8f7827ec4e269ffe3347366bc1443ca3953bac5df8177d22ddcea8a

Contents?: true

Size: 1.03 KB

Versions: 7

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

module Discorb
  #
  # Represents an activity for Gateway Command.
  #
  class Activity
    # @private
    # @return [{Symbol => Integer}] The mapping of activity types.
    TYPES = {
      playing: 0,
      streaming: 1,
      listening: 2,
      watching: 3,
      competing: 5,
    }.freeze

    #
    # Initializes a new Activity.
    #
    # @param [String] name The name of the activity.
    # @param [:playing, :streaming, :listening, :watching, :competing] type The type of activity.
    # @param [String] url The URL of the activity.
    #
    def initialize(name, type = :playing, url = nil)
      @name = name
      @type = TYPES[type] or raise ArgumentError, "Invalid activity type: #{type}"
      @url = url
    end

    #
    # Converts the activity to a hash.
    #
    # @return [Hash] A hash representation of the activity.
    #
    def to_hash
      {
        name: @name,
        type: @type,
        url: @url,
      }
    end

    def inspect
      "#<#{self.class} @type=#{@type}>"
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
discorb-0.19.0 lib/discorb/gateway_requests.rb
discorb-0.18.1 lib/discorb/gateway_requests.rb
discorb-0.18.0 lib/discorb/gateway_requests.rb
discorb-0.17.1 lib/discorb/gateway_requests.rb
discorb-0.17.0 lib/discorb/gateway_requests.rb
discorb-0.16.0 lib/discorb/gateway_requests.rb
discorb-0.15.1 lib/discorb/gateway_requests.rb