Module: ColoR

Defined in:
lib/color.rb,
lib/color/version.rb

Overview

Offering functionality to get the complementary colors of a given input.

Defined Under Namespace

Classes: Error

Constant Summary collapse

VERSION =
"0.1.6"

Class Method Summary collapse

Class Method Details

.get_analogous_scheme(color) ⇒ Object

Raises:



27
28
29
30
31
32
33
34
35
# File 'lib/color.rb', line 27

def self.get_analogous_scheme(color)
  raise HexCodeError.new("Not a valid Hex Color"), color unless ::Hex.hex?(color)

  hsv_color = hex_to_hsv(color)
  analogous_colors = []
  analogous_colors.push(hsv_to_hex(HSV.add_hue_to_hsv(15, [hsv_color[0], hsv_color[1], hsv_color[2]])))
  analogous_colors.push(hsv_to_hex(HSV.add_hue_to_hsv(330, [hsv_color[0], hsv_color[1], hsv_color[2]])))
  analogous_colors
end

.get_complementary_color(color) ⇒ Object

Raises:



10
11
12
13
14
15
16
# File 'lib/color.rb', line 10

def self.get_complementary_color(color)
  raise HexCodeError.new("Not a valid Hex Color"), color unless ::Hex.hex?(color)

  rgb_color = ::RGB.hex_to_rgb(color)
  comp_r = [255 - rgb_color[0], 255 - rgb_color[1], 255 - rgb_color[2]]
  ::RGB.rgb_to_hex(comp_r)
end

.get_monochromatic_color(color) ⇒ Object

Raises:



18
19
20
21
22
23
24
25
# File 'lib/color.rb', line 18

def self.get_monochromatic_color(color)
  raise HexCodeError.new("Not a valid Hex Color"), color unless ::Hex.hex?(color)

  hue_color = hex_to_hsv(color)
  mono_color = ::HSV.calculate_monochromatic_color(hue_color)
  mono_rgb = ::HSV.hsv_to_rgb(mono_color[0], mono_color[1], mono_color[2])
  ::RGB.rgb_to_hex(mono_rgb)
end

.hex_to_hsv(hex_color) ⇒ Object



37
38
39
40
# File 'lib/color.rb', line 37

def self.hex_to_hsv(hex_color)
  rgb_color = ::RGB.hex_to_rgb(hex_color)
  ::HSV.rgb_to_hsv(rgb_color)
end

.hsv_to_hex(hsv_color) ⇒ Object



42
43
44
45
# File 'lib/color.rb', line 42

def self.hsv_to_hex(hsv_color)
  rgb_color = ::HSV.hsv_to_rgb(hsv_color[0], hsv_color[1], hsv_color[2])
  ::RGB.rgb_to_hex(rgb_color)
end