Class: Discordrb::Webhooks::Builder
- Inherits:
-
Object
- Object
- Discordrb::Webhooks::Builder
- Defined in:
- lib/discordrb/webhooks/builder.rb
Overview
A class that acts as a builder for a webhook message object.
Instance Attribute Summary collapse
-
#avatar_url ⇒ String
The URL of an image file to be used as an avatar.
-
#content ⇒ String
The content of the message.
-
#embeds ⇒ Array<Embed>
readonly
The embeds attached to this message.
-
#file ⇒ File?
The file attached to this message.
-
#tts ⇒ true, false
Whether this message should use TTS or not.
-
#username ⇒ String
The username the webhook will display as.
Instance Method Summary collapse
-
#<<(embed) ⇒ Object
Adds an embed to this message.
-
#add_embed(embed = nil) {|embed| ... } ⇒ Embed
Convenience method to add an embed using a block-style builder pattern.
-
#initialize(content: '', username: nil, avatar_url: nil, tts: false, file: nil, embeds: []) ⇒ Builder
constructor
A new instance of Builder.
-
#to_json_hash ⇒ Hash
A hash representation of the created message, for JSON format.
-
#to_multipart_hash ⇒ Hash
A hash representation of the created message, for multipart format.
Constructor Details
#initialize(content: '', username: nil, avatar_url: nil, tts: false, file: nil, embeds: []) ⇒ Builder
Returns a new instance of Builder.
8 9 10 11 12 13 14 15 |
# File 'lib/discordrb/webhooks/builder.rb', line 8 def initialize(content: '', username: nil, avatar_url: nil, tts: false, file: nil, embeds: []) @content = content @username = username @avatar_url = avatar_url @tts = tts @file = file @embeds = end |
Instance Attribute Details
#avatar_url ⇒ String
The URL of an image file to be used as an avatar. If this is not set, the default avatar from the webhook's settings will be used instead.
29 30 31 |
# File 'lib/discordrb/webhooks/builder.rb', line 29 def avatar_url @avatar_url end |
#content ⇒ String
The content of the message. May be 2000 characters long at most.
19 20 21 |
# File 'lib/discordrb/webhooks/builder.rb', line 19 def content @content end |
#embeds ⇒ Array<Embed> (readonly)
Returns the embeds attached to this message.
71 72 73 |
# File 'lib/discordrb/webhooks/builder.rb', line 71 def @embeds end |
#file ⇒ File?
Returns the file attached to this message.
68 69 70 |
# File 'lib/discordrb/webhooks/builder.rb', line 68 def file @file end |
#tts ⇒ true, false
Whether this message should use TTS or not. By default, it doesn't.
33 34 35 |
# File 'lib/discordrb/webhooks/builder.rb', line 33 def tts @tts end |
#username ⇒ String
The username the webhook will display as. If this is not set, the default username set in the webhook's settings will be used instead.
24 25 26 |
# File 'lib/discordrb/webhooks/builder.rb', line 24 def username @username end |
Instance Method Details
#<<(embed) ⇒ Object
Adds an embed to this message.
46 47 48 49 50 |
# File 'lib/discordrb/webhooks/builder.rb', line 46 def <<() raise ArgumentError, 'Embeds and files are mutually exclusive!' if @file @embeds << end |
#add_embed(embed = nil) {|embed| ... } ⇒ Embed
Convenience method to add an embed using a block-style builder pattern
60 61 62 63 64 65 |
# File 'lib/discordrb/webhooks/builder.rb', line 60 def ( = nil) ||= Embed.new yield() self << end |
#to_json_hash ⇒ Hash
Returns a hash representation of the created message, for JSON format.
74 75 76 77 78 79 80 81 82 |
# File 'lib/discordrb/webhooks/builder.rb', line 74 def to_json_hash { content: @content, username: @username, avatar_url: @avatar_url, tts: @tts, embeds: @embeds.map(&:to_hash) } end |
#to_multipart_hash ⇒ Hash
Returns a hash representation of the created message, for multipart format.
85 86 87 88 89 90 91 92 93 |
# File 'lib/discordrb/webhooks/builder.rb', line 85 def to_multipart_hash { content: @content, username: @username, avatar_url: @avatar_url, tts: @tts, file: @file } end |