Sha256: bca254033fac8ada7eb3dc504c8f06e9617843d23d6199cf511db37356429416

Contents?: true

Size: 924 Bytes

Versions: 1

Compression:

Stored size: 924 Bytes

Contents

require "rand_palette/version"

module RandPalette

  Scalar = (0..255)
  ScalarDesc = Scalar.to_a.reverse.slice 1,254

  Palette = [Scalar.map{|c| [255, c, 0] },
             ScalarDesc.map{|c| [c, 255, 0] },
             Scalar.map{|c| [0, 255, c] },
             ScalarDesc.map{|c| [0, c, 255] },
             Scalar.map{|c| [c, 0, 255] },
             ScalarDesc.map{|c| [255, 0, c] }].flatten 1

  def self.random n, alpha: 1
    raise RangeError, "No more than #{range} kinds od color" if n > range
    picked = rand range
    steps = range / n
    n.times.map do |t|
      picked = picked + steps
      picked = picked - range if picked >= range
      picked
    end.map do |picked|
      RGBA.new(Palette[picked] + [alpha]).to_s
    end
  end

  def self.range
    Palette.size
  end

  class RGBA

    def initialize rgba
      @rgba = rgba
    end

    def to_s
      "rgba(#{@rgba.join(',')})"
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rand_palette-0.1.1 lib/rand_palette.rb