Module: Pod::Downloader
- Defined in:
- lib/cocoapods/downloader.rb,
lib/cocoapods/downloader/cache.rb,
lib/cocoapods/downloader/request.rb,
lib/cocoapods/downloader/response.rb
Defined Under Namespace
Classes: Base, Cache, DownloaderError, Request, Response
Class Method Summary collapse
-
.download(request, target, cache_path: !Config.instance.skip_download_cache && Config.instance.clean? && Config.instance.cache_root + 'Pods') ⇒ Response
Downloads a pod from the given ‘request` to the given `target` location.
-
.download_request(request, target) ⇒ Response, Hash<String,Specification>
Performs the download from the given ‘request` to the given `target` location.
Class Method Details
.download(request, target, cache_path: !Config.instance.skip_download_cache && Config.instance.clean? && Config.instance.cache_root + 'Pods') ⇒ Response
Downloads a pod from the given ‘request` to the given `target` location.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/cocoapods/downloader.rb', line 27 def self.download( request, target, cache_path: !Config.instance.skip_download_cache && Config.instance.clean? && Config.instance.cache_root + 'Pods' ) if cache_path cache = Cache.new(cache_path) result = cache.download_pod(request) else require 'cocoapods/installer/pod_source_preparer' result, _ = download_request(request, target) Installer::PodSourcePreparer.new(result.spec, result.location).prepare! end if target && result.location && target != result.location UI. "Copying #{request.name} from `#{result.location}` to #{UI.path target}", '> ' do FileUtils.rm_rf target FileUtils.cp_r(result.location, target) end end result end |
.download_request(request, target) ⇒ Response, Hash<String,Specification>
Performs the download from the given ‘request` to the given `target` location.
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/cocoapods/downloader.rb', line 63 def self.download_request(request, target) result = Response.new result. = download_source(request.name, target, request.params, request.head?) result.location = target if request.released_pod? result.spec = request.spec podspecs = { request.name => request.spec } else podspecs = Sandbox::PodspecFinder.new(target).podspecs podspecs[request.name] = request.spec if request.spec podspecs.each do |name, spec| if request.name == name result.spec = spec end end end [result, podspecs] end |