Sha256: 296e7fa0457b4483b450534e999b117033b93647a93614a8937a9dd16ce9d4ca

Contents?: true

Size: 1.56 KB

Versions: 1

Compression:

Stored size: 1.56 KB

Contents

# -*- coding: utf-8 -*-

class Colors
  COLORS = {
    :aqua    => 0x0F,
    :cyan    => 0x0F,
    :black   => 0x08,
    :blue    => 0x0C,
    :brown   => 0x10,
    :magenta => 0x0E,
    :fuchsia => 0x0E,
    :gray    => 0x17,
    :grey    => 0x17,
    :green   => 0x11,
    :lime    => 0x0B,
    :navy    => 0x12,
    :orange  => 0x35,
    :pink    => 0x21,
    :purple  => 0x14,
    :red     => 0x0A,
    :silver  => 0x16,
    :white   => 0x09,
    :yellow  => 0x0D,
  }   # :nodoc:

  ###############################################################################
  #
  # get_color(colour)
  #
  # Used in conjunction with the set_xxx_color methods to convert a color
  # string into a number. Color range is 0..63 but we will restrict it
  # to 8..63 to comply with Gnumeric. Colors 0..7 are repeated in 8..15.
  #
  def get_color(color = nil) # :nodoc:
    if color.respond_to?(:to_int) && color.respond_to?(:+)
      # the default color if arg is outside range,
      if color < 0 || 63 < color
        0x7FFF
      # or an index < 8 mapped into the correct range,
      elsif color < 8
        (color + 8).to_i
      # or an integer in the valid range
      else
        color.to_i
      end
    elsif color.respond_to?(:to_sym)
      color = color.downcase.to_sym if color.respond_to?(:to_str)
      # or the color string converted to an integer,
      if COLORS.has_key?(color)
        COLORS[color]
      # or the default color if string is unrecognised,
      else
        0x7FFF
      end
    else
      0x7FFF
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
writeexcel-0.4.1 lib/writeexcel/colors.rb