cocoapods 0.37.2 → 0.38.0.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +136 -1
  3. data/lib/cocoapods.rb +0 -5
  4. data/lib/cocoapods/command.rb +3 -0
  5. data/lib/cocoapods/command/cache.rb +28 -0
  6. data/lib/cocoapods/command/cache/clean.rb +90 -0
  7. data/lib/cocoapods/command/cache/list.rb +69 -0
  8. data/lib/cocoapods/command/lib.rb +11 -4
  9. data/lib/cocoapods/command/list.rb +4 -4
  10. data/lib/cocoapods/command/outdated.rb +1 -10
  11. data/lib/cocoapods/command/project.rb +3 -2
  12. data/lib/cocoapods/command/spec.rb +0 -17
  13. data/lib/cocoapods/command/spec/cat.rb +1 -1
  14. data/lib/cocoapods/command/spec/create.rb +1 -0
  15. data/lib/cocoapods/command/spec/edit.rb +1 -1
  16. data/lib/cocoapods/command/spec/lint.rb +10 -4
  17. data/lib/cocoapods/config.rb +6 -0
  18. data/lib/cocoapods/downloader/cache.rb +48 -1
  19. data/lib/cocoapods/executable.rb +27 -6
  20. data/lib/cocoapods/gem_version.rb +1 -1
  21. data/lib/cocoapods/generator/copy_resources_script.rb +1 -0
  22. data/lib/cocoapods/generator/embed_frameworks_script.rb +23 -28
  23. data/lib/cocoapods/generator/header.rb +5 -1
  24. data/lib/cocoapods/generator/umbrella_header.rb +1 -1
  25. data/lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb +139 -33
  26. data/lib/cocoapods/generator/xcconfig/private_pod_xcconfig.rb +2 -2
  27. data/lib/cocoapods/generator/xcconfig/xcconfig_helper.rb +3 -3
  28. data/lib/cocoapods/installer.rb +64 -109
  29. data/lib/cocoapods/installer/analyzer.rb +167 -336
  30. data/lib/cocoapods/installer/analyzer/analysis_result.rb +46 -0
  31. data/lib/cocoapods/installer/analyzer/specs_state.rb +76 -0
  32. data/lib/cocoapods/installer/analyzer/target_inspection_result.rb +41 -0
  33. data/lib/cocoapods/installer/analyzer/target_inspector.rb +203 -0
  34. data/lib/cocoapods/installer/file_references_installer.rb +48 -13
  35. data/lib/cocoapods/installer/podfile_validator.rb +86 -0
  36. data/lib/cocoapods/installer/{hooks_context.rb → post_install_hooks_context.rb} +3 -3
  37. data/lib/cocoapods/installer/pre_install_hooks_context.rb +41 -0
  38. data/lib/cocoapods/installer/target_installer.rb +1 -7
  39. data/lib/cocoapods/installer/target_installer/aggregate_target_installer.rb +15 -17
  40. data/lib/cocoapods/installer/target_installer/pod_target_installer.rb +4 -4
  41. data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +16 -16
  42. data/lib/cocoapods/sandbox/file_accessor.rb +20 -2
  43. data/lib/cocoapods/sandbox/path_list.rb +15 -13
  44. data/lib/cocoapods/sandbox/podspec_finder.rb +1 -0
  45. data/lib/cocoapods/sources_manager.rb +2 -0
  46. data/lib/cocoapods/target.rb +7 -37
  47. data/lib/cocoapods/target/aggregate_target.rb +25 -1
  48. data/lib/cocoapods/target/pod_target.rb +106 -10
  49. data/lib/cocoapods/user_interface.rb +26 -0
  50. data/lib/cocoapods/user_interface/error_report.rb +6 -0
  51. data/lib/cocoapods/validator.rb +22 -0
  52. metadata +21 -16
  53. data/lib/cocoapods/generator/target_environment_header.rb +0 -171
  54. data/lib/cocoapods/hooks/installer_representation.rb +0 -133
  55. data/lib/cocoapods/hooks/library_representation.rb +0 -93
  56. data/lib/cocoapods/hooks/pod_representation.rb +0 -70
