Downloader

A small library for downloading files from remotes in a folder.

Build Status Gem Version Maintainability

Install

$ [sudo] gem install cocoapods-downloader

Usage

require 'cocoapods-downloader'

target_path = './Downloads/MyDownload'
options = { :git => 'example.com' }
options = Pod::Downloader.preprocess_options(options)
downloader = Pod::Downloader.for_target(target_path, options)
downloader.cache_root = '~/Library/Caches/APPNAME'
downloader.max_cache_size = 500
downloader.download
downloader.checkout_options #=> { :git => 'example.com', :commit => 'd7f410490dabf7a6bde665ba22da102c3acf1bd9' }

The downloader class supports the following option keys:

  • git: commit, tag, branch, submodules
  • svn: revision, tag, folder, externals
  • hg: revision, tag, branch
  • http: type, flatten
  • scp: type, flatten

The downloader also provides hooks which allow to customize its output or the way in which the commands are executed

require 'cocoapods-downloader'

module Pod
  module Downloader
    class Base

      override_api do
        def self.execute_command(executable, command, raise_on_failure = false)
          puts "Will download"
          super
        end

        def self.ui_action(ui_message)
          puts ui_message.green
          yield
        end
      end

    end
  end
end

Extraction

This gem was extracted from CocoaPods. Refer to also that repository for the history and the contributors.

Collaborate

All CocoaPods development happens on GitHub, there is a repository for CocoaPods and one for the CocoaPods specs. Contributing patches or Pods is really easy and gratifying and for a lot of people is their first time.

Follow @CocoaPods to get up to date information about what's going on in the CocoaPods world.

Development

You need to have svn, hg and git installed to run the specs. There are some specs which require hdiutil which will only run on macOS.

License

This gem and CocoaPods are available under the MIT license.