| Class | CodeRay::Encoders::Statistic |
| In: |
lib/coderay/encoders/statistic.rb
|
| Parent: | Encoder |
Makes a statistic for the given tokens.
Alias: stats
TODO Hierarchy handling
# File lib/coderay/encoders/statistic.rb, line 73
73: def begin_group kind
74: block_token ':begin_group', kind
75: end
# File lib/coderay/encoders/statistic.rb, line 81
81: def begin_line kind
82: block_token ':begin_line', kind
83: end
# File lib/coderay/encoders/statistic.rb, line 89
89: def block_token action, kind
90: @type_stats['TOTAL'].count += 1
91: @type_stats[action].count += 1
92: @type_stats[kind].count += 1
93: end
# File lib/coderay/encoders/statistic.rb, line 77
77: def end_group kind
78: block_token ':end_group', kind
79: end
# File lib/coderay/encoders/statistic.rb, line 85
85: def end_line kind
86: block_token ':end_line', kind
87: end
# File lib/coderay/encoders/statistic.rb, line 64
64: def text_token text, kind
65: @real_token_count += 1 unless kind == :space
66: @type_stats[kind].count += 1
67: @type_stats[kind].size += text.size
68: @type_stats['TOTAL'].size += text.size
69: @type_stats['TOTAL'].count += 1
70: end
# File lib/coderay/encoders/statistic.rb, line 44
44: def finish options
45: all = @type_stats['TOTAL']
46: all_count, all_size = all.count, all.size
47: @type_stats.each do |type, stat|
48: stat.size /= stat.count.to_f
49: end
50: types_stats = @type_stats.sort_by { |k, v| [-v.count, k.to_s] }.map do |k, v|
51: TOKEN_TYPES_ROW % [k, v.count, 100.0 * v.count / all_count, v.size]
52: end.join
53: @out << STATS % [
54: all_count, @real_token_count, all_size,
55: @type_stats.delete_if { |k, v| k.is_a? String }.size,
56: types_stats
57: ]
58:
59: super
60: end