Class: Discorb::Color

Inherits:
Object
  • Object
show all
Defined in:
lib/discorb/color.rb

Overview

Represents RGB color.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value) -> Color

Create a color from a Integer.

Parameters:

  • value (Integer)

    A color value.



48
49
50
# File 'lib/discorb/color.rb', line 48

def initialize(value)
  @value = value
end

Instance Attribute Details

#value -> Object

Returns the value of attribute value.



8
9
10
# File 'lib/discorb/color.rb', line 8

def value
  @value
end

Class Method Details

.[](color) -> Discorb::Color

Create a color from a Discord's color. Currently these colors are supported:

Color name Color code
`:teal` `#1abc9c`
`:dark_teal` `#11806a`
`:green` `#2ecc71`
`:dark_green` `#1f8b4c`
`:blue` `#3498db`
`:dark_blue` `#206694`
`:purple` `#9b59b6`
`:dark_purple` `#71368a`
`:magenta` `#e91e63`
`:dark_magenta` `#ad1457`
`:gold` `#f1c40f`
`:dark_gold` `#c27c0e`
`:orange` `#e67e22`
`:dark_orange` `#a84300`
`:red` `#e74c3c`
`:dark_red` `#992d22`
`:lighter_grey` `#95a5a6`
`:lighter_gray` `#95a5a6`
`:dark_grey` `#607d8b`
`:dark_gray` `#607d8b`
`:light_grey` `#979c9f`
`:light_gray` `#979c9f`
`:darker_grey` `#546e7a`
`:darker_gray` `#546e7a`
`:og_blurple` `#7289da`
`:blurple` `#5865f2`
`:greyple` `#99aab5`
`:dark_theme` `#36393f`
`:fuchsia` `#eb459e`
`:yellow` `#fee75c`

Parameters:

  • color (Symbol)

    A Discord color name.

Returns:



175
176
177
# File 'lib/discorb/color.rb', line 175

def self.[](color)
  new(@discord_colors[color])
end

.from_hex(hex) -> Discorb::Color

Create a color from a hexadecimal string.

Parameters:

  • hex (String)

    A hexadecimal string.

Returns:



117
118
119
# File 'lib/discorb/color.rb', line 117

def self.from_hex(hex)
  new(hex.to_i(16))
end

.from_rgb(red, green, blue) -> Discorb::Color

Create a color from a RGB array.

Parameters:

  • red (Integer)

    A red value.

  • green (Integer)

    A green value.

  • blue (Integer)

    A blue value.

Returns:



130
131
132
# File 'lib/discorb/color.rb', line 130

def self.from_rgb(red, green, blue)
  new(red * 256 * 256 + green * 256 + blue)
end

Instance Method Details

#inspect -> Object



106
107
108
# File 'lib/discorb/color.rb', line 106

def inspect
  "#<#{self.class} #{@value}/#{self}>"
end

#to_hex -> String

Convert a color to a hexadecimal value.

Returns:

  • (String)

    A hexadecimal value.



66
67
68
# File 'lib/discorb/color.rb', line 66

def to_hex
  @value.to_s(16).rjust(6, "0")
end

#to_i -> Integer

Integerize a color.

Returns:

  • (Integer)

    A color value.



57
58
59
# File 'lib/discorb/color.rb', line 57

def to_i
  @value
end

#to_rgb -> Array(Integer, Integer, Integer) Also known as: to_a, deconstruct

Convert a color to RGB array.

Returns:

  • (Array(Integer, Integer, Integer))

    A RGB array.



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

def to_rgb
  [@value / (256 * 256), @value / 256 % 256, @value % 256]
end

#to_rgb_hash -> Hash{:r, :g, :b => Integer} Also known as: deconstruct_keys

Convert a color to RGB hash.

Returns:

  • (Hash{:r, :g, :b => Integer})

    A RGB hash.



87
88
89
90
91
92
93
# File 'lib/discorb/color.rb', line 87

def to_rgb_hash
  {
    r: @value / (256 * 256),
    g: @value / 256 % 256,
    b: @value % 256,
  }
end

#to_s -> String

Converts a color to a #000000 string.

Returns:

  • (String)

    Converted string.



102
103
104
# File 'lib/discorb/color.rb', line 102

def to_s
  "##{to_hex}"
end