class Pod::Downloader::Request

This class represents a download request for a given Pod.

Attributes

name[R]

@return [String] The name of the pod whose dowload is being requested.

params[R]

@return [Hash<Symbol, String>] The download parameters for this request.

released_pod[R]

@return [Boolean] Whether this download request is for a released pod.

released_pod?[R]

@return [Boolean] Whether this download request is for a released pod.

spec[R]

@return [Specification,Nil] The specification for the pod whose download

is being requested.

Public Class Methods

new(spec: nil, released: false, name: nil, params: false) click to toggle source

Initialize a new instance

@param [Specification,Nil] spec

see {#spec}

@param [Boolean] released

see {#released_pod}

@param [String,Nil] name

see {#name}

@param [Hash<Symbol,String>,Nil] params

see {#params}
# File lib/cocoapods/downloader/request.rb, line 40
def initialize(spec: nil, released: false, name: nil, params: false)
  @released_pod = released
  @spec = spec
  @params = spec ? (spec.source && spec.source.dup) : params
  @name = spec ? spec.name : name

  validate!
end

Public Instance Methods

slug(name: self.name, params: self.params, spec: self.spec) click to toggle source

@param [String] name

the name of the pod being downloaded.

@param [Hash<#to_s, to_s>] params

the download parameters of the pod being downloaded.

@param [Specification] spec

the specification of the pod being downloaded.

@return [String] The slug used to store the files resulting from this

download request.
# File lib/cocoapods/downloader/request.rb, line 61
def slug(name: self.name, params: self.params, spec: self.spec)
  checksum = spec && spec.checksum && '-' << spec.checksum[0, 5]
  if released_pod?
    "Release/#{name}/#{spec.version}#{checksum}"
  else
    opts = params.to_a.sort_by(&:first).map { |k, v| "#{k}=#{v}" }.join('-')
    digest = Digest::MD5.hexdigest(opts)
    "External/#{name}/#{digest}#{checksum}"
  end
end

Private Instance Methods

validate!() click to toggle source

Validates that the given request is well-formed.

@return [Void]

# File lib/cocoapods/downloader/request.rb, line 78
def validate!
  raise ArgumentError, 'Requires a name' unless name
  raise ArgumentError, 'Must give a spec for a released download request' if released_pod? && !spec
  raise ArgumentError, 'Requires a version if released' if released_pod? && !spec.version
  raise ArgumentError, 'Requires params' unless params
end