Class: Pod::Installer::PodSourceInstaller

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods/installer/pod_source_installer.rb

Overview

Note:

This class needs to consider all the activated specs of a Pod.

Controller class responsible of installing the activated specifications of a single Pod.

Constant Summary collapse

UNENCRYPTED_PROTOCOLS =
%w(http git).freeze

Instance Attribute Summary collapse

Installation collapse

Instance Method Summary collapse

Constructor Details

#initialize(sandbox, podfile, specs_by_platform, can_cache: true) ⇒ PodSourceInstaller

Initialize a new instance

Parameters:

  • sandbox (Sandbox)

    @see #sandbox

  • podfile (Podfile)

    @see #podfile

  • specs_by_platform (Hash{Symbol=>Array})

    @see #specs_by_platform

  • can_cache (Boolean)

    @see #can_cache


39
40
41
42
43
44
# File 'lib/cocoapods/installer/pod_source_installer.rb', line 39

def initialize(sandbox, podfile, specs_by_platform, can_cache: true)
  @sandbox = sandbox
  @podfile = podfile
  @specs_by_platform = specs_by_platform
  @can_cache = can_cache
end

Instance Attribute Details

#can_cacheBoolean (readonly) Also known as: can_cache?

Returns Whether the installer is allowed to touch the cache.

Returns:

  • (Boolean)

    Whether the installer is allowed to touch the cache.


29
30
31
# File 'lib/cocoapods/installer/pod_source_installer.rb', line 29

def can_cache
  @can_cache
end

#podfilePodfile (readonly)

Returns the podfile that should be integrated with the user projects.

Returns:

  • (Podfile)

    the podfile that should be integrated with the user projects.


20
21
22
# File 'lib/cocoapods/installer/pod_source_installer.rb', line 20

def podfile
  @podfile
end

#sandboxSandbox (readonly)

Returns The installation target.

Returns:

  • (Sandbox)

    The installation target.


15
16
17
# File 'lib/cocoapods/installer/pod_source_installer.rb', line 15

def sandbox
  @sandbox
end

#specs_by_platformHash{Symbol=>Array} (readonly)

Returns The specifications that need to be installed grouped by platform.

Returns:

  • (Hash{Symbol=>Array})

    The specifications that need to be installed grouped by platform.


25
26
27
# File 'lib/cocoapods/installer/pod_source_installer.rb', line 25

def specs_by_platform
  @specs_by_platform
end

Instance Method Details

#clean!void

This method returns an undefined value.

Cleans the installations if appropriate.

Cleaning the installation will remove any files that are not used during the build process, based on the podspec and platforms of the target that the pod is integrated into.

See Also:

  • Pod::Installer::PodSourceInstaller.{{#clean_installation}

83
84
85
# File 'lib/cocoapods/installer/pod_source_installer.rb', line 83

def clean!
  clean_installation unless local?
end

#inspectString

Returns A string suitable for debugging.

Returns:

  • (String)

    A string suitable for debugging.


48
49
50
# File 'lib/cocoapods/installer/pod_source_installer.rb', line 48

def inspect
  "<#{self.class} sandbox=#{sandbox.root} pod=#{root_spec.name}"
end

#install!void

This method returns an undefined value.

Creates the target in the Pods project and the relative support files.


68
69
70
71
72
# File 'lib/cocoapods/installer/pod_source_installer.rb', line 68

def install!
  download_source unless predownloaded? || local?
  PodSourcePreparer.new(root_spec, root).prepare! if local?
  sandbox.remove_local_podspec(name) unless predownloaded? || local? || external?
end

#lock_files!(file_accessors) ⇒ void

This method returns an undefined value.

Locks the source files if appropriate.


91
92
93
94
# File 'lib/cocoapods/installer/pod_source_installer.rb', line 91

def lock_files!(file_accessors)
  return if local?
  FileUtils.chmod('u-w', source_files(file_accessors))
end

#nameString

Returns The name of the pod this installer is installing.

Returns:

  • (String)

    The name of the pod this installer is installing.


54
55
56
# File 'lib/cocoapods/installer/pod_source_installer.rb', line 54

def name
  root_spec.name
end

#unlock_files!(file_accessors) ⇒ void

This method returns an undefined value.

Unlocks the source files if appropriate.


100
101
102
103
# File 'lib/cocoapods/installer/pod_source_installer.rb', line 100

def unlock_files!(file_accessors)
  return if local?
  FileUtils.chmod('u+w', source_files(file_accessors))
end