class CheGuevara::Soldier
Public Class Methods
work()
click to toggle source
# File lib/che_guevara.rb, line 5 def self.work history = File.read(File.join(Dir.home, '.zsh_history')) # fix encoding history.encode!('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: '') # format commands = history.split(/\n/).map { |line| line.split(/;/) }.map { |_, command| command } counts = commands.group_by{|i| i}.map{|k,v| [k, v.count] } commands_map = Hash[*counts.flatten] ineffective_commands = commands_map .reject { |k, v| v < 10 } .select { |k, v| k && k.size > 5 } .reject { |k, v| k && k.match(/feature/) } .sort_by { |k, v| v } ineffective_commands.each do |command, reps| puts "#{reps}: #{command}" end end