class MGit::StatusCommand
Public Instance Methods
arity()
click to toggle source
# File lib/mgit/commands/status.rb, line 11 def arity [nil, 0] end
description()
click to toggle source
# File lib/mgit/commands/status.rb, line 19 def description 'display status for each repository' end
execute(_)
click to toggle source
# File lib/mgit/commands/status.rb, line 5 def execute(_) t = [] Registry.chdir_each { |repo| t << [repo.name, repo.current_branch, decorate_flags(repo)] } ptable t, columns: [24, nil, nil] end
usage()
click to toggle source
# File lib/mgit/commands/status.rb, line 15 def usage 'status' end
Private Instance Methods
decorate_divergence_flags(divergence)
click to toggle source
# File lib/mgit/commands/status.rb, line 42 def decorate_divergence_flags(divergence) divergence.map do |d| d.map do |k, v| "#{k.to_s.capitalize} of #{v[:branch]} by #{v[:by]}".blue end end end
decorate_flags(repo)
click to toggle source
# File lib/mgit/commands/status.rb, line 28 def decorate_flags(repo) flags = repo.flags labels = decorate_simple_flags(flags) labels.concat(decorate_divergence_flags(repo.divergence)) if flags.include?(:diverged) labels = ['Clean'.green] if labels.empty? labels.to_a.join(', ') end
decorate_simple_flags(flags)
click to toggle source
# File lib/mgit/commands/status.rb, line 36 def decorate_simple_flags(flags) { index: :red, dirty: :red, untracked: :yellow, detached: :yellow } .select { |f, _| flags.include?(f) } .map { |f, c| f.to_s.capitalize.send(c) } end