class MCollective::Aggregate::Summary
Public Instance Methods
add_value(value)
click to toggle source
# File lib/mcollective/aggregate/summary.rb 25 def add_value(value) 26 if @result[:value].keys.include?(value) 27 @result[:value][value] += 1 28 else 29 @result[:value][value] = 1 30 end 31 end
process_result(value, reply)
click to toggle source
Increments the value field if value has been seen before Else create a new value field
# File lib/mcollective/aggregate/summary.rb 15 def process_result(value, reply) 16 unless value.nil? 17 if value.is_a? Array 18 value.map{|val| add_value(val)} 19 else 20 add_value(value) 21 end 22 end 23 end
startup_hook()
click to toggle source
Before function is run processing
# File lib/mcollective/aggregate/summary.rb 5 def startup_hook 6 @result[:value] = {} 7 @result[:type] = :collection 8 9 # set default aggregate_format if it is undefined 10 @aggregate_format = :calculate unless @aggregate_format 11 end
summarize()
click to toggle source
Calls superclass method
MCollective::Aggregate::Base#summarize
# File lib/mcollective/aggregate/summary.rb 33 def summarize 34 if @aggregate_format == :calculate 35 max_key_length = @result[:value].keys.map do |k| 36 37 # Response values retain their types. Here we check 38 # if the response is a string and turn it into a string 39 # if it isn't one. 40 if k.respond_to?(:length) 41 k.length 42 elsif k.respond_to?(:to_s) 43 k.to_s.length 44 end 45 end.max 46 @aggregate_format = "%#{max_key_length}s = %s" 47 end 48 49 super 50 end