cocoapods 0.37.2 → 0.38.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
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.