class Streamliner::Report
Attributes
controller_count[R]
controller_list[R]
controllers_by_use[R]
report[RW]
Public Class Methods
new(controller_count, controller_list)
click to toggle source
# File lib/streamliner/report.rb, line 6 def initialize(controller_count, controller_list) @controller_count = controller_count @controller_list = controller_list @report = String.new end
Public Instance Methods
generate()
click to toggle source
# File lib/streamliner/report.rb, line 12 def generate if data_recorded? add_start_date add_header add_usage add_unused_code else no_data_message end report end
Private Instance Methods
add_header()
click to toggle source
# File lib/streamliner/report.rb, line 40 def add_header headers = "" headers << "Controller".ljust(pleasing_spacing) headers << "Hits".ljust(15) headers << "Percentage use\n" report << headers report << "-" * headers.chomp.length + "\n\n" end
add_start_date()
click to toggle source
# File lib/streamliner/report.rb, line 26 def add_start_date start = controller_count.delete(:start) report << "\nSince #{start.strftime('%e %b %Y %H:%M:%S%p')} the following" + " controller usage has occurred:\n\n" end
add_unused_code()
click to toggle source
# File lib/streamliner/report.rb, line 69 def add_unused_code if unused_controllers.any? report << "\nThe following controllers were not used and should be considered for removal:\n\n" no_usage = unused_controllers.map {|e| e.capitalize } report << (Array.method_defined?(:to_sentence) ? no_usage.to_sentence : no_usage.join(', ')) else report << "\nAll controllers were used and none are suggested for removal.\n\n" end end
add_usage()
click to toggle source
# File lib/streamliner/report.rb, line 53 def add_usage sorted_controllers.each do |controller, count| report << "#{controller.capitalize}".ljust(pleasing_spacing) + "#{count}".ljust(15) + "#{usage_percentage(count)}%\n" end end
data_recorded?()
click to toggle source
# File lib/streamliner/report.rb, line 32 def data_recorded? !controller_count.nil? end
no_data_message()
click to toggle source
# File lib/streamliner/report.rb, line 36 def no_data_message report << "No controller usage recorded\n" end
pleasing_spacing()
click to toggle source
# File lib/streamliner/report.rb, line 60 def pleasing_spacing controller_list.map { |e| e.to_s.length }.max + 14 end
sorted_controllers()
click to toggle source
# File lib/streamliner/report.rb, line 49 def sorted_controllers controller_by_use ||= controller_count.sort_by{|k,v| v}.reverse.to_h end
unused_controllers()
click to toggle source
# File lib/streamliner/report.rb, line 79 def unused_controllers controller_list.map { |e| e.to_s.downcase.split('controller')[0] } - sorted_controllers.keys end
usage_percentage(count)
click to toggle source
# File lib/streamliner/report.rb, line 64 def usage_percentage count sum = controller_count.values.reduce(:+) ((count.to_f / sum) * 100).round(2) end