@@ -14,6 +14,7 @@ module Pod
14
14
  spec_files.sort_by { |p| -p.to_path.split(File::SEPARATOR).size }.each do |file|
15
15
  begin
16
16
  spec = Specification.from_file(file)
17
+ spec.validate_cocoapods_version
17
18
  @specs_by_name[spec.name] = spec
18
19
  rescue => e
19
20
  UI.warn "Unable to load a podspec from `#{file.basename}`, skipping:\n\n#{e}"
@@ -271,6 +271,8 @@ module Pod
271
271
  "CocoaPods #{versions['last']} is available.".green,
272
272
  "To update use: `#{install_message}`".green,
273
273
  ("[!] This is a test version we'd love you to try.".yellow if rc),
274
+ ("Until we reach version 1.0 the features of CocoaPods can and will change.\n" \
275
+ 'We strongly recommend that you use the latest version at all times.'.yellow unless rc),
274
276
  '',
275
277
  'For more information see http://blog.cocoapods.org'.green,
276
278
  'and the CHANGELOG for this version http://git.io/BaH8pQ.'.green,
@@ -6,11 +6,6 @@ module Pod
6
6
  # This class is used to represent both the targets and their libraries.
7
7
  #
8
8
  class Target
9
- # @return [TargetDefinition] the target definition of the Podfile that
10
- # generated this target.
11
- #
12
- attr_reader :target_definition
13
-
14
9
  # @return [Sandbox] The sandbox where the Pods should be installed.
15
10
  #
16
11
  attr_reader :sandbox
@@ -21,6 +16,12 @@ module Pod
21
16
  attr_accessor :host_requires_frameworks
22
17
  alias_method :host_requires_frameworks?, :host_requires_frameworks
23
18
 
19
+ # Initialize a new target
20
+ #
21
+ def initialize
22
+ @archs = []
23
+ end
24
+
24
25
  # @return [String] the name of the library.
25
26
  #
26
27
  def name
@@ -110,13 +111,7 @@ module Pod
110
111
  #
111
112
  attr_accessor :native_target
112
113
 
113
- # @return [Platform] the platform for this library.
114
- #
115
- def platform
116
- @platform ||= target_definition.platform
117
- end
118
-
119
- # @return [String] The value for the ARCHS build setting.
114
+ # @return [Array<String>] The value for the ARCHS build setting.
120
115
  #
121
116
  attr_accessor :archs
122
117
 
@@ -167,14 +162,6 @@ module Pod
167
162
  support_files_dir + "#{label}.modulemap"
168
163
  end
169
164
 
170
- # @return [Pathname] the absolute path of the header file which contains
171
- # the information about the installed pods.
172
- #
173
- def target_environment_header_path
174
- name = target_definition.label
175
- sandbox.target_support_files_dir(name) + "#{name}-environment.h"
176
- end
177
-
178
165
  # @return [Pathname] the absolute path of the prefix header file.
179
166
  #
180
167
  def prefix_header_path
@@ -199,23 +186,6 @@ module Pod
199
186
  support_files_dir + "#{label}-dummy.m"
200
187
  end
201
188
 
202
- # @return [String] The configuration build dir, if the target is integrated
203
- # as framework.
204
- #
205
- # @note Namespace the pod target product with its target definition name.
206
- # Pod target products are named after their specs. The namespacing
207
- # cannot directly happen in the product name itself, because this
208
- # must be equal to the module name and this will be used in source
209
- # code, which should stay agnostic over the dependency manager.
210
- # We need namespacing at all because multiple targets can exist for
211
- # the same podspec and their products should not collide. This
212
- # happens when multiple user targets require the same pod, because
213
- # they could require different sets of subspecs.
214
- #
215
- def configuration_build_dir
216
- "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/#{target_definition.label}"
217
- end
218
-
219
189
  #-------------------------------------------------------------------------#
220
190
 
221
191
  private
@@ -3,12 +3,17 @@ module Pod
3
3
  # of the single Pods. The client targets will then depend on this one.
4
4
  #
