Class: Pod::Installer::Analyzer::SandboxAnalyzer
- Inherits:
-
Object
- Object
- Pod::Installer::Analyzer::SandboxAnalyzer
- Defined in:
- lib/cocoapods/installer/analyzer/sandbox_analyzer.rb
Overview
Analyze the sandbox to detect which Pods should be removed, and which ones should be reinstalled.
The logic is the following:
Added
-
If not present in the sandbox lockfile.
-
The directory of the Pod doesn’t exits.
Changed
-
The version of the Pod changed.
-
The SHA of the specification file changed.
-
The specific installed (sub)specs of the same Pod changed.
-
The specification is in head mode or from an external source and the installation process is in update mode.
-
The directory of the Pod is empty.
-
The Pod has been pre-downloaded.
Removed
-
If a specification is present in the lockfile but not in the resolved specs.
Unchanged
-
If none of the above conditions match.
Instance Attribute Summary collapse
-
#lockfile ⇒ Lockfile
readonly
The lockfile of the installation as a fall-back if there is no sandbox manifest.
-
#sandbox ⇒ Sandbox
readonly
The sandbox to analyze.
-
#specs ⇒ Array<Specifications>
readonly
The specifications returned by the resolver.
-
#update_mode ⇒ Bool
(also: #update_mode?)
readonly
Whether the installation is performed in update mode.
Instance Method Summary collapse
-
#analyze ⇒ void
Performs the analysis to the detect the state of the sandbox respect to the resolved specifications.
-
#initialize(sandbox, specs, update_mode, lockfile = nil) ⇒ SandboxAnalyzer
constructor
Init a new SandboxAnalyzer.
Constructor Details
#initialize(sandbox, specs, update_mode, lockfile = nil) ⇒ SandboxAnalyzer
Init a new SandboxAnalyzer
61 62 63 64 65 66 |
# File 'lib/cocoapods/installer/analyzer/sandbox_analyzer.rb', line 61 def initialize(sandbox, specs, update_mode, lockfile = nil) @sandbox = sandbox @specs = specs @update_mode = update_mode @lockfile = lockfile end |
Instance Attribute Details
#lockfile ⇒ Lockfile (readonly)
Remove for CP 0.18.
Returns The lockfile of the installation as a fall-back if there is no sandbox manifest. This is indented as a temporary solution to prevent the full re-installation from users which are upgrading from CP < 0.17.
52 53 54 |
# File 'lib/cocoapods/installer/analyzer/sandbox_analyzer.rb', line 52 def lockfile @lockfile end |
#sandbox ⇒ Sandbox (readonly)
Returns The sandbox to analyze.
32 33 34 |
# File 'lib/cocoapods/installer/analyzer/sandbox_analyzer.rb', line 32 def sandbox @sandbox end |
#specs ⇒ Array<Specifications> (readonly)
Returns The specifications returned by the resolver.
37 38 39 |
# File 'lib/cocoapods/installer/analyzer/sandbox_analyzer.rb', line 37 def specs @specs end |
#update_mode ⇒ Bool (readonly) Also known as: update_mode?
Returns Whether the installation is performed in update mode.
41 42 43 |
# File 'lib/cocoapods/installer/analyzer/sandbox_analyzer.rb', line 41 def update_mode @update_mode end |
Instance Method Details
#analyze ⇒ void
This method returns an undefined value.
Performs the analysis to the detect the state of the sandbox respect to the resolved specifications.
73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/cocoapods/installer/analyzer/sandbox_analyzer.rb', line 73 def analyze state = SpecsState.new if sandbox_manifest all_names = (resolved_pods + sandbox_pods).uniq.sort all_names.sort.each do |name| state.add_name(name, pod_state(name)) end else state.added.concat(resolved_pods) end state end |