Sha256: 4f563e8298aeb4d5d034539e4f8960073fcd68317b1bb26241356c648b04fed1

Contents?: true

Size: 837 Bytes

Versions: 1

Compression:

Stored size: 837 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
    picked = rand Palette.size
    steps = Palette.size / n
    n.times.map do |t|
      picked = picked + steps
      picked = picked - Palette.size if picked >= Palette.size
      picked
    end.map do |picked|
      RGBA.new(Palette[picked] + [alpha]).to_s
    end
  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.0 lib/rand_palette.rb