Class: Discorb::Button

Inherits:
Component show all
Defined in:
lib/discorb/components.rb

Overview

Represents a button component.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Component

from_hash, to_payload

Constructor Details

#initialize(label, style = :primary, emoji: nil, custom_id: nil, url: nil, disabled: false) -> Button

Initialize a new button.

Parameters:

  • label (String)

    The label of the button.

  • style (:primary, :secondary, :success, :danger, :link) (defaults to: :primary)

    The style of the button.

  • emoji (Discorb::Emoji) (defaults to: nil)

    The emoji of the button.

  • custom_id (String) (defaults to: nil)

    The custom ID of the button.

  • url (String) (defaults to: nil)

    The URL of the button.

  • disabled (Boolean) (defaults to: false)

    Whether the button is disabled.



108
109
110
111
112
113
114
115
# File 'lib/discorb/components.rb', line 108

def initialize(label, style = :primary, emoji: nil, custom_id: nil, url: nil, disabled: false)
  @label = label
  @style = style
  @emoji = emoji
  @custom_id = custom_id
  @url = url
  @disabled = disabled
end

Instance Attribute Details

#custom_id -> String

Returns The custom ID of the button. Won't be used if the style is :link.

Returns:

  • (String)

    The custom ID of the button. Won't be used if the style is :link.



82
83
84
# File 'lib/discorb/components.rb', line 82

def custom_id
  @custom_id
end

#disabled -> Boolean Also known as: disabled?

Returns Whether the button is disabled.

Returns:

  • (Boolean)

    Whether the button is disabled.



87
88
89
# File 'lib/discorb/components.rb', line 87

def disabled
  @disabled
end

#emoji -> Discorb::Emoji

Returns The emoji of the button.

Returns:



79
80
81
# File 'lib/discorb/components.rb', line 79

def emoji
  @emoji
end

#label -> String

Returns The label of the button.

Returns:

  • (String)

    The label of the button.



75
76
77
# File 'lib/discorb/components.rb', line 75

def label
  @label
end

#style -> :primary, ...

Returns The style of the button.

Returns:

  • (:primary, :secondary, :success, :danger, :link)

    The style of the button.



77
78
79
# File 'lib/discorb/components.rb', line 77

def style
  @style
end

#url -> String

Returns The URL of the button. Only used when the style is :link.

Returns:

  • (String)

    The URL of the button. Only used when the style is :link.



85
86
87
# File 'lib/discorb/components.rb', line 85

def url
  @url
end

Instance Method Details

#to_hash -> Hash

Converts the button to a hash.

Returns:

  • (Hash)

    A hash representation of the button.

See Also:



123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/discorb/components.rb', line 123

def to_hash
  if @style == :link
    {
      type: 2,
      label: @label,
      style: self.class.styles[@style],
      url: @url,
      emoji: hash_emoji(@emoji),
      disabled: @disabled,
    }
  else
    {
      type: 2,
      label: @label,
      style: self.class.styles[@style],
      custom_id: @custom_id,
      emoji: hash_emoji(@emoji),
      disabled: @disabled,
    }
  end
end