5
5
  class AggregateTarget < Target
6
+ # @return [TargetDefinition] the target definition of the Podfile that
7
+ # generated this target.
8
+ attr_reader :target_definition
9
+
6
10
  # Initialize a new instance
7
11
  #
8
12
  # @param [TargetDefinition] target_definition @see target_definition
9
13
  # @param [Sandbox] sandbox @see sandbox
10
14
  #
11
15
  def initialize(target_definition, sandbox)
16
+ super()
12
17
  @target_definition = target_definition
13
18
  @sandbox = sandbox
14
19
  @pod_targets = []
@@ -30,6 +35,18 @@ module Pod
30
35
  c99ext_identifier(label)
31
36
  end
32
37
 
38
+ # @return [Platform] the platform for this target.
39
+ #
40
+ def platform
41
+ @platform ||= target_definition.platform
42
+ end
43
+
44
+ # @return [Podfile] The podfile which declares the dependency
45
+ #
46
+ def podfile
47
+ target_definition.podfile
48
+ end
49
+
33
50
  # @return [Pathname] the folder where the client is stored used for
34
51
  # computing the relative paths. If integrating it should be the
35
52
  # folder where the user project is stored, otherwise it should
@@ -94,7 +111,7 @@ module Pod
94
111
  #
95
112
  def pod_targets_for_build_configuration(build_configuration)
96
113
  pod_targets.select do |pod_target|
97
- pod_target.include_in_build_config?(build_configuration)
114
+ pod_target.include_in_build_config?(target_definition, build_configuration)
98
115
  end
99
116
  end
100
117
 
@@ -182,6 +199,13 @@ module Pod
182
199
  "${SRCROOT}/#{relative_to_srcroot(embed_frameworks_script_path)}"
183
200
  end
184
201
 
202
+ # @return [String] The scoped configuration build dir, relevant if the
203
+ # target is integrated as framework.
204
+ #
205
+ def scoped_configuration_build_dir
206
+ "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/#{target_definition.label}"
207
+ end
208
+
185
209
  private
186
210
 
187
211
  # @!group Private Helpers
@@ -3,31 +3,87 @@ module Pod
3
3
  # A pod can have one or more activated spec/subspecs.
4
4
  #
5
5
  class PodTarget < Target
6
- # @return [Specification] the spec for the target.
6
+ # @return [Array<Specification>] the spec and subspecs for the target.
7
7
  #
8
8
  attr_reader :specs
9
9
 
10
+ # @return [Array<PBXNativeTarget>] the target definitions of the Podfile
11
+ # that generated this target.
12
+ #
13
+ attr_reader :target_definitions
14
+
10
15
  # @return [HeadersStore] the header directory for the target.
11
16
  #
12
17
  attr_reader :build_headers
13
18
 
14
- # @param [Specification] spec @see spec
15
- # @param [TargetDefinition] target_definition @see target_definition
19
+ # @return [Bool] whether the target needs to be scoped by target definition,
20
+ # because the spec is used with different subspec sets across them.
21
+ #
22
+ # @note For frameworks the target products of {PodTarget}s are named
23
+ # after their specs. The namespacing cannot directly happen in
24
+ # the product name itself, because this must be equal to the module
25
+ # name and this will be used in source code, which should stay
26
+ # agnostic over the dependency manager.
27
+ # We need namespacing because multiple targets can exist for the
28
+ # same podspec and their products should not collide. This
29
+ # duplication is needed when multiple user targets have the same
30
+ # dependency, but they require different sets of subspecs or they
31
+ # are on different platforms.
32
+ #
33
+ attr_reader :scoped
34
+ alias_method :scoped?, :scoped
35
+
36
+ # @param [Array<Specification>] @spec #see spec
37
+ # @param [Array<TargetDefinition>] target_definitions @see target_definitions
16
38
  # @param [Sandbox] sandbox @see sandbox
39
+ # @param [Bool] scoped @see scoped
17
40
  #
