#!/usr/bin/env ruby
# load necessary modules
require 'pstore'
class Array
def sum
ret = 0
each { |val| ret += val }
ret
end
end
FeedSize = Struct.new(:key, :size)
# feed cache path
PATH = ARGV[0] || ENV['HOME'] + '/.raggle/feed_cache.store'
sizes = []
store = PStore::new(PATH)
store.transaction { |s|
s.roots.each { |root|
size = FeedSize.new(root, 0)
s[root].each { |item|
%w{title url desc}.each { |key|
size.size += item[key].length if item[key]
}
}
sizes << size
}
}
sum = sizes.collect { |s| s.size }.sum
sizes.sort! { |a, b| a.size <=> b.size }
sizes.each { |size|
puts '%6d (%2.1f%%): %s' % [size.size, size.size * 100.0 / sum, size.key]
}
syntax highlighted by Code2HTML, v. 0.9.1