Class: RubyCord::Embed
- Inherits:
-
Object
- Object
- RubyCord::Embed
- Defined in:
- lib/rubycord/embed.rb
Overview
Represents an embed of discord.
Defined Under Namespace
Classes: Author, Field, Footer, Image, Provider, Thumbnail, Video
Instance Attribute Summary collapse
-
#author ⇒ RubyCord::Embed::Author?
The author of embed.
-
#color ⇒ RubyCord::Color?
The color of embed.
-
#description ⇒ String?
The description of embed.
-
#fields ⇒ Array<RubyCord::Embed::Field>
The fields of embed.
-
#footer ⇒ RubyCord::Embed::Footer?
The footer of embed.
-
#image ⇒ RubyCord::Embed::Image
The image of embed.
-
#thumbnail ⇒ RubyCord::Embed::Thumbnail
The thumbnail of embed.
-
#timestamp ⇒ Time?
The timestamp of embed.
-
#title ⇒ String?
The title of embed.
-
#type ⇒ Symbol
readonly
The type of embed.
-
#url ⇒ String?
The url of embed.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(title = nil, description = nil, color: nil, url: nil, timestamp: nil, author: nil, fields: nil, footer: nil, image: nil, thumbnail: nil) ⇒ Embed
constructor
Initialize a new Embed object.
- #inspect ⇒ Object
-
#to_hash ⇒ Hash
Convert embed to hash.
Constructor Details
#initialize(title = nil, description = nil, color: nil, url: nil, timestamp: nil, author: nil, fields: nil, footer: nil, image: nil, thumbnail: nil) ⇒ Embed
Initialize a new Embed object.
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/rubycord/embed.rb', line 48 def initialize( title = nil, description = nil, color: nil, url: nil, timestamp: nil, author: nil, fields: nil, footer: nil, image: nil, thumbnail: nil ) @title = title @description = description @url = url = @color = color && (color.is_a?(Color) ? color : Color.new(color)) = @fields = fields || [] = @image = image && (image.is_a?(String) ? Image.new(image) : image) @thumbnail = thumbnail && (thumbnail.is_a?(String) ? Thumbnail.new(thumbnail) : thumbnail) @type = :rich end |
Instance Attribute Details
#author ⇒ RubyCord::Embed::Author?
Returns The author of embed.
20 21 22 |
# File 'lib/rubycord/embed.rb', line 20 def end |
#color ⇒ RubyCord::Color?
Returns The color of embed.
18 19 20 |
# File 'lib/rubycord/embed.rb', line 18 def color @color end |
#description ⇒ String?
Returns The description of embed.
12 13 14 |
# File 'lib/rubycord/embed.rb', line 12 def description @description end |
#fields ⇒ Array<RubyCord::Embed::Field>
Returns The fields of embed.
22 23 24 |
# File 'lib/rubycord/embed.rb', line 22 def fields @fields end |
#footer ⇒ RubyCord::Embed::Footer?
Returns The footer of embed.
24 25 26 |
# File 'lib/rubycord/embed.rb', line 24 def end |
#image ⇒ RubyCord::Embed::Image
Returns The image of embed.
29 30 31 |
# File 'lib/rubycord/embed.rb', line 29 def image @image end |
#thumbnail ⇒ RubyCord::Embed::Thumbnail
Returns The thumbnail of embed.
29 30 31 |
# File 'lib/rubycord/embed.rb', line 29 def thumbnail @thumbnail end |
#timestamp ⇒ Time?
Returns The timestamp of embed.
16 17 18 |
# File 'lib/rubycord/embed.rb', line 16 def end |
#title ⇒ String?
Returns The title of embed.
10 11 12 |
# File 'lib/rubycord/embed.rb', line 10 def title @title end |
#type ⇒ Symbol (readonly)
Returns The type of embed.
26 27 28 |
# File 'lib/rubycord/embed.rb', line 26 def type @type end |
#url ⇒ String?
Returns The url of embed.
14 15 16 |
# File 'lib/rubycord/embed.rb', line 14 def url @url end |
Class Method Details
.from_hash(data) ⇒ Object
148 149 150 151 152 |
# File 'lib/rubycord/embed.rb', line 148 def self.from_hash(data) inst = allocate inst.initialize_hash(data) inst end |
Instance Method Details
#inspect ⇒ Object
123 124 125 |
# File 'lib/rubycord/embed.rb', line 123 def inspect "#<#{self.class} \"#{@title}\">" end |
#to_hash ⇒ Hash
Convert embed to hash.
133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/rubycord/embed.rb', line 133 def to_hash ret = { type: "rich" } ret[:title] = @title if @title ret[:description] = @description if @description ret[:url] = @url if @url ret[:timestamp] = &.iso8601 if ret[:color] = @color&.to_i if @color ret[:footer] = &.to_hash if ret[:image] = @image&.to_hash if @image ret[:thumbnail] = @thumbnail&.to_hash if @thumbnail ret[:author] = &.to_hash if ret[:fields] = @fields&.map(&:to_hash) if @fields.any? ret end |