Class: YSI::Git

Inherits:
Object
  • Object
show all
Defined in:
lib/yes_ship_it/git.rb

Instance Method Summary collapse

Constructor Details

#initialize(executor, working_dir = Dir.pwd) ⇒ Git

Returns a new instance of Git.



3
4
5
6
# File 'lib/yes_ship_it/git.rb', line 3

def initialize(executor, working_dir = Dir.pwd)
  @executor = executor
  @working_dir = working_dir
end

Instance Method Details

#needs_push?Boolean

Returns:

  • (Boolean)


18
19
20
21
22
23
24
# File 'lib/yes_ship_it/git.rb', line 18

def needs_push?
  local_master = run_git(["rev-parse", "master"])
  remote_master = run_git(["rev-parse", "origin/master"])
  base = run_git(["merge-base", "master", "origin/master"])

  remote_master == base && local_master != remote_master
end

#originObject



14
15
16
# File 'lib/yes_ship_it/git.rb', line 14

def origin
  run_git(["remote", "-v"]).match(/origin\s+(.*?)(\.git)?\s+\(push\)/)[1]
end

#pushObject



26
27
28
# File 'lib/yes_ship_it/git.rb', line 26

def push
  run_git(["push"])
end

#run_git(args) ⇒ Object



8
9
10
11
12
# File 'lib/yes_ship_it/git.rb', line 8

def run_git(args)
  Dir.chdir(@working_dir) do
    @executor.run_command(["git"] + args)
  end
end