piotrmurach/tty-sparkline

View on GitHub
examples/color.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

require "pastel"

require_relative  "../lib/tty-sparkline"

pastel = Pastel.new
data = Array.new(120) { rand(100) }
min, max = data.minmax
avg = data.sum.fdiv(data.size)

sparkline = TTY::Sparkline.new(data, height: 6)

chart = sparkline.render do |val, bar, col, row|
  if val == max
    pastel.cyan(bar)
  elsif val == min
    pastel.magenta(bar)
  elsif val < avg
    pastel.red(bar)
  else
    pastel.green(bar)
  end
end

puts "#{pastel.green("■")} above avg #{pastel.red("■")} below avg " \
     "#{pastel.cyan("■")} max #{pastel.magenta("■")} min"
puts chart