module Color

Constants

NAMES

Public Class Methods

hex(value) click to toggle source
# File lib/color/hex.rb, line 2
def self.hex(value)
  # remove hash if exists
  value = value.gsub(/#/, '')

  rgb = []
  rgb.push(value[0..1].hex) # red
  rgb.push(value[2..3].hex) # green
  rgb.push(value[4..5].hex) # blue

  rgb
end
name(name) click to toggle source
# File lib/color/name.rb, line 145
def self.name(name)
  NAMES[name.to_s.downcase.to_sym]
end
parse(value) click to toggle source
# File lib/color.rb, line 5
def self.parse(value)
  if value =~ /^\#{0,1}[a-f0-9]{6}$/i
    Color.hex(value)
  elsif value.is_a?(Array)
    # TODO: Validate RGB color array
    value
  elsif Color::NAMES.has_key?(value.downcase.to_sym)
    Color.name(value)
  else
    raise "Unknown color format"
  end
end