class Rgb2Hex

Class with single class method which does convertion

Public Class Methods

convert(*vals) click to toggle source

Produces a HEX value out of 3 ints

Example:

>> Rgb2Hex(0, 0, 0)
=> #000000

Arguments:

red: (Integer)
green: (Integer)
blue: (Integer)
# File lib/rgb2hex.rb, line 14
def self.convert(*vals)
        red = green = blue = 0

        case vals.length
        when 0
                #do nothing
        when 1
                matched = vals[0].to_s.match( /.*?(-?\d+).*?(-?\d+).*?(-?\d+).*?/ )
                red = matched[1].to_i
                green = matched[2].to_i
                blue = matched[3].to_i
        when 3
                red = vals[0].to_s.match( /-?\d+/ )[0].to_i
                green = vals[1].to_s.match( /-?\d+/ )[0].to_i
                blue = vals[2].to_s.match( /-?\d+/ )[0].to_i
        else
                return "illegal number of input arguments"
        end

        actual_convertion(red, green, blue)
end

Private Class Methods

actual_convertion(red = 0, green = 0, blue = 0) click to toggle source
# File lib/rgb2hex.rb, line 38
def self.actual_convertion(red = 0, green = 0, blue = 0)
        raise ArgumentError, "input argument is less than 0", caller if [red, green, blue].min < 0
        raise ArgumentError, "input argument is more than 255", caller if [red, green, blue].max > 255

        "#" + ("%02x" % red) + ("%02x" % green) + ("%02x" % blue)
end