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 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
-
#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) ⇒ SandboxAnalyzer
constructor
Init a new SandboxAnalyzer.
Constructor Details
#initialize(sandbox, specs, update_mode) ⇒ SandboxAnalyzer
Init a new SandboxAnalyzer
51 52 53 54 55 |
# File 'lib/cocoapods/installer/analyzer/sandbox_analyzer.rb', line 51 def initialize(sandbox, specs, update_mode) @sandbox = sandbox @specs = specs @update_mode = update_mode end |
Instance Attribute Details
#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.
62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/cocoapods/installer/analyzer/sandbox_analyzer.rb', line 62 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.merge(resolved_pods) end state end |