Class: Citrus::Core::CachedCodeFetcher
- Inherits:
-
Object
- Object
- Citrus::Core::CachedCodeFetcher
- Defined in:
- lib/citrus/core/cached_code_fetcher.rb
Instance Attribute Summary collapse
-
#cache_root ⇒ Object
readonly
Returns the value of attribute cache_root.
-
#digester ⇒ Object
readonly
Returns the value of attribute digester.
-
#vcs_adapter ⇒ Object
readonly
Returns the value of attribute vcs_adapter.
Instance Method Summary collapse
- #fetch(changeset, destination) ⇒ Object
-
#initialize(cache_root, vcs_adapter = GitAdapter.new, digester = Digest::SHA1) ⇒ CachedCodeFetcher
constructor
A new instance of CachedCodeFetcher.
Constructor Details
#initialize(cache_root, vcs_adapter = GitAdapter.new, digester = Digest::SHA1) ⇒ CachedCodeFetcher
Returns a new instance of CachedCodeFetcher.
9 10 11 12 13 |
# File 'lib/citrus/core/cached_code_fetcher.rb', line 9 def initialize(cache_root, vcs_adapter = GitAdapter.new, digester = Digest::SHA1) @cache_root = cache_root @vcs_adapter = vcs_adapter @digester = digester end |
Instance Attribute Details
#cache_root ⇒ Object (readonly)
Returns the value of attribute cache_root.
7 8 9 |
# File 'lib/citrus/core/cached_code_fetcher.rb', line 7 def cache_root @cache_root end |
#digester ⇒ Object (readonly)
Returns the value of attribute digester.
7 8 9 |
# File 'lib/citrus/core/cached_code_fetcher.rb', line 7 def digester @digester end |
#vcs_adapter ⇒ Object (readonly)
Returns the value of attribute vcs_adapter.
7 8 9 |
# File 'lib/citrus/core/cached_code_fetcher.rb', line 7 def vcs_adapter @vcs_adapter end |
Instance Method Details
#fetch(changeset, destination) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/citrus/core/cached_code_fetcher.rb', line 15 def fetch(changeset, destination) url = changeset.repository_url head = changeset.head cache_dir = File.join(cache_root, digester.hexdigest(url)) FileUtils.mkpath(cache_dir) update_cache(url, cache_dir) vcs_adapter.clone_repository(cache_dir, destination) vcs_adapter.checkout(destination, head) end |