Class: YSI::Git
- Inherits:
-
Object
- Object
- YSI::Git
- Defined in:
- lib/yes_ship_it/git.rb
Instance Method Summary collapse
-
#initialize(executor, working_dir = Dir.pwd) ⇒ Git
constructor
A new instance of Git.
- #needs_push? ⇒ Boolean
- #origin ⇒ Object
- #push ⇒ Object
- #run_git(args) ⇒ Object
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
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 |
#origin ⇒ Object
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 |
#push ⇒ Object
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 |