class GitSme::CLI
Public Instance Methods
analyze(repository)
click to toggle source
# File lib/git_sme/cli.rb, line 16 def analyze(repository) loader = GitSme::CommitLoader.new(repository, branch: options[:branch], enable_cache: options[:cache]) unless loader.valid? puts "Error: #{loader.error_message}" return end puts "Repository: #{loader.repo.path.gsub('/.git/', '')}" loader_progress = ProgressBar.create(starting_at: 0, format: 'Loaded: %c (%R/s) %P%% %f |%B|') loader.load do |new_commit_count, processed_commit_count, all_commit_count| loader_progress.total = all_commit_count loader_progress.increment end analyzer = GitSme::CommitAnalyzer.new(loader, enable_cache: false) unless analyzer.valid? puts "Error: #{analyzer.error_message}" return end analyzer_progress = ProgressBar.create(starting_at: 0, total: loader.commits.size, format: 'Analyzed: %c (%R/s) %P%% %f |%B|') analyzer.analyze do |commit_count, total_commits| analyzer_progress.increment end presenter = AnalysisPresenter.new(analyzer, options[:user], options[:file]) analyses = presenter.get_relevant_analyses(options[:results].to_i) puts if !analyses.empty? analyses.each do |result| result.each do |path, users| puts "#{path}: #{users.join(', ')}" end end else puts 'No data found!' end end