class Guac::Repo

Attributes

dir[R]
name[R]

Public Class Methods

build_from_config(*args) click to toggle source
# File lib/guac/repo.rb, line 8
def self.build_from_config(*args)
  config = Guac::Config.load
  config[:repos].map { |r| new(config, r, *args) }
end
new(config, repo, branch = nil) click to toggle source
# File lib/guac/repo.rb, line 13
def initialize(config, repo, branch = nil)
  @config = config
  @repo   = repo
  @name   = repo[:name]
  @dir    = repo[:dir]
  @branch = branch || config[:default_branch]
end
valid?(dirs) click to toggle source
# File lib/guac/repo.rb, line 43
def self.valid?(dirs)
  !dirs.empty? && dirs.all? do |dir|
    d = File.join(dir.sub('~', ENV['HOME']), '.git')
    Dir.exist?(d)
  end
end

Public Instance Methods

branch() click to toggle source
# File lib/guac/repo.rb, line 21
def branch
  aliases = @repo[:branch_aliases]
  if aliases
    aliases[@branch] || @branch
  else
    @branch
  end
end
checkout() click to toggle source
# File lib/guac/repo.rb, line 34
def checkout
  SysCommand.run(@dir, %W(git checkout #{branch}))
end
pull() click to toggle source
# File lib/guac/repo.rb, line 38
def pull
  pull_cmd = @config[:pull_strategy].split(/ \s*/)
  SysCommand.run(@dir, pull_cmd)
end
status() click to toggle source
# File lib/guac/repo.rb, line 30
def status
  SysCommand.run(@dir, %w(git status))
end