Skip to content

Instantly share code, notes, and snippets.

@nsauk
nsauk / puts_hist.rb
Last active February 16, 2023 23:24 — forked from nevans/gist:9374041
simple ruby console histogram generator
# Pass in an enumeration of data and
# (optionally) a block to extract the grouping aspect of the data.
#
# Optional: sort_by lambda (operates on group key and count)
def puts_hist(data, sort_by: nil, &block)
data = data.map(&block) if block
counts = data.each_with_object(Hash.new(0)) { |k, h| h[k] += 1 }
max = counts.values.max
width = ENV['COLUMNS'].to_i