Sha256: dd6744648d0cdc5d6cc5455266e4bc68aed1049cdf0a701d9e6ab4332fc791e3

Contents?: true

Size: 996 Bytes

Versions: 7

Compression:

Stored size: 996 Bytes

Contents

# frozen_string_literal: true

module Discorb
  #
  # Represents an activity for Gateway Command.
  #
  class Activity
    @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 = self.class.types[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

    class << self
      # @private
      attr_reader :types
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
discorb-0.15.0 lib/discorb/gateway_requests.rb
discorb-0.14.0 lib/discorb/gateway_requests.rb
discorb-0.13.4 lib/discorb/gateway_requests.rb
discorb-0.13.3 lib/discorb/gateway_requests.rb
discorb-0.13.2 lib/discorb/gateway_requests.rb
discorb-0.13.1 lib/discorb/gateway_requests.rb
discorb-0.13.0 lib/discorb/gateway_requests.rb