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