Class: GitDownloadStrategy
- Inherits:
-
VCSDownloadStrategy
- Object
- AbstractDownloadStrategy
- VCSDownloadStrategy
- GitDownloadStrategy
- Defined in:
- download_strategy.rb
Overview
Strategy for downloading a Git repository.
Direct Known Subclasses
Constant Summary
Constants inherited from VCSDownloadStrategy
VCSDownloadStrategy::REF_TYPES
Instance Attribute Summary
Attributes inherited from AbstractDownloadStrategy
#cache, #cached_location, #url
Instance Method Summary collapse
-
#initialize(url, name, version, **meta) ⇒ GitDownloadStrategy
constructor
A new instance of GitDownloadStrategy.
-
#last_commit ⇒ String
Return last commit's unique identifier for the repository.
-
#source_modified_time ⇒ Time
Returns the most recent modified time for all files in the current working directory after stage.
Methods inherited from VCSDownloadStrategy
#commit_outdated?, #fetch, #fetch_last_commit, #head?
Methods inherited from AbstractDownloadStrategy
#basename, #clear_cache, #fetch, #quiet!, #quiet?, #stage
Methods included from SystemCommand::Mixin
#system_command, #system_command!
Methods included from Context
current, current=, #debug?, #quiet?, #verbose?, #with_context
Constructor Details
#initialize(url, name, version, **meta) ⇒ GitDownloadStrategy
Returns a new instance of GitDownloadStrategy.
838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 |
# File 'download_strategy.rb', line 838 def initialize(url, name, version, **) # Needs to be before the call to `super`, as the VCSDownloadStrategy's # constructor calls `cache_tag` and sets the cache path. @only_path = [:only_path] if @only_path.present? # "Cone" mode of sparse checkout requires patterns to be directories @only_path = "/#{@only_path}" unless @only_path.start_with?("/") @only_path = "#{@only_path}/" unless @only_path.end_with?("/") end super @ref_type ||= :branch @ref ||= "master" end |
Instance Method Details
#last_commit ⇒ String
Return last commit's unique identifier for the repository.
867 868 869 870 |
# File 'download_strategy.rb', line 867 def last_commit out, = silent_command("git", args: ["--git-dir", git_dir, "rev-parse", "--short=7", "HEAD"]) out.chomp end |
#source_modified_time ⇒ Time
Returns the most recent modified time for all files in the current working directory after stage.
858 859 860 861 |
# File 'download_strategy.rb', line 858 def source_modified_time out, = silent_command("git", args: ["--git-dir", git_dir, "show", "-s", "--format=%cD"]) Time.parse(out) end |