Class: Derrick::CLI::AggregateFormatter
- Inherits:
-
Object
- Object
- Derrick::CLI::AggregateFormatter
- Defined in:
- lib/derrick/cli.rb
Instance Method Summary collapse
- #each {|render_header| ... } ⇒ Object
-
#initialize(aggregate) ⇒ AggregateFormatter
constructor
A new instance of AggregateFormatter.
- #key_size ⇒ Object
- #render_header ⇒ Object
- #render_line(name, stats) ⇒ Object
- #types_summary(stats) ⇒ Object
Constructor Details
#initialize(aggregate) ⇒ AggregateFormatter
Returns a new instance of AggregateFormatter.
54 55 56 |
# File 'lib/derrick/cli.rb', line 54 def initialize(aggregate) @aggregate = Hash[aggregate.sort_by { |p, a| -a.count }] end |
Instance Method Details
#each {|render_header| ... } ⇒ Object
58 59 60 61 |
# File 'lib/derrick/cli.rb', line 58 def each yield render_header @aggregate.each { |n, s| yield render_line(n, s) } end |
#key_size ⇒ Object
91 92 93 |
# File 'lib/derrick/cli.rb', line 91 def key_size @key_size ||= @aggregate.keys.map(&:size).max end |
#render_header ⇒ Object
63 64 65 66 67 68 69 70 |
# File 'lib/derrick/cli.rb', line 63 def render_header [ 'Pattern'.ljust(key_size), 'Count'.rjust(6), 'Exp'.rjust(4), 'Type', ].join(' ') end |
#render_line(name, stats) ⇒ Object
72 73 74 75 76 77 78 79 |
# File 'lib/derrick/cli.rb', line 72 def render_line(name, stats) [ name.ljust(key_size), stats.count.to_s.rjust(6), "#{(stats.expirable_ratio * 100).round}%".rjust(4), types_summary(stats) ].join(' ') end |
#types_summary(stats) ⇒ Object
81 82 83 84 85 86 87 88 89 |
# File 'lib/derrick/cli.rb', line 81 def types_summary(stats) if stats.types_count.size == 1 stats.types_count.keys.first else stats.types_ratio.map do |type, ratio| "#{type}: #{(ratio * 100).round}%" end.join(',') end end |