class Environmate::GitRepository

Public Class Methods

new(dir) click to toggle source
# File lib/environmate/git_repository.rb, line 7
def initialize(dir)
  @dir = dir
end

Public Instance Methods

checkout(revision) click to toggle source
# File lib/environmate/git_repository.rb, line 28
def checkout(revision)
  git("checkout #{revision}")
end
clean() click to toggle source
# File lib/environmate/git_repository.rb, line 24
def clean
  git('clean -dff')
end
clone(url) click to toggle source
# File lib/environmate/git_repository.rb, line 38
def clone(url)
  command("git clone #{url} #{@dir}")
end
fetch() click to toggle source
# File lib/environmate/git_repository.rb, line 16
def fetch
  git('fetch --prune')
end
remote_branches() click to toggle source
# File lib/environmate/git_repository.rb, line 32
def remote_branches
  git('branch -r').each_line.map do |branch|
    branch[/^\s+origin\/(\S+).*$/, 1]
  end.compact
end
reset_hard(revision = 'HEAD') click to toggle source
# File lib/environmate/git_repository.rb, line 20
def reset_hard(revision = 'HEAD')
  git("reset --hard #{revision}")
end
submodule_update() click to toggle source
# File lib/environmate/git_repository.rb, line 11
def submodule_update
  #git('submodule update --init') if submodules_outdated?
  git('submodule update --init')
end
valid?() click to toggle source
# File lib/environmate/git_repository.rb, line 42
def valid?
  status
  true
rescue
  false
end

Private Instance Methods

git(cmd) click to toggle source
# File lib/environmate/git_repository.rb, line 51
def git(cmd)
  Dir.chdir(@dir) do
    command("git #{cmd}")
  end
end
status() click to toggle source
# File lib/environmate/git_repository.rb, line 57
def status
  git('status')
end
submodules_outdated?() click to toggle source
# File lib/environmate/git_repository.rb, line 61
def submodules_outdated?
  !status.each_line.grep(/modified:.*\(new commits\)/).empty?
end