Class: Pod::Downloader::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods/downloader/request.rb

Overview

This class represents a download request for a given Pod.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(spec: nil, released: false, name: nil, params: false) ⇒ Request

Initialize a new instance



40
41
42
43
44
45
46
47
# 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

Instance Attribute Details

#nameString (readonly)



20
21
22
# File 'lib/cocoapods/downloader/request.rb', line 20

def name
  @name
end

#paramsHash<Symbol, String> (readonly)



24
25
26
# File 'lib/cocoapods/downloader/request.rb', line 24

def params
  @params
end

#released_podBoolean (readonly) Also known as: released_pod?



15
16
17
# File 'lib/cocoapods/downloader/request.rb', line 15

def released_pod
  @released_pod
end

#specSpecification, Nil (readonly)



11
12
13
# File 'lib/cocoapods/downloader/request.rb', line 11

def spec
  @spec
end

Instance Method Details

#slug(name: self.name, params: self.params, spec: self.spec) ⇒ String



61
62
63
64
65
66
67
68
69
70
# 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