class Ecogem::Git

Public Class Methods

new(uri, ref) click to toggle source
# File lib/ecogem/git.rb, line 5
def initialize(uri, ref)
  @uri = uri
  @ref = ref || 'master'
end

Public Instance Methods

dir() click to toggle source
# File lib/ecogem/git.rb, line 14
def dir
  @dir ||= ::Ecogem.workspace.gitsfile.dir_of(key)
end
exec(cmd) click to toggle source
# File lib/ecogem/git.rb, line 22
def exec(cmd)
  puts "git: #{cmd}"
  cmd = "git #{cmd}"
  system("cd \"#{dir}\"; #{cmd}")
end
gemfile() click to toggle source
# File lib/ecogem/git.rb, line 46
def gemfile
  @gemfile ||= begin
    load
    ::Ecogem::Gemfile.new(gemfile_path) if ::File.file?(gemfile_path)
  end
end
key() click to toggle source
# File lib/ecogem/git.rb, line 10
def key
  @key ||= "#{@uri} #{@ref}"
end
uri_alias() click to toggle source
# File lib/ecogem/git.rb, line 18
def uri_alias
  @uri_alias ||= ::Ecogem.workspace.env.git_source_uri_to_alias(@uri)
end

Private Instance Methods

gemfile_path() click to toggle source
# File lib/ecogem/git.rb, line 42
        def gemfile_path
  @gemfile_path ||= ::File.expand_path("#{dir}/Ecogemfile")
end
load() click to toggle source
# File lib/ecogem/git.rb, line 28
        def load
  unless @loaded
    ::FileUtils.rm_rf dir
    ::FileUtils.mkdir_p dir
    self.exec "init -q"
    self.exec "remote add origin \"#{uri_alias}\""
    self.exec "fetch -q origin #{@ref}"
    raise CommandError unless $?.success?
    self.exec "checkout -q FETCH_HEAD"
    raise CommandError unless $?.success?
    @loaded = true
  end
end