cocoapods 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +329 -0
  3. data/lib/cocoapods/command/init.rb +6 -6
  4. data/lib/cocoapods/command/ipc/list.rb +40 -0
  5. data/lib/cocoapods/command/ipc/podfile.rb +31 -0
  6. data/lib/cocoapods/command/ipc/repl.rb +51 -0
  7. data/lib/cocoapods/command/ipc/spec.rb +29 -0
  8. data/lib/cocoapods/command/ipc/update_search_index.rb +24 -0
  9. data/lib/cocoapods/command/ipc.rb +18 -0
  10. data/lib/cocoapods/command/lib/create.rb +105 -0
  11. data/lib/cocoapods/command/lib/lint.rb +111 -0
  12. data/lib/cocoapods/command/lib.rb +3 -207
  13. data/lib/cocoapods/command/repo/push.rb +44 -20
  14. data/lib/cocoapods/command/setup.rb +2 -1
  15. data/lib/cocoapods/command/spec/lint.rb +4 -0
  16. data/lib/cocoapods/command.rb +2 -1
  17. data/lib/cocoapods/config.rb +4 -1
  18. data/lib/cocoapods/downloader/cache.rb +1 -0
  19. data/lib/cocoapods/downloader.rb +20 -0
  20. data/lib/cocoapods/executable.rb +1 -1
  21. data/lib/cocoapods/gem_version.rb +1 -1
  22. data/lib/cocoapods/generator/acknowledgements/plist.rb +4 -1
  23. data/lib/cocoapods/generator/copy_resources_script.rb +4 -10
  24. data/lib/cocoapods/generator/header.rb +2 -1
  25. data/lib/cocoapods/generator/prefix_header.rb +0 -12
  26. data/lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb +38 -5
  27. data/lib/cocoapods/generator/xcconfig/xcconfig_helper.rb +5 -4
  28. data/lib/cocoapods/installer/analyzer/pod_variant_set.rb +5 -1
  29. data/lib/cocoapods/installer/analyzer/target_inspector.rb +24 -1
  30. data/lib/cocoapods/installer/analyzer.rb +161 -1
  31. data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +29 -9
  32. data/lib/cocoapods/installer/xcode/pods_project_generator/aggregate_target_installer.rb +204 -0
  33. data/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb +314 -0
  34. data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +401 -0
  35. data/lib/cocoapods/installer/xcode/pods_project_generator/target_installer.rb +214 -0
  36. data/lib/cocoapods/installer/xcode/pods_project_generator.rb +265 -0
  37. data/lib/cocoapods/installer/xcode.rb +7 -0
  38. data/lib/cocoapods/installer.rb +50 -214
  39. data/lib/cocoapods/resolver.rb +15 -9
  40. data/lib/cocoapods/sandbox/headers_store.rb +4 -10
  41. data/lib/cocoapods/sandbox/path_list.rb +20 -9
  42. data/lib/cocoapods/sources_manager.rb +7 -10
  43. data/lib/cocoapods/target/aggregate_target.rb +20 -0
  44. data/lib/cocoapods/target/pod_target.rb +37 -7
  45. data/lib/cocoapods/user_interface/error_report.rb +7 -0
  46. data/lib/cocoapods/user_interface/inspector_reporter.rb +109 -0
  47. data/lib/cocoapods/user_interface.rb +7 -5
  48. data/lib/cocoapods/validator.rb +59 -11
  49. metadata +112 -83
  50. data/lib/cocoapods/command/inter_process_communication.rb +0 -177
  51. data/lib/cocoapods/installer/file_references_installer.rb +0 -310
  52. data/lib/cocoapods/installer/migrator.rb +0 -86
  53. data/lib/cocoapods/installer/target_installer/aggregate_target_installer.rb +0 -191
  54. data/lib/cocoapods/installer/target_installer/pod_target_installer.rb +0 -368
  55. data/lib/cocoapods/installer/target_installer.rb +0 -210
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 089fd601f4b77b13ce571371163234e74681fc6a
4
- data.tar.gz: 2ba921d00ae8b35bad6446d8d86bc4437766dcec
3
+ metadata.gz: 80f900c52d47f767b6afb4da5f9836e97568a0a4
4
+ data.tar.gz: c195495f686289715d00afac16999592dc6798aa
5
5
  SHA512:
