class Monolith::Git
Public Class Methods
new(path)
click to toggle source
# File lib/monolith/git.rb 5 def initialize(path) 6 @path = path 7 end
Public Instance Methods
clone(url)
click to toggle source
# File lib/monolith/git.rb 9 def clone(url) 10 run("clone #{url} .") 11 end
cloned?()
click to toggle source
# File lib/monolith/git.rb 13 def cloned? 14 File.exists?(@path) 15 end
fetch()
click to toggle source
# File lib/monolith/git.rb 17 def fetch 18 run("fetch --all") 19 end
run(cmd)
click to toggle source
# File lib/monolith/git.rb 21 def run(cmd) 22 within_working_dir do 23 run!(cmd) 24 end 25 end
run!(cmd)
click to toggle source
# File lib/monolith/git.rb 27 def run!(cmd) 28 command(cmd).run 29 end
within_working_dir(&block)
click to toggle source
# File lib/monolith/git.rb 31 def within_working_dir(&block) 32 create_working_dir unless cloned? 33 cd_working_dir(&block) 34 end
Private Instance Methods
cd_working_dir(&block)
click to toggle source
# File lib/monolith/git.rb 42 def cd_working_dir(&block) 43 LoggedChdir.new(@path).chdir(&block) 44 end
command(cmd)
click to toggle source
# File lib/monolith/git.rb 46 def command(cmd) 47 LoggedCommand.new("git", cmd) 48 end
create_working_dir()
click to toggle source
# File lib/monolith/git.rb 38 def create_working_dir 39 LoggedMkdir.new(@path).mkdir 40 end