class PulseMeter::DygraphsVisualize::SeriesColor

Public Class Methods

new(options = {}) click to toggle source
# File lib/pulse_meter/dygraphs_visualize/series_color.rb, line 5
def initialize(options = {})
  @forced_color = options[:color]
  @name = options[:name] || rand.to_s
end

Public Instance Methods

color() click to toggle source
# File lib/pulse_meter/dygraphs_visualize/series_color.rb, line 10
def color
  @color ||= calculate_color 
end

Private Instance Methods

calculate_color() click to toggle source
# File lib/pulse_meter/dygraphs_visualize/series_color.rb, line 16
def calculate_color
  @forced_color || calculate_color_by_name
end
calculate_color_by_name() click to toggle source
# File lib/pulse_meter/dygraphs_visualize/series_color.rb, line 20
def calculate_color_by_name
  '#' + hashed_color_bytes.map{|b| '%02x' % darken(b)}.join
end
darken(byte) click to toggle source
# File lib/pulse_meter/dygraphs_visualize/series_color.rb, line 33
def darken(byte)
  byte / 2
end
hashed_color_bytes() click to toggle source
# File lib/pulse_meter/dygraphs_visualize/series_color.rb, line 24
def hashed_color_bytes
  n = Zlib::crc32(@name)
  [
    n & 0xFF,
    (n & 0xFF00) >> 8,
    (n & 0xFF0000) >> 16
  ]
end