class Nohoch::UserFileStats

Attributes

stats[R]

Public Class Methods

new() click to toggle source
# File lib/nohoch.rb, line 112
def initialize
  @stats = {}
end

Public Instance Methods

add(file_stat) click to toggle source
# File lib/nohoch.rb, line 116
def add(file_stat)
  key = file_stat.user_id + file_stat.file
  if @stats[key]
    @stats[key].added += file_stat.added
    @stats[key].deleted += file_stat.deleted
  else
    @stats[key] = file_stat
  end
end
all_top(n) click to toggle source
# File lib/nohoch.rb, line 130
def all_top(n)
  result = {}
  files.each {|f| result[f] = top(f, n) }
  result
end
files() click to toggle source
# File lib/nohoch.rb, line 141
def files
  @stats.values.uniq { |file_stat| file_stat.file }.map {|file_stat| file_stat.file }
end
top(file, n) click to toggle source
# File lib/nohoch.rb, line 136
def top(file, n)
  user_stats(file).sort_by {|_, file_stat| -file_stat.added}[0..n-1].to_h.values
end
user_stats(file) click to toggle source
# File lib/nohoch.rb, line 126
def user_stats(file)
  @stats.select { |_, file_stat| file_stat.file == file }
end
users() click to toggle source
# File lib/nohoch.rb, line 145
def users
  @stats.values.uniq { |file_stat| file_stat.user_id }.map {|file_stat| file_stat.user }
end