# File lib/ansi/code.rb, line 287
    def rgb(*args)
      case args.size
      when 1, 2
        hex, background = *args
        esc = "\e[" + hex_code(hex, background) + "m"
      when 3, 4
        red, green, blue, background = *args
        esc = "\e[" + rgb_code(red, green, blue, background) + "m"
      else
        raise ArgumentError
      end

      if block_given?
        return yield.to_s unless $ansi
        return "#{esc}#{yield}#{ENDCODE}"
      else
        return esc
      end
    end