module Gitalytics
Constants
- OUTPUT_FILE
- VERSION
Public Instance Methods
analyze(options)
click to toggle source
# File lib/gitalytics.rb, line 15 def analyze(options) data = GitLog.parse_git_log(options[:group_by]) case options[:format] when 'html' output_html_report(data, options[:browser]) else output_cli_report(data[:users]) end end
open_report_in_browser()
click to toggle source
# File lib/gitalytics.rb, line 57 def open_report_in_browser case RbConfig::CONFIG['host_os'] when /mswin|mingw|cygwin/ system "start #{OUTPUT_FILE}" when /darwin/ system "open #{OUTPUT_FILE}" when /linux|bsd/ system "xdg-open #{OUTPUT_FILE}" end end
output_cli_report(users)
click to toggle source
# File lib/gitalytics.rb, line 30 def output_cli_report(users) users.each do |user| puts user.summary end end
output_html_report(data, open_in_browser)
click to toggle source
# File lib/gitalytics.rb, line 49 def output_html_report(data, open_in_browser) File.open(OUTPUT_FILE, 'w+') do |file| prepare_data(data) file.write(Haml::Engine.new(template_file).render(self)) end open_report_in_browser if open_in_browser end
prepare_data(data)
click to toggle source
# File lib/gitalytics.rb, line 36 def prepare_data(data) @users = data[:users].sort { |x, y| y.commits.length <=> x.commits.length } @commits = data[:commits] weekday_commits = @users.map(&:weekday_commits) @weekday_commits = weekday_commits.map { |a| Vector[*a] }.inject(:+).to_a end
template_file()
click to toggle source
# File lib/gitalytics.rb, line 43 def template_file dir = File.dirname(__FILE__) filepath = File.join(dir, '..', 'assets', 'gitalytics.html.haml') File.read(filepath) end