Class: Yank::Git
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
-
#initialize(repo_name, repo, version) ⇒ Git
constructor
A new instance of Git.
- #install(dir) ⇒ Object
Methods included from Logging
configure_logger_for, #logger, logger_for
Constructor Details
#initialize(repo_name, repo, version) ⇒ Git
Returns a new instance of Git.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/vcs/git.rb', line 10 def initialize(repo_name, repo, version) git = `which git` if git.nil? or git.empty? raise ::Yank::YankException.new("git must be installed and on the PATH.") end @repo = repo @name = repo_name || @repo.split(".git")[0].split("/").last @version = version logger.debug("git repo: #{@repo}") logger.debug("git repo name: #{@name}") logger.debug("git repo version: #{@version}") end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
6 7 8 |
# File 'lib/vcs/git.rb', line 6 def name @name end |
Instance Method Details
#install(dir) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/vcs/git.rb', line 25 def install(dir) logger.debug("Cloning into #{@repo}...") logger.debug(Open3.capture3("git clone --recursive #{@repo} #{dir}/#{@name}")) case @version["type"] when "branch", "tag", "commit" logger.debug("Checking out #{@version["value"]}...") logger.debug(Open3.capture3("cd #{dir}/#{@name} && git checkout #{@version["value"]}")) end end |