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 |