def text_for_aggregates
result = StringIO.new
@aggregate_summary.each do |aggregate|
output_item = aggregate.result[:output]
begin
action_interface = @ddl.action_interface(aggregate.action)
display_as = action_interface[:output][output_item][:display_as]
rescue
display_as = output_item
end
if aggregate.is_a?(Aggregate::Result::Base)
aggregate_report = aggregate.to_s
else
next
end
result.puts Util.colorize(:bold, "Summary of %s:" % display_as)
result.puts
unless aggregate_report == ""
result.puts aggregate.to_s.split("\n").map{|x| " " + x}.join("\n")
else
result.puts Util.colorize(:yellow, " No aggregate summary could be computed")
end
result.puts
end
@aggregate_failures.each do |failed|
case(failed[:type])
when :startup
message = "exception raised while processing startup hook"
when :create
message = "unspecified output '#{failed[:name]}' for the action"
when :process_result
message = "exception raised while processing result data"
when :summarize
message = "exception raised while summarizing"
end
result.puts Util.colorize(:bold, "Summary of %s:" % failed[:name])
result.puts
result.puts Util.colorize(:yellow, " Could not compute summary - %s" % message)
result.puts
end
result.string
end