Skip to content

Instantly share code, notes, and snippets.

@GarrisonJ
Forked from jcromartie/spark.rb
Last active December 10, 2015 13:18
Show Gist options
  • Save GarrisonJ/4439794 to your computer and use it in GitHub Desktop.
Save GarrisonJ/4439794 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
# prints a sparkline in the terminal using the supplied list of numbers
# examples:
# spark.rb 10 20 30 100 90 80
# spark.rb 1 2 0.4 0.1 1.3 0.7
@ticks = %w[▁ ▂ ▃ ▄ ▅ ▆ ▇]
values = ARGV.map { |x| x.to_f }
min, range, scale = values.min, values.max - values.min, @ticks.length - 1
if !(range == 0)
puts values.map { |x| @ticks[(((x - min) / range) * scale).round] }.join
else
puts values.map { |x| @ticks[1] }.join
end
@GarrisonJ
Copy link
Author

Just in case range == 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment