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 | Hexadecimal | |————|————| | :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 | | :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 |

Parameters:

  • color (Symbol)

    A Discord color name.

Returns:



197
198
199
# File 'lib/discorb/color.rb', line 197

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:



113
114
115
# File 'lib/discorb/color.rb', line 113

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:



126
127
128
# File 'lib/discorb/color.rb', line 126

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

Instance Method Details

#inspect -> Object



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

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
# File 'lib/discorb/color.rb', line 87

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

#to_s -> String

Converts a color to a #000000 string.

Returns:

  • (String)

    Converted string.



98
99
100
# File 'lib/discorb/color.rb', line 98

def to_s
  "##{to_hex}"
end