Skip to content

Instantly share code, notes, and snippets.

@jcromartie
Created November 15, 2011 13:37
Show Gist options
  • Star 16 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save jcromartie/1367091 to your computer and use it in GitHub Desktop.
Save jcromartie/1367091 to your computer and use it in GitHub Desktop.
Sparklines in Ruby
#!/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
puts values.map { |x| @ticks[(((x - min) / range) * scale).round] }.join
@GarrisonJ
Copy link

@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

Just in case range == 0

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