6
- metadata.gz: dc073ce49be6c7c75b2e80f4eb888bb68d623f9041721129877a1a074eafa231e984f3ff93b25756784cf43e0bb741a1e7405ceb7d177799f14b920d1c64afcc
7
- data.tar.gz: b21370ae05fa41e645bcf4d7ce27ee6e2b13507098ce5b4540f54cdd2b042ff26981cea047169379d911eac0835a72575842195ff5acfd0c7699142fdbf235ff
6
+ metadata.gz: 88d6604e4bf3ccc02c3c123f585e345e0adccffccd72a4e02b3f290af4eb6d8ba91c19b11f6cfd642ea764246bd51ab47d99b7219ddaf9fcf55db65ce7e67986
7
+ data.tar.gz: 6ffb3ade512e2ae0c5c34344c6fb85b97ac007ebdf37dbf865d5add39e709c0aac4c73314a70ae9e50d51ccf56a8feb1f8f628bd12f3d729e3d0de42d73daa64
data/CHANGELOG.md CHANGED
@@ -4,6 +4,335 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
4
4
 
5
5
  To install release candidates run `[sudo] gem install cocoapods --pre`
6
6
 
7
+ ## 1.1.0 (2016-10-19)
8
+
9
+ ##### Enhancements
10
+
11
+ * Use host target for frameworks of XPC services.
12
+ [Ingmar Stein](https://github.com/IngmarStein)
13
+ [#6029](https://github.com/CocoaPods/CocoaPods/pull/6029)
14
+
15
+ * Use Swift 3.0 by default during validation.
16
+ [Danielle Tomlinson](https://github.com/dantoml)
17
+ [#6042](https://github.com/CocoaPods/CocoaPods/pull/6042)
18
+
19
+ * Exit with non-zero exit status if pod repo update fails
20
+ [Uku Loskit](https://github.com/UkuLoskit)
21
+ [#6037](https://github.com/CocoaPods/CocoaPods/issues/6037)
22
+
23
+ * The validator has an API for accessing which version of Swift was used.
24
+ [Orta Therox](https://github.com/orta)
25
+ [#6049](https://github.com/CocoaPods/CocoaPods/pull/6049)
26
+
27
+
28
+ ##### Bug Fixes
29
+
30
+ * None.
31
+
32
+
33
+ ## 1.1.0.rc.3 (2016-10-11)
34
+
35
+ ##### Enhancements
36
+
37
+ * Cache result of inhibit_warnings and include_in_build_config to speed up pod install.
38
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
39
+ [#5934](https://github.com/CocoaPods/CocoaPods/pull/5934)
40
+
41
+ * Tell users about the .swift-version file on validation failures.
42
+ [Danielle Tomlinson](https://github.com/dantoml)
43
+ [#5951](https://github.com/CocoaPods/CocoaPods/pull/5951)
44
+
45
+ * Improve performance of PathList.read_file_system
46
+ [Heath Borders](https://github.com/hborders)
47
+ [#5890](https://github.com/CocoaPods/CocoaPods/issues/5890)
48
+
49
+ * Cache result of uses_swift and should_build to speed up pod install.
50
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
51
+ [#5837](https://github.com/CocoaPods/CocoaPods/pull/5837)
52
+
53
+ * Remove uses of `cd` in generated scripts
54
+ [Ben Asher](https://github.com/benasher44)
55
+ [#5959](https://github.com/CocoaPods/CocoaPods/pull/5959)
56
+
57
+ * Error with helpful message when integrating a pod into targets that have mismatched Swift versions.
58
+ [Ben Asher](https://github.com/benasher44)
59
+ [#5984](https://github.com/CocoaPods/CocoaPods/pull/5984)
60
+
61
+ * Allow users to share pods between Objective-C and Swift targets.
62
+ [Danielle Tomlinson](https://github.com/dantoml)
63
+ [#5984](https://github.com/CocoaPods/CocoaPods/pull/5984)
64
+
65
+ * Allow setting the linting Swift version via `--swift-version=VERSION`
66
+ [Danielle Tomlinson](https://github.com/dantoml)
67
+ [#5989](https://github.com/CocoaPods/CocoaPods/pull/5989)
68
+
69
+ * Greenify pod install success message
70
+ [Stephen Hayes](https://github.com/schayes04)
71
+ [#5713](https://github.com/CocoaPods/CocoaPods/issues/5713)
72
+
73
+ * Update EMBEDDED_CONTENT_CONTAINS_SWIFT flag behaviour based on xcode version.
74
+ [codymoorhouse](https://github.com/codymoorhouse)
75
+ [#5732](https://github.com/CocoaPods/CocoaPods/issues/5732)
76
+
77
+ ##### Bug Fixes
78
+
79
+ * Remove special handling for messages apps
80
+ [Ben Asher](https://github.com/benasher44)
81
+ [#5860](https://github.com/CocoaPods/CocoaPods/issues/5860)
82
+
83
+ * Ensure messages apps have an embed frameworks build phase
84
+ [Ben Asher](https://github.com/benasher44)
85
+ [#5860](https://github.com/CocoaPods/CocoaPods/issues/5860)
86
+
87
+ * Fix linting of private pods when using libraries.
88
+ [Stefan Pühringer](https://github.com/b-ray)
89
+ [#5891](https://github.com/CocoaPods/CocoaPods/issues/5891)
90
+
91
+
92
+ ## 1.1.0.rc.2 (2016-09-13)
93
+
94
+ ##### Enhancements
95
+
96
+ * Use the SWIFT_VERSION when linting pods. To lint with Swift 3.0
97
+ add a Swift Version file. `echo "3.0" >> .swift-version`.
98
+ [Danielle Tomlinson](https://github.com/dantoml)
99
+ [#5841](https://github.com/CocoaPods/CocoaPods/pull/5841)
100
+
101
+ ##### Bug Fixes
102
+
103
+ * Correctly pass Pod:VERSION in `pod lib create`.
104
+ [Danielle Tomlinson](https://github.com/dantoml)
105
+ [#5840](https://github.com/CocoaPods/CocoaPods/issues/5840)
106
+
107
+
108
+ ## 1.1.0.rc.1 (2016-09-10)
109
+
110
+ ##### Enhancements
111
+
112
+ *
113
+
114
+ ##### Bug Fixes
115
+
116
+ * Wrap generated import headers with __OBJC__ to fix C only pods.
117
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
118
+ [#5291](https://github.com/CocoaPods/CocoaPods/issues/5291)
119
+
120
+ * Prevent crash when generating acknowledgements when license type is not specified.
121
+ [Marcelo Fabri](https://github.com/marcelofabri)
122
+ [#5826](https://github.com/CocoaPods/CocoaPods/issues/5826)
123
+
124
+ * Pass full path to App.xcworkspace for spec validation, and use `git -C` for `pod repo push` git ops.
125
+ [Ben Asher](https://github.com/benasher44)
126
+ [#5805](https://github.com/CocoaPods/CocoaPods/issues/5805)
127
+
128
+
129
+ ## 1.1.0.beta.2 (2016-09-03)
130
+
131
+ ##### Enhancements
132
+
133
+ * Remove references to the pre-1.0 Migrator.
134
+ [Danielle Tomlinson](https://github.com/dantoml)
135
+ [#5635](https://github.com/CocoaPods/CocoaPods/pull/5635)
136
+
137
+ * Improve performance of dependency resolution.
138
+ [yanzhiwei147](https://github.com/yanzhiwei147)
139
+ [#5510](https://github.com/CocoaPods/CocoaPods/pull/5510)
140
+
141
+ * Add support for building Messages applications.
142
+ [Ben Asher](https://github.com/benasher44)
143
+ [#5726](https://github.com/CocoaPods/CocoaPods/pull/5726)
144
+
145
+ * Improved messaging when missing host targets for embedded targets.
146
+ Improved support for framework-only projects.
147
+ [Ben Asher](https://github.com/benasher44)
148
+ [#5733](https://github.com/CocoaPods/CocoaPods/pull/5733)
149
+
150
+ * Set ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES when appropriate.
151
+ [Ben Asher](https://github.com/benasher44)
152
+ [#5732](https://github.com/CocoaPods/CocoaPods/pull/5732)
153
+
154
+ * Verify that embedded target platform and swift version matches the host.
155
+ [Ben Asher](https://github.com/benasher44)
156
+ [#5747](https://github.com/CocoaPods/CocoaPods/pull/5747)
157
+
158
+ * Pass the version of CocoaPods to `pod lib create`'s configure script.
159
+ [orta](https://github.com/orta)
160
+ [#5787](https://github.com/CocoaPods/CocoaPods/pull/5787)
161
+
162
+ * Improve host target detection for embedded targets
163
+ in sub-projects.
164
+ [Ben Asher](https://github.com/benasher44)
165
+ [#5622](https://github.com/CocoaPods/CocoaPods/issues/5622)
166
+
167
+ ##### Bug Fixes
168
+
169
+ * Hash scope suffixes if they are over 50 characters to prevent file paths from being too long.
170
+ [Danielle Tomlinson](https://github.com/dantoml)
171
+ [#5491](https://github.com/CocoaPods/CocoaPods/issues/5491)
172
+
173
+ * Fix codesigning identity on watchOS and tvOS targets.
174
+ [Danielle Tomlinson](https://github.com/dantoml)
175
+ [#5686](https://github.com/CocoaPods/CocoaPods/issues/5686)
176
+
177
+ * Fix SWIFT_VERSION not being read when only defined at the project level.
178
+ [Ben Asher](https://github.com/benasher44)
179
+ [#5700](https://github.com/CocoaPods/CocoaPods/issues/5700) and [#5737](https://github.com/CocoaPods/CocoaPods/issues/5737)
180
+
181
+ * Fix analyzer checking the compatibility of an embedded target with a host that has not been added the Podfile.
182
+ [Ben Asher](https://github.com/benasher44)
183
+ [#5783](https://github.com/CocoaPods/CocoaPods/issues/5783)
184
+
185
+ ## 1.1.0.beta.1 (2016-07-11)
186
+
187
+ ##### Enhancements
188
+
189
+ * Move Pods Project generation to an `Xcode` Namespace.
190
+ [Daniel Tomlinson](https://github.com/dantoml)
191
+ [#5480](https://github.com/CocoaPods/CocoaPods/pull/5480)
192
+
193
+ * Add the ability to inhibit swift warnings.
194
+ [Peter Ryszkiewicz](https://github.com/pRizz)
195
+ [#5414](https://github.com/CocoaPods/CocoaPods/pull/5414)
196
+
197
+ * Use `git ls-remote` to skip full clones for branch dependencies.
198
+ [Juan Civile](https://github.com/champo)
199
+ [#5376](https://github.com/CocoaPods/CocoaPods/issues/5376)
200
+
201
+ * [repo/push] --use-json to convert podspecs to JSON format when pushing.
202
+ [Mark Schall](https://github.com/maschall)
203
+ [#5568](https://github.com/CocoaPods/CocoaPods/pull/5568)
204
+
205
+ * Set 'Allow app extension API only' for Messages extensions.
206
+ [Boris Bügling](https://github.com/neonichu)
207
+ [#5558](https://github.com/CocoaPods/CocoaPods/issues/5558)
208
+
209
+ * Accept `pod repo push` with URL instead of only repo name.
210
+ [Mark Schall](https://github.com/maschall)
211
+ [#5572](https://github.com/CocoaPods/CocoaPods/pull/5572)
212
+
213
+ * [Installer] Set the SWIFT_VERSION for CocoaPods generated targets.
214
+ [Danielle Tomlinson](https://github.com/DanToml)
215
+ [#5540](https://github.com/CocoaPods/CocoaPods/pull/5540)
216
+
217
+ * Print message when skipping user project integration.
218
+ [Danielle Tomlinson](https://github.com/dantoml)
219
+ [#5517](https://github.com/CocoaPods/CocoaPods/issues/5517)
220
+
221
+ * Show GitHub Issues that could be related to exceptions.
222
+ [Orta Therox](https://github.com/orta)
223
+ [#4817](https://github.com/CocoaPods/CocoaPods/issues/4817)
224
+
225
+ * Improve handling of app extensions, watch os 1 extensions
226
+ and framework targets.
227
+ [Ben Asher](https://github.com/benasher44)
228
+ [#4203](https://github.com/CocoaPods/CocoaPods/issues/4203)
229
+
230
+ * Add a license type to generated acknowledgements file in plist.
231
+ [Naoto Kaneko](https://github.com/naoty)
232
+ [#5436](https://github.com/CocoaPods/CocoaPods/pull/5436)
233
+
234
+ ##### Bug Fixes
235
+
236
+ * Fix local pod platform conflict error message.
237
+ [Muhammed Yavuz Nuzumlalı](https://github.com/manuyavuz)
238
+ [#5052](https://github.com/CocoaPods/CocoaPods/issues/5052)
239
+
240
+ * Avoid use of `activesupport` version 5 to stay compatible with macOS system
241
+ Ruby.
242
+ [Boris Bügling](https://github.com/neonichu)
243
+ [#5602](https://github.com/CocoaPods/CocoaPods/issues/5602)
244
+
245
+ * Fix installing pods with `use_frameworks` when deduplication is disabled.
246
+ [Samuel Giddins](https://github.com/segiddins)
247
+ [#5481](https://github.com/CocoaPods/CocoaPods/issues/5481)
248
+
249
+ * Running `pod setup --silent` will now properly silence git output while
250
+ updating the repository.
251
+ [Samuel Giddins](https://github.com/segiddins)
252
+
253
+ * Fix linting pods that depend upon `XCTest`.
254
+ [Samuel Giddins](https://github.com/segiddins)
255
+ [#5321](https://github.com/CocoaPods/CocoaPods/issues/5321)
256
+
257
+ * Use `require` instead of `autoload` to solve an issue with loading
258
+ `fourflusher`.
259
+ [Boris Bügling](https://github.com/neonichu)
260
+ [#5445](https://github.com/CocoaPods/CocoaPods/issues/5445)
261
+
262
+ * Resolve cyclic dependencies when creating pod targets.
263
+ [Juan Civile](https://github.com/champo)
264
+ [#5362](https://github.com/CocoaPods/CocoaPods/issues/5362)
265
+
266
+ * Fix embedding frameworks in UI Testing bundles.
267
+ [Daniel Tomlinson](https://github.com/dantoml)
268
+ [#5250](https://github.com/CocoaPods/CocoaPods/issues/5250)
269
+
270
+ * Ensure attempting to print a path in the error report doesn't itself error.
271
+ [Samuel Giddins](https://github.com/)
272
+ [#5541](https://github.com/CocoaPods/CocoaPods/issues/5541)
273
+
274
+ * Fix linting with Xcode 8.
275
+ [Boris Bügling](https://github.com/neonichu)
276
+ [#5529](https://github.com/CocoaPods/CocoaPods/issues/5529)
277
+
278
+ * Fix linting with Xcode 8 by disabling it entirely.
279
+ [Boris Bügling](https://github.com/neonichu)
280
+ [#5528](https://github.com/CocoaPods/CocoaPods/issues/5528)
281
+
282
+ * Error during install when there are duplicate library names.
283
+ [Daniel Tomlinson](https://github.com/dantoml)
284
+ [#4014](https://github.com/CocoaPods/CocoaPods/issues/4014)
285
+
286
+ * Make the `Check Pods Manifest.lock` script write errors to STDERR and improve
287
+ POSIX shell compatibility.
288
+ [Simon Warta](https://github.com/webmaster128)
289
+ [#5595](https://github.com/CocoaPods/CocoaPods/pull/5595)
290
+
291
+
292
+ ## 1.0.1 (2016-06-02)
293
+
294
+ ##### Enhancements
295
+
296
+ * None.
297
+
298
+ ##### Bug Fixes
299
+
300
+ * Symlink the header folders in the framework bundle's root directory
301
+ by a new shell script build phase if `header_mappings_dir` is used
302
+ with frameworks.
303
+ [Marius Rackwitz](https://github.com/mrackwitz)
304
+ [#5313](https://github.com/CocoaPods/CocoaPods/issues/5313)
305
+
306
+ * Removed emojis in Build Phases names — as it seems that some third party tools have trouble with them.
307
+ [Olivier Halligon](https://github.com/AliSoftware)
308
+ [#5382](https://github.com/CocoaPods/CocoaPods/pull/5382)
309
+
310
+ * Ensure `Set` is defined before using it.
311
+ [Samuel Giddins](https://github.com/segiddins)
312
+ [#5287](https://github.com/CocoaPods/CocoaPods/issues/5287)
313
+
314
+ * Add --target-device to ibtool invocation for XIBs
315
+ [Juan Civile](https://github.com/champo)
316
+ [#5282](https://github.com/CocoaPods/CocoaPods/issues/5282)
317
+
318
+ * Fix error when executables cannot be found.
319
+ [Jan Berkel](https://github.com/jberkel)
320
+ [#5319](https://github.com/CocoaPods/CocoaPods/pull/5319)
321
+
322
+ * Avoid removing all files when root directory contains unicode characters.
323
+ [Marc Boquet](https://github.com/marcboquet)
324
+ [#5294](https://github.com/CocoaPods/CocoaPods/issues/5294)
325
+
326
+ * Guarding from crash if pod lib create has a + character in the name.
327
+ [William Entriken](https://github.com/fulldecent)
328
+ [CocoaPods/pod-template#69](https://github.com/CocoaPods/pod-template/issues/69)
329
+
330
+ * Use target product types to determine whether a target is a test target when
331
+ running `pod init`.
332
+ [Samuel Giddins](https://github.com/segiddins)
333
+ [#5378](https://github.com/CocoaPods/CocoaPods/issues/5378)
334
+
335
+
7
336
  ## 1.0.0 (2016-05-10)
8
337
 
9
338
  ##### Enhancements
@@ -56,14 +56,14 @@ module Pod
56
56
  podfile = ''
57
57
  podfile << "project '#{@project_path}'\n\n" if @project_path
58
58
  podfile << <<-PLATFORM.strip_heredoc
59
- # Uncomment this line to define a global platform for your project
59
+ # Uncomment the next line to define a global platform for your project
60
60
  # platform :ios, '9.0'
61
61
  PLATFORM
62
62
 
63
63
  # Split out the targets into app and test targets
64
64
  test_targets, app_targets = project.native_targets.
65
65
  sort_by { |t| t.name.downcase }.
66
- partition { |t| t.name =~ /test/i }
66
+ partition(&:test_target_type?)
67
67
 
68
68
  app_targets.each do |app_target|
69
69
  test_targets_for_app = test_targets.select do |target|
@@ -76,7 +76,7 @@ module Pod
76
76
  end
77
77
 
78
78
  # @param [[Xcodeproj::PBXTarget]] targets
79
- # An array which always has a target as it's first item
79
+ # An array which always has a target as its first item
80
80
  # and may optionally contain related test targets
81
81
  #
82
82
  # @return [String] the text for the target module
@@ -86,13 +86,13 @@ module Pod
86
86
 
87
87
  target_module << if app.resolved_build_setting('SWIFT_OPTIMIZATION_LEVEL').values.any?
88
88
  <<-RUBY
89
- # Comment this line if you're not using Swift and don't want to use dynamic frameworks
89
+ # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
90
90
  use_frameworks!
91
91
 
92
92
  RUBY
93
93
  else
94
94
  <<-RUBY
95
- # Uncomment this line if you're using Swift or would like to use dynamic frameworks
95
+ # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
96
96
  # use_frameworks!
97
97
 
98
98
  RUBY
@@ -111,7 +111,7 @@ module Pod
111
111
  end
112
112
 
113
113
  # @param [[Xcodeproj::PBXTarget]] targets
114
- # An array which always has a target as it's first item
114
+ # An array which always has a target as its first item
115
115
  # and may optionally contain a second target as its test target
116
116
  #
117
117
  # @return [String] the text for the target module
@@ -0,0 +1,40 @@
1
+ module Pod
2
+ class Command
3
+ class IPC < Command
4
+ class List < IPC
5
+ self.summary = 'Lists the specifications known to CocoaPods'
6
+ self.description = <<-DESC
7
+ Prints to STDOUT a YAML dictionary where the keys are the name of the
8
+ specifications and each corresponding value is a dictionary with
9
+ the following keys:
10
+ - defined_in_file
11
+ - version
12
+ - authors
13
+ - summary
14
+ - description
15
+ - platforms
16
+ DESC
17
+
18
+ def run
19
+ require 'yaml'
20
+ sets = config.sources_manager.aggregate.all_sets
21
+ result = {}
22
+ sets.each do |set|
23
+ begin
24
+ spec = set.specification
25
+ result[spec.name] = {
26
+ 'authors' => spec.authors.keys,
27
+ 'summary' => spec.summary,
28
+ 'description' => spec.description,
29
+ 'platforms' => spec.available_platforms.map { |p| p.name.to_s },
30
+ }
31
+ rescue DSLError
32
+ next
33
+ end
34
+ end
35
+ output_pipe.puts result.to_yaml
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,31 @@
1
+ module Pod
2
+ class Command
3
+ class IPC < Command
4
+ class Podfile < IPC
5
+ include ProjectDirectory
6
+
7
+ self.summary = 'Converts a Podfile to YAML'
8
+ self.description = 'Converts a Podfile to YAML and prints it to STDOUT.'
9
+ self.arguments = [
10
+ CLAide::Argument.new('PATH', true),
11
+ ]
12
+
13
+ def initialize(argv)
14
+ @path = argv.shift_argument
15
+ super
16
+ end
17
+
18
+ def validate!
19
+ super
20
+ help! 'A Podfile path is required.' unless @path
21
+ end
22
+
23
+ def run
24
+ require 'yaml'
25
+ podfile = Pod::Podfile.from_file(@path)
26
+ output_pipe.puts podfile.to_yaml
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,51 @@
1
+ module Pod
2
+ class Command
3
+ class IPC < Command
4
+ class Repl < IPC
5
+ include ProjectDirectory
6
+
7
+ END_OF_OUTPUT_SIGNAL = "\n\r".freeze
8
+
9
+ self.summary = 'The repl listens to commands on standard input'
10
+ self.description = <<-DESC
11
+ The repl listens to commands on standard input and prints their
12
+ result to standard output.
13
+ It accepts all the other ipc subcommands. The repl will signal the
14
+ end of output with the the ASCII CR+LF `\\n\\r`.
15
+ DESC
16
+
17
+ def run
18
+ print_version
19
+ signal_end_of_output
20
+ listen
21
+ end
22
+
23
+ def print_version
24
+ output_pipe.puts "version: '#{Pod::VERSION}'"
25
+ end
26
+
27
+ def signal_end_of_output
28
+ output_pipe.puts(END_OF_OUTPUT_SIGNAL)
29
+ STDOUT.flush
30
+ end
31
+
32
+ def listen
33
+ while repl_command = STDIN.gets
34
+ execute_repl_command(repl_command)
35
+ end
36
+ end
37
+
38
+ def execute_repl_command(repl_command)
39
+ unless repl_command == '\n'
40
+ repl_commands = repl_command.split
41
+ subcommand = repl_commands.shift.capitalize
42
+ arguments = repl_commands
43
+ subcommand_class = Pod::Command::IPC.const_get(subcommand)
44
+ subcommand_class.new(CLAide::ARGV.new(arguments)).run
45
+ signal_end_of_output
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,29 @@
1
+ module Pod
2
+ class Command
3
+ class IPC < Command
4
+ class Spec < IPC
5
+ self.summary = 'Converts a podspec to JSON'
6
+ self.description = 'Converts a podspec to JSON and prints it to STDOUT.'
7
+ self.arguments = [
8
+ CLAide::Argument.new('PATH', true),
9
+ ]
10
+
11
+ def initialize(argv)
12
+ @path = argv.shift_argument
13
+ super
14
+ end
15
+
16
+ def validate!
17
+ super
18
+ help! 'A specification path is required.' unless @path
19
+ end
20
+
21
+ def run
22
+ require 'json'
23
+ spec = Specification.from_file(@path)
24
+ output_pipe.puts(spec.to_pretty_json)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,24 @@
1
+ module Pod
2
+ class Command
3
+ class IPC < Command
4
+ class UpdateSearchIndex < IPC
5
+ self.summary = 'Updates the search index'
6
+ self.description = <<-DESC
7
+ Updates the search index and prints its path to standard output.
8
+ The search index is a YAML encoded dictionary where the keys
9
+ are the names of the Pods and the values are a dictionary containing
10
+ the following information:
11
+ - version
12
+ - summary
13
+ - description
14
+ - authors
15
+ DESC
16
+
17
+ def run
18
+ config.sources_manager.updated_search_index
19
+ output_pipe.puts(config.sources_manager.search_index_path)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,18 @@
1
+ require 'cocoapods/command/ipc/list'
2
+ require 'cocoapods/command/ipc/podfile'
3
+ require 'cocoapods/command/ipc/repl'
4
+ require 'cocoapods/command/ipc/spec'
5
+ require 'cocoapods/command/ipc/update_search_index'
6
+
7
+ module Pod
8
+ class Command
9
+ class IPC < Command
10
+ self.abstract_command = true
11
+ self.summary = 'Inter-process communication'
12
+
13
+ def output_pipe
14
+ STDOUT
15
+ end
16
+ end
17
+ end
18
+ end