class Discorb::Component

@abstract Represents a Discord component.

Public Class Methods

from_hash(data) click to toggle source

Create a new component from hash data.

@see discord.com/developers/docs/interactions/message-components Official Discord API documentation @param [Hash] data Hash data.

@return [Component] A new component.

# File lib/discorb/components.rb, line 18
def from_hash(data)
  case data[:type]
  when 2
    Button.new(
      data[:label],
      data[:style],
      emoji: data[:emoji],
      custom_id: data[:custom_id],
      url: data[:url],
      disabled: data[:disabled],
    )
  when 3
    SelectMenu.new(
      data[:custom_id],
      data[:options].map { |o| SelectMenu::Option.from_hash(o) },
      placeholder: data[:placeholder],
      min_values: data[:min_values],
      max_values: data[:max_values],
    )
  end
end