18
- def initialize(specs, target_definition, sandbox)
41
+ def initialize(specs, target_definitions, sandbox, scoped = false)
42
+ raise "Can't initialize a PodTarget without specs!" if specs.nil? || specs.empty?
43
+ raise "Can't initialize a PodTarget without TargetDefinition!" if target_definitions.nil? || target_definitions.empty?
44
+ super()
19
45
  @specs = specs
20
- @target_definition = target_definition
46
+ @target_definitions = target_definitions
21
47
  @sandbox = sandbox
48
+ @scoped = scoped
22
49
  @build_headers = Sandbox::HeadersStore.new(sandbox, 'Private')
23
50
  @file_accessors = []
24
51
  @resource_bundle_targets = []
25
52
  end
26
53
 
54
+ # @return [Array<PodTarget>] a scoped copy for each target definition.
55
+ #
56
+ def scoped
57
+ target_definitions.map do |target_definition|
58
+ PodTarget.new(specs, [target_definition], sandbox, true).tap do |target|
59
+ target.file_accessors = file_accessors
60
+ target.user_build_configurations = user_build_configurations
61
+ target.native_target = native_target
62
+ target.archs = archs
63
+ end
64
+ end
65
+ end
66
+
27
67
  # @return [String] the label for the target.
28
68
  #
29
69
  def label
30
- "#{target_definition.label}-#{root_spec.name}"
70
+ if scoped?
71
+ "#{target_definitions.first.label}-#{root_spec.name}"
72
+ else
73
+ root_spec.name
74
+ end
75
+ end
76
+
77
+ # @return [Platform] the platform for this target.
78
+ #
79
+ def platform
80
+ @platform ||= target_definitions.first.platform
81
+ end
82
+
83
+ # @return [Podfile] The podfile which declares the dependency.
84
+ #
85
+ def podfile
86
+ target_definitions.first.podfile
31
87
  end
32
88
 
33
89
  # @return [String] The name to use for the source code module constructed
@@ -103,13 +159,16 @@ module Pod
103
159
  end
104
160
 
105
161
  # Checks if the target should be included in the build configuration with
106
- # the given name.
162
+ # the given name of a given target definition.
163
+ #
164
+ # @param [TargetDefinition] target_definition
165
+ # The target definition to check.
107
166
  #
108
167
  # @param [String] configuration_name
109
168
  # The name of the build configuration.
110
169
  #
111
- def include_in_build_config?(configuration_name)
112
- whitelists = target_definition_dependencies.map do |dependency|
170
+ def include_in_build_config?(target_definition, configuration_name)
171
+ whitelists = target_definition_dependencies(target_definition).map do |dependency|
113
172
  target_definition.pod_whitelisted_for_configuration?(dependency.name, configuration_name)
114
173
  end.uniq
115
174
 
@@ -125,14 +184,51 @@ module Pod
125
184
  end
126
185
  end
127
186
 
187
+ # Checks if warnings should be inhibited for this pod.
188
+ #
189
+ # @return [Bool]
190
+ #
191
+ def inhibit_warnings?
192
+ whitelists = target_definitions.map do |target_definition|
193
+ target_definition.inhibits_warnings_for_pod?(root_spec.name)
194
+ end.uniq
195
+
196
+ if whitelists.empty?
197
+ return false
198
+ elsif whitelists.count == 1
199
+ whitelists.first
200
+ else
201
+ UI.warn "The pod `#{pod_name}` is linked to different targets " \
202
+ "(#{target_definitions.map(&:label)}), which contain different " \
203
+ 'settings to inhibit warnings. CocoaPods does not currently ' \
204
+ 'support different settings and will fall back to your preference ' \
205
+ 'set in the root target definition.'
206
+ return podfile.root_target_definitions.first.inhibits_warnings_for_pod?(root_spec.name)
207
+ end
208
+ end
209
+
210
+ # @return [String] The configuration build dir, relevant if the target is
211
+ # integrated as framework.
212
+ #
213
+ def configuration_build_dir
214
+ if scoped?
215
+ "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/#{target_definitions.first.label}"
216
+ else
217
+ '$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)'
218
+ end
219
+ end
220
+
128
221
  private
129
222
 
