Class: DiscordRDA::ModalBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/discord_rda/interactions/interaction.rb

Overview

Builder for creating modals

Instance Method Summary collapse

Constructor Details

#initialize(data = {}) ⇒ ModalBuilder

Returns a new instance of ModalBuilder.



510
511
512
513
# File 'lib/discord_rda/interactions/interaction.rb', line 510

def initialize(data = {})
  @data = data
  @components = []
end

Instance Method Details

#paragraph(custom_id:, label:, placeholder: nil, min_length: nil, max_length: nil, required: true, value: nil) ⇒ Object

Add a paragraph text input

Parameters:

  • custom_id (String)

    Input custom ID

  • label (String)

    Input label

  • placeholder (String) (defaults to: nil)

    Placeholder text

  • min_length (Integer) (defaults to: nil)

    Minimum length

  • max_length (Integer) (defaults to: nil)

    Maximum length

  • required (Boolean) (defaults to: true)

    Whether required

  • value (String) (defaults to: nil)

    Default value



535
536
537
# File 'lib/discord_rda/interactions/interaction.rb', line 535

def paragraph(custom_id:, label:, placeholder: nil, min_length: nil, max_length: nil, required: true, value: nil)
  add_text_input(2, custom_id, label, placeholder: placeholder, min_length: min_length, max_length: max_length, required: required, value: value)
end

#short(custom_id:, label:, placeholder: nil, min_length: nil, max_length: nil, required: true, value: nil) ⇒ Object

Add a short text input

Parameters:

  • custom_id (String)

    Input custom ID

  • label (String)

    Input label

  • placeholder (String) (defaults to: nil)

    Placeholder text

  • min_length (Integer) (defaults to: nil)

    Minimum length

  • max_length (Integer) (defaults to: nil)

    Maximum length

  • required (Boolean) (defaults to: true)

    Whether required

  • value (String) (defaults to: nil)

    Default value



523
524
525
# File 'lib/discord_rda/interactions/interaction.rb', line 523

def short(custom_id:, label:, placeholder: nil, min_length: nil, max_length: nil, required: true, value: nil)
  add_text_input(1, custom_id, label, placeholder: placeholder, min_length: min_length, max_length: max_length, required: required, value: value)
end

#to_hHash

Convert to hash for API

Returns:

  • (Hash)

    Modal data



541
542
543
544
# File 'lib/discord_rda/interactions/interaction.rb', line 541

def to_h
  @data[:components] = @components.map { |c| { type: 1, components: [c] } }
  @data
end