class FightClub::Git

Attributes

directory[R]
logger[R]
repo_name[R]

Public Class Methods

new(directory, repo_name, logger = Logger.new(STDOUT)) click to toggle source
# File lib/fight_club/git.rb, line 3
def initialize(directory, repo_name, logger = Logger.new(STDOUT))
  @logger = logger
  @directory = directory
  @repo_name = repo_name
end

Public Instance Methods

checkout(target) click to toggle source
# File lib/fight_club/git.rb, line 13
def checkout(target)
  run("#{base_command} checkout #{target}")
end
clone(target) click to toggle source
# File lib/fight_club/git.rb, line 9
def clone(target)
  run("git clone #{target} #{directory}/#{repo_name}")
end
fetch() click to toggle source
# File lib/fight_club/git.rb, line 29
def fetch
  run("#{base_command} fetch")
end
merge(target) click to toggle source
# File lib/fight_club/git.rb, line 21
def merge(target)
  run("#{base_command} merge -m 'merge' #{target}")
end
merge_abort() click to toggle source
# File lib/fight_club/git.rb, line 25
def merge_abort
  run("#{base_command} merge --abort")
end
reset_hard(target) click to toggle source
# File lib/fight_club/git.rb, line 17
def reset_hard(target)
  run("#{base_command} reset --hard #{target}")
end

Private Instance Methods

base_command() click to toggle source
# File lib/fight_club/git.rb, line 43
def base_command
  "git '--git-dir=#{directory}/#{repo_name}/.git' '--work-tree=#{directory}/#{repo_name}'"
end
run(command) click to toggle source
# File lib/fight_club/git.rb, line 37
def run(command)
  logger.info("Git executing: #{command}")

  `#{command}`
end