223
+ # @param [TargetDefinition] target_definition
224
+ # The target definition to check.
225
+ #
130
226
  # @return [Array<Dependency>] The dependency of the target definition for
131
227
  # this Pod. Return an empty array if the Pod is not a direct
132
228
  # dependency of the target definition but the dependency of one or
133
229
  # more Pods.
134
230
  #
135
- def target_definition_dependencies
231
+ def target_definition_dependencies(target_definition)
136
232
  target_definition.dependencies.select do |dependency|
137
233
  Specification.root_name(dependency.name) == pod_name
138
234
  end
@@ -285,6 +285,32 @@ module Pod
285
285
  end
286
286
  end
287
287
 
288
+ # Presents a choice among the elements of an array to the user.
289
+ #
290
+ # @param [Array<#to_s>] array
291
+ # The list of the elements among which the user should make his
292
+ # choice.
293
+ #
294
+ # @param [String] message
295
+ # The message to display to the user.
296
+ #
297
+ # @return [Fixnum] The index of the chosen array item.
298
+ #
299
+ def choose_from_array(array, message)
300
+ array.each_with_index do |item, index|
301
+ UI.puts "#{ index + 1 }: #{ item }"
302
+ end
303
+
304
+ UI.puts message
305
+
306
+ index = UI.gets.chomp.to_i - 1
307
+ if index < 0 || index > array.count - 1
308
+ raise Informative, "#{ index + 1 } is invalid [1-#{ array.count }]"
309
+ else
310
+ index
311
+ end
312
+ end
313
+
288
314
  public
289
315
 
290
316
  # @!group Basic methods
@@ -73,6 +73,12 @@ EOS
73
73
 
74
74
  private
75
75
 
