Class: Discorb::Embed
- Inherits:
 - 
      Object
      
        
- Object
 - Discorb::Embed
 
 
- Defined in:
 - lib/discorb/embed.rb
 
Overview
Represents an embed of discord.
Defined Under Namespace
Classes: Author, Field, Footer, Image, Provider, Thumbnail, Video
Instance Attribute Summary collapse
- 
  
    
      #author -> Discorb::Embed::Author? 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
The author of embed.
 - 
  
    
      #color -> Discorb::Color? 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
The color of embed.
 - 
  
    
      #description -> String? 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
The description of embed.
 - 
  
    
      #fields -> Array<Discorb::Embed::Field> 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
The fields of embed.
 - 
  
    
      #footer -> Discorb::Embed::Footer? 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
The footer of embed.
 - 
  
    
      #image -> Discorb::Embed::Image 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
The image of embed.
 - 
  
    
      #thumbnail -> Discorb::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.
 
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, data: nil) -> Embed 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
Initialize a new Embed 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, data: nil) -> Embed
Initialize a new Embed object.
      47 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 74 75 76 77 78 79  | 
    
      # File 'lib/discorb/embed.rb', line 47 def initialize(title = nil, description = nil, color: nil, url: nil, timestamp: nil, author: nil, fields: nil, footer: nil, image: nil, thumbnail: nil, data: nil) if data.nil? @title = title @description = description @url = url @timestamp = @color = color @author = @fields = fields || [] @footer = @image = image @thumbnail = thumbnail @type = "rich" else @title = data[:title] @description = data[:description] @url = data[:url] @timestamp = data[:timestamp] && Time.iso8601(data[:timestamp]) @type = data[:type] @color = data[:color] && Color.new(data[:color]) @footer = data[:footer] && Footer.new(data[:footer][:text], icon: data[:footer][:icon]) @author = if data[:author] Author.new(data[:author][:name], icon: data[:author][:icon], url: data[:author][:url]) end @thumbnail = data[:thumbnail] && Thumbnail.new(data[:thumbnail]) @image = data[:image] && Image.new(data[:image]) @video = data[:video] && Video.new(data[:video]) @provider = data[:provider] && Provider.new(data[:provider]) @fields = data[:fields] ? data[:fields].map { |f| Field.new(f[:name], f[:value], inline: f[:inline]) } : [] end end  | 
  
Instance Attribute Details
#author -> Discorb::Embed::Author?
Returns The author of embed.
      19 20 21  | 
    
      # File 'lib/discorb/embed.rb', line 19 def @author end  | 
  
#color -> Discorb::Color?
Returns The color of embed.
      17 18 19  | 
    
      # File 'lib/discorb/embed.rb', line 17 def color @color end  | 
  
#description -> String?
Returns The description of embed.
      11 12 13  | 
    
      # File 'lib/discorb/embed.rb', line 11 def description @description end  | 
  
#fields -> Array<Discorb::Embed::Field>
Returns The fields of embed.
      21 22 23  | 
    
      # File 'lib/discorb/embed.rb', line 21 def fields @fields end  | 
  
#footer -> Discorb::Embed::Footer?
Returns The footer of embed.
      23 24 25  | 
    
      # File 'lib/discorb/embed.rb', line 23 def @footer end  | 
  
#image -> Discorb::Embed::Image
Returns The image of embed.
      28 29 30  | 
    
      # File 'lib/discorb/embed.rb', line 28 def image @image end  | 
  
#thumbnail -> Discorb::Embed::Thumbnail
Returns The thumbnail of embed.
      28 29 30  | 
    
      # File 'lib/discorb/embed.rb', line 28 def thumbnail @thumbnail end  | 
  
#timestamp -> Time?
Returns The timestamp of embed.
      15 16 17  | 
    
      # File 'lib/discorb/embed.rb', line 15 def @timestamp end  | 
  
#title -> String?
Returns The title of embed.
      9 10 11  | 
    
      # File 'lib/discorb/embed.rb', line 9 def title @title end  | 
  
#type -> Symbol (readonly)
Returns The type of embed.
      25 26 27  | 
    
      # File 'lib/discorb/embed.rb', line 25 def type @type end  | 
  
#url -> String?
Returns The url of embed.
      13 14 15  | 
    
      # File 'lib/discorb/embed.rb', line 13 def url @url end  | 
  
Instance Method Details
#to_hash -> Hash
Convert embed to hash.
      95 96 97 98 99 100 101 102 103 104 105 106 107 108  | 
    
      # File 'lib/discorb/embed.rb', line 95 def to_hash { title: @title, description: @description, url: @url, timestamp: @timestamp&.iso8601, color: @color&.to_i, footer: @footer&.to_hash, image: @image&.to_hash, thumbnail: @thumbnail&.to_hash, author: @author&.to_hash, fields: @fields&.map { |f| f.to_hash }, } end  |