Class: R10K::Git::ShellGit::BaseRepository
- Inherits:
-
Object
- Object
- R10K::Git::ShellGit::BaseRepository
- Includes:
- Logging
- Defined in:
- lib/r10k/git/shellgit/base_repository.rb
Direct Known Subclasses
Constant Summary
Constants included from Logging
Instance Method Summary collapse
-
#branches ⇒ Array<String>
All local branches in this repository.
-
#git_dir ⇒ Pathname
abstract
The path to the Git directory.
-
#ref_type(pattern) ⇒ Symbol
The type of the given ref, one of :branch, :tag, :commit, or :unknown.
-
#resolve(pattern) ⇒ String?
(also: #rev_parse)
Resolve the given Git ref to a commit.
-
#tags ⇒ Array<String>
All tags in this repository.
Methods included from Logging
debug_formatter, default_formatter, default_outputter, #logger, #logger_name, parse_level
Instance Method Details
#branches ⇒ Array<String>
Returns All local branches in this repository.
28 29 30 |
# File 'lib/r10k/git/shellgit/base_repository.rb', line 28 def branches for_each_ref('refs/heads') end |
#git_dir ⇒ Pathname
This method is abstract.
Returns The path to the Git directory.
8 9 10 |
# File 'lib/r10k/git/shellgit/base_repository.rb', line 8 def git_dir raise NotImplementedError end |
#ref_type(pattern) ⇒ Symbol
Returns The type of the given ref, one of :branch, :tag, :commit, or :unknown.
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/r10k/git/shellgit/base_repository.rb', line 38 def ref_type(pattern) if branches.include? pattern :branch elsif .include? pattern :tag elsif resolve(pattern) :commit else :unknown end end |
#resolve(pattern) ⇒ String? Also known as: rev_parse
Resolve the given Git ref to a commit
16 17 18 19 20 21 |
# File 'lib/r10k/git/shellgit/base_repository.rb', line 16 def resolve(pattern) result = git ['rev-parse', "#{pattern}^{commit}"], :git_dir => git_dir.to_s, :raise_on_fail => false if result.success? result.stdout end end |
#tags ⇒ Array<String>
Returns All tags in this repository.
33 34 35 |
# File 'lib/r10k/git/shellgit/base_repository.rb', line 33 def for_each_ref('refs/tags') end |