76
+ def `(other)
77
+ super
78
+ rescue Errno::ENOENT => e
79
+ "Unable to find an executable (#{e})"
80
+ end
81
+
76
82
  def pathless_exception_message(message)
77
83
  message.gsub(/- \(.*\):/, '-')
78
84
  end
@@ -1,3 +1,6 @@
1
+ require 'active_support/core_ext/array'
2
+ require 'active_support/core_ext/string/inflections'
3
+
1
4
  module Pod
2
5
  # Validates a Specification.
3
6
  #
@@ -89,6 +92,8 @@ module Pod
89
92
  platform_message = '[iOS] '
90
93
  elsif result.platforms == [:osx]
91
94
  platform_message = '[OSX] '
95
+ elsif result.platforms == [:watchos]
96
+ platform_message = '[watchOS] '
92
97
  end
93
98
 
94
99
  subspecs_message = ''
@@ -111,6 +116,23 @@ module Pod
111
116
  UI.puts
112
117
  end
113
118
 
119
+ def failure_reason
120
+ results_by_type = results.group_by(&:type)
121
+ results_by_type.default = []
122
+ return nil if validated?
123
+ reasons = []
124
+ if (size = results_by_type[:error].size) && size > 0
125
+ reasons << "#{size} #{'error'.pluralize(size)}"
126
+ end
127
+ if !allow_warnings && (size = results_by_type[:warning].size) && size > 0
128
+ reason = "#{size} #{'warning'.pluralize(size)}"
129
+ pronoun = size == 1 ? 'it' : 'them'
130
+ reason << " (but you can use `--allow-warnings` to ignore #{pronoun})" if reasons.empty?
131
+ reasons << reason
132
+ end
133
+ reasons.to_sentence
134
+ end
135
+
114
136
  #-------------------------------------------------------------------------#
115
137
 
116
138
  #  @!group Configuration
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.37.2
4
+ version: 0.38.0.beta.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eloy Duran
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-05-27 00:00:00.000000000 Z
14
+ date: 2015-06-26 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: cocoapods-core
@@ -19,56 +19,56 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 0.37.2
22
+ version: 0.38.0.beta.1
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - '='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.37.2
29
+ version: 0.38.0.beta.1
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: claide
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - ~>
35
35
  - !ruby/object:Gem::Version
36
- version: 0.8.1
36
+ version: 0.8.2
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - ~>
42
42
  - !ruby/object:Gem::Version
43
- version: 0.8.1
43
+ version: 0.8.2
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: xcodeproj
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - ~>
49
49
  - !ruby/object:Gem::Version
50
- version: 0.24.2
50
+ version: 0.25.0
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - ~>
56
56
  - !ruby/object:Gem::Version
57
- version: 0.24.2
57
+ version: 0.25.0
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: cocoapods-downloader
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - ~>
63
63
  - !ruby/object:Gem::Version
64
- version: 0.9.0
64
+ version: 0.9.1
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - ~>
70
70
  - !ruby/object:Gem::Version
71
- version: 0.9.0
71
+ version: 0.9.1
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: cocoapods-plugins
74
74
  requirement: !ruby/object:Gem::Requirement
@@ -247,6 +247,9 @@ files:
247
247
  - bin/sandbox-pod
248
248
  - lib/cocoapods.rb
249
249
  - lib/cocoapods/command.rb
250
+ - lib/cocoapods/command/cache.rb
251
+ - lib/cocoapods/command/cache/clean.rb
252
+ - lib/cocoapods/command/cache/list.rb
250
253
  - lib/cocoapods/command/init.rb
251
254
  - lib/cocoapods/command/inter_process_communication.rb
252
255
  - lib/cocoapods/command/lib.rb
@@ -291,26 +294,28 @@ files:
291
294
  - lib/cocoapods/generator/info_plist_file.rb
292
295
  - lib/cocoapods/generator/module_map.rb
293
296
  - lib/cocoapods/generator/prefix_header.rb
294
- - lib/cocoapods/generator/target_environment_header.rb
295
297
  - lib/cocoapods/generator/umbrella_header.rb
296
298
  - lib/cocoapods/generator/xcconfig.rb
297
299
  - lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb
298
300
  - lib/cocoapods/generator/xcconfig/private_pod_xcconfig.rb
299
301
  - lib/cocoapods/generator/xcconfig/public_pod_xcconfig.rb
300
302
  - lib/cocoapods/generator/xcconfig/xcconfig_helper.rb
301
- - lib/cocoapods/hooks/installer_representation.rb
302
- - lib/cocoapods/hooks/library_representation.rb
303
- - lib/cocoapods/hooks/pod_representation.rb
304
303
  - lib/cocoapods/hooks_manager.rb
305
304
  - lib/cocoapods/installer.rb
306
305
  - lib/cocoapods/installer/analyzer.rb
306
+ - lib/cocoapods/installer/analyzer/analysis_result.rb
307
307
  - lib/cocoapods/installer/analyzer/locking_dependency_analyzer.rb
308
308
  - lib/cocoapods/installer/analyzer/sandbox_analyzer.rb
309
+ - lib/cocoapods/installer/analyzer/specs_state.rb
310
+ - lib/cocoapods/installer/analyzer/target_inspection_result.rb
311
+ - lib/cocoapods/installer/analyzer/target_inspector.rb
309
312
  - lib/cocoapods/installer/file_references_installer.rb
310
- - lib/cocoapods/installer/hooks_context.rb
311
313
  - lib/cocoapods/installer/migrator.rb
312
314
  - lib/cocoapods/installer/pod_source_installer.rb
313
315
  - lib/cocoapods/installer/pod_source_preparer.rb
316
+ - lib/cocoapods/installer/podfile_validator.rb
317
+ - lib/cocoapods/installer/post_install_hooks_context.rb
318
+ - lib/cocoapods/installer/pre_install_hooks_context.rb
314
319
  - lib/cocoapods/installer/target_installer.rb
315
320
  - lib/cocoapods/installer/target_installer/aggregate_target_installer.rb
316
321
  - lib/cocoapods/installer/target_installer/pod_target_installer.rb
@@ -354,7 +359,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
354
359
  version: '0'
355
360
  requirements: []
356
361
  rubyforge_project:
357
- rubygems_version: 2.4.7
362
+ rubygems_version: 2.4.8
358
363
  signing_key:
359
364
  specification_version: 3
360
365
  summary: The Cocoa library package manager.