cocoapods-core 1.0.0.beta.2 → 1.0.0.beta.3
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.
- checksums.yaml +4 -4
- data/lib/cocoapods-core/dependency.rb +1 -1
- data/lib/cocoapods-core/gem_version.rb +1 -1
- data/lib/cocoapods-core/podfile/dsl.rb +60 -35
- data/lib/cocoapods-core/podfile/target_definition.rb +41 -10
- data/lib/cocoapods-core/podfile.rb +1 -1
- data/lib/cocoapods-core/specification.rb +1 -1
- data/lib/cocoapods-core/standard_error.rb +10 -11
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7613d5a3dbfbfd8dffb9d4c7994a1780ea3dd33b
|
4
|
+
data.tar.gz: 1ce8e16c31c7582cc9ebb33361ec626cce500c5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e42ac029d73c53192a00efc00666a3868f6201e33d5725192f325e9fb57debfbe0a528a5c586b5beeb9395effe36a426bd61c64df3e8328a9f0639877303bcd
|
7
|
+
data.tar.gz: 35d2626af08e1ef52418e5c21b8e653ff450ff476317bbf4fa25ef7154206182e42edefc8107ebe1a0545b4150f3a0015528e29134fa030645ec965ff8847217
|
@@ -350,7 +350,7 @@ module Pod
|
|
350
350
|
version = match_data[2]
|
351
351
|
version = version.gsub(/[()]/, '') if version
|
352
352
|
case version
|
353
|
-
when
|
353
|
+
when / HEAD( \(based on #{Pod::Version::VERSION_PATTERN}\))?/
|
354
354
|
CoreUI.warn "Ignoring obsolete `HEAD` specifier in `#{string}`"
|
355
355
|
Dependency.new(name)
|
356
356
|
when nil, /from `(.*)(`|')/
|
@@ -9,6 +9,7 @@ module Pod
|
|
9
9
|
#
|
10
10
|
# A Podfile can be very simple:
|
11
11
|
#
|
12
|
+
# target 'MyApp'
|
12
13
|
# pod 'AFNetworking', '~> 1.0'
|
13
14
|
#
|
14
15
|
# An example of a more complex Podfile can be:
|
@@ -33,6 +34,39 @@ module Pod
|
|
33
34
|
# end
|
34
35
|
#
|
35
36
|
module DSL
|
37
|
+
# @!group Root Options
|
38
|
+
# Configuration that applies to the Podfile as a whole.
|
39
|
+
#
|
40
|
+
# * `install!` declares the installation method and options to be used
|
41
|
+
# during installation.
|
42
|
+
|
43
|
+
# Specifies the installation method to be used when CocoaPods installs
|
44
|
+
# this Podfile.
|
45
|
+
#
|
46
|
+
# @param [String] installation_method
|
47
|
+
# the name of the installation strategy.
|
48
|
+
#
|
49
|
+
# @param [Hash] options
|
50
|
+
# the installation options.
|
51
|
+
#
|
52
|
+
# @example Specifying custom CocoaPods installation options
|
53
|
+
#
|
54
|
+
# install! 'cocoapods',
|
55
|
+
# :deterministic_uuids => false,
|
56
|
+
# :integrate_targets => false
|
57
|
+
#
|
58
|
+
# @return [void]
|
59
|
+
#
|
60
|
+
def install!(installation_method, options = {})
|
61
|
+
unless current_target_definition.root?
|
62
|
+
raise Informative, 'The installation method can only be set at the root level of the Podfile.'
|
63
|
+
end
|
64
|
+
|
65
|
+
set_hash_value('installation_method', 'name' => installation_method, 'options' => options)
|
66
|
+
end
|
67
|
+
|
68
|
+
#-----------------------------------------------------------------------#
|
69
|
+
|
36
70
|
# @!group Dependencies
|
37
71
|
# The Podfile specifies the dependencies of each user target.
|
38
72
|
#
|
@@ -246,8 +280,7 @@ module Pod
|
|
246
280
|
# pod 'SSZipArchive'
|
247
281
|
# end
|
248
282
|
#
|
249
|
-
# @example Defining a test target
|
250
|
-
# for it's parent target.
|
283
|
+
# @example Defining a test target accessing SSZipArchive pod from its parent
|
251
284
|
#
|
252
285
|
# target "ZipApp" do
|
253
286
|
# pod 'SSZipArchive'
|
@@ -258,8 +291,7 @@ module Pod
|
|
258
291
|
# end
|
259
292
|
# end
|
260
293
|
#
|
261
|
-
# @example Defining a target applies Pods to multiple targets via its
|
262
|
-
# parent target
|
294
|
+
# @example Defining a target applies Pods to multiple targets via its parent target
|
263
295
|
#
|
264
296
|
# target "ShowsApp" do
|
265
297
|
# pod 'ShowsKit'
|
@@ -358,7 +390,8 @@ module Pod
|
|
358
390
|
|
359
391
|
# Sets the inheritance mode for the current target.
|
360
392
|
#
|
361
|
-
# @param [:complete, :none, :search_paths]
|
393
|
+
# @param [:complete, :none, :search_paths] inheritance
|
394
|
+
# the inheritance mode to set.
|
362
395
|
#
|
363
396
|
# @example Inheriting only search paths
|
364
397
|
#
|
@@ -374,35 +407,10 @@ module Pod
|
|
374
407
|
current_target_definition.inheritance = inheritance
|
375
408
|
end
|
376
409
|
|
377
|
-
# Specifies the installation method to be used when CocoaPods installs
|
378
|
-
# this Podfile.
|
379
|
-
#
|
380
|
-
# @param [String] installation_method
|
381
|
-
# the name of the installation strategy.
|
382
|
-
#
|
383
|
-
# @param [Hash] options
|
384
|
-
# the installation options.
|
385
|
-
#
|
386
|
-
# @example Specifying custom CocoaPods installation options
|
387
|
-
#
|
388
|
-
# install! 'cocoapods',
|
389
|
-
# :deterministic_uuids => false,
|
390
|
-
# :integrate_targets => false
|
391
|
-
#
|
392
|
-
# @return [void]
|
393
|
-
#
|
394
|
-
def install!(installation_method, options = {})
|
395
|
-
unless current_target_definition.root?
|
396
|
-
raise Informative, 'The installation method can only be set at the root level of the Podfile.'
|
397
|
-
end
|
398
|
-
|
399
|
-
set_hash_value('installation_method', 'name' => installation_method, 'options' => options)
|
400
|
-
end
|
401
|
-
|
402
410
|
#-----------------------------------------------------------------------#
|
403
411
|
|
404
412
|
# @!group Target configuration
|
405
|
-
# These settings are used to control the
|
413
|
+
# These settings are used to control the CocoaPods generated project.
|
406
414
|
#
|
407
415
|
# This starts out simply with stating what `platform` you are working
|
408
416
|
# on. `xcodeproj` allows you to state specifically which project to
|
@@ -470,27 +478,39 @@ module Pod
|
|
470
478
|
#
|
471
479
|
# # This Target can be found in a Xcode project called `FastGPS`
|
472
480
|
# target "MyGPSApp" do
|
473
|
-
#
|
481
|
+
# project 'FastGPS'
|
474
482
|
# ...
|
475
483
|
# end
|
476
484
|
#
|
477
485
|
# # Same Podfile, multiple Xcodeprojects
|
478
486
|
# target "MyNotesApp" do
|
479
|
-
#
|
487
|
+
# project 'FastNotes'
|
480
488
|
# ...
|
481
489
|
# end
|
482
490
|
#
|
483
491
|
# @example Using custom build configurations
|
484
492
|
#
|
485
|
-
#
|
493
|
+
# project 'TestProject', 'Mac App Store' => :release, 'Test' => :debug
|
486
494
|
#
|
487
495
|
# @return [void]
|
488
496
|
#
|
489
|
-
def
|
497
|
+
def project(path, build_configurations = {})
|
490
498
|
current_target_definition.user_project_path = path
|
491
499
|
current_target_definition.build_configurations = build_configurations
|
492
500
|
end
|
493
501
|
|
502
|
+
# @!visibility private
|
503
|
+
#
|
504
|
+
# @deprecated #{xcodeproj} was renamed to #{project}.
|
505
|
+
#
|
506
|
+
# TODO: This method can be deleted once people have migrated to this 1.0
|
507
|
+
# DSL.
|
508
|
+
#
|
509
|
+
def xcodeproj(*args)
|
510
|
+
CoreUI.warn 'xcodeproj was renamed to `project`. Please use that from now on.'
|
511
|
+
project(*args)
|
512
|
+
end
|
513
|
+
|
494
514
|
# @!visibility private
|
495
515
|
#
|
496
516
|
# @deprecated linking a single target with multiple Xcode targets is no
|
@@ -516,6 +536,11 @@ module Pod
|
|
516
536
|
#
|
517
537
|
# pod 'SSZipArchive', :inhibit_warnings => true
|
518
538
|
#
|
539
|
+
# Additionally, when you use `inhibit_all_warnings!` attribute,
|
540
|
+
# you can exclude a particular Pod from being inhibited using the following:
|
541
|
+
#
|
542
|
+
# pod 'SSZipArchive', :inhibit_warnings => false
|
543
|
+
#
|
519
544
|
def inhibit_all_warnings!
|
520
545
|
current_target_definition.inhibit_all_warnings = true
|
521
546
|
end
|
@@ -284,7 +284,9 @@ module Pod
|
|
284
284
|
# return true for any asked pod.
|
285
285
|
#
|
286
286
|
def inhibits_warnings_for_pod?(pod_name)
|
287
|
-
if
|
287
|
+
if Array(inhibit_warnings_hash['not_for_pods']).include?(pod_name)
|
288
|
+
false
|
289
|
+
elsif inhibit_warnings_hash['all']
|
288
290
|
true
|
289
291
|
elsif !root? && parent.inhibits_warnings_for_pod?(pod_name)
|
290
292
|
true
|
@@ -307,14 +309,27 @@ module Pod
|
|
307
309
|
|
308
310
|
# Inhibits warnings for a specific pod during compilation.
|
309
311
|
#
|
310
|
-
# @param [String]
|
311
|
-
#
|
312
|
+
# @param [String] pod_name
|
313
|
+
# Name of the pod for which the warnings will be inhibited or not.
|
314
|
+
#
|
315
|
+
# @param [Bool] should_inhibit
|
316
|
+
# Whether the warnings should be inhibited or not for given pod.
|
312
317
|
#
|
313
318
|
# @return [void]
|
314
319
|
#
|
315
|
-
def
|
316
|
-
|
317
|
-
|
320
|
+
def set_inhibit_warnings_for_pod(pod_name, should_inhibit)
|
321
|
+
hash_key = case should_inhibit
|
322
|
+
when true
|
323
|
+
'for_pods'
|
324
|
+
when false
|
325
|
+
'not_for_pods'
|
326
|
+
when nil
|
327
|
+
return
|
328
|
+
else
|
329
|
+
raise ArgumentError, "Got `#{should_inhibit.inspect}`, should be a boolean"
|
330
|
+
end
|
331
|
+
raw_inhibit_warnings_hash[hash_key] ||= []
|
332
|
+
raw_inhibit_warnings_hash[hash_key] << pod_name
|
318
333
|
end
|
319
334
|
|
320
335
|
#--------------------------------------#
|
@@ -622,7 +637,8 @@ module Pod
|
|
622
637
|
unless HASH_KEYS.include?(key)
|
623
638
|
raise StandardError, "Unsupported hash key `#{key}`"
|
624
639
|
end
|
625
|
-
internal_hash[key]
|
640
|
+
internal_hash[key] = base_value if internal_hash[key].nil?
|
641
|
+
internal_hash[key]
|
626
642
|
end
|
627
643
|
|
628
644
|
def raw_inhibit_warnings_hash
|
@@ -633,14 +649,28 @@ module Pod
|
|
633
649
|
# Returns the inhibit_warnings hash pre-populated with default values.
|
634
650
|
#
|
635
651
|
# @return [Hash<String, Array>] Hash with :all key for inhibiting all
|
636
|
-
# warnings,
|
652
|
+
# warnings, :for_pods key for inhibiting warnings per Pod,
|
653
|
+
# and :not_for_pods key for not inhibiting warnings per Pod.
|
637
654
|
#
|
638
655
|
def inhibit_warnings_hash
|
639
656
|
inhibit_hash = raw_inhibit_warnings_hash
|
640
657
|
if exclusive?
|
641
658
|
inhibit_hash
|
642
659
|
else
|
643
|
-
parent.send(:inhibit_warnings_hash).
|
660
|
+
parent_hash = parent.send(:inhibit_warnings_hash).dup
|
661
|
+
if parent_hash['not_for_pods']
|
662
|
+
# Remove pods that are set to not inhibit inside parent if they are set to inhibit inside current target.
|
663
|
+
parent_hash['not_for_pods'] -= Array(inhibit_hash['for_pods'])
|
664
|
+
end
|
665
|
+
if parent_hash['for_pods']
|
666
|
+
# Remove pods that are set to inhibit inside parent if they are set to not inhibit inside current target.
|
667
|
+
parent_hash['for_pods'] -= Array(inhibit_hash['for_pods'])
|
668
|
+
end
|
669
|
+
if inhibit_hash['all']
|
670
|
+
# Clean pods that are set to not inhibit inside parent if inhibit_all_warnings! was set.
|
671
|
+
parent_hash['not_for_pods'] = nil
|
672
|
+
end
|
673
|
+
parent_hash.merge(inhibit_hash) { |_, l, r| (l + r).uniq }
|
644
674
|
end
|
645
675
|
end
|
646
676
|
|
@@ -747,7 +777,8 @@ module Pod
|
|
747
777
|
return requirements unless options.is_a?(Hash)
|
748
778
|
|
749
779
|
should_inhibit = options.delete(:inhibit_warnings)
|
750
|
-
|
780
|
+
pod_name = Specification.root_name(name)
|
781
|
+
set_inhibit_warnings_for_pod(pod_name, should_inhibit)
|
751
782
|
|
752
783
|
requirements.pop if options.empty?
|
753
784
|
end
|
@@ -292,7 +292,7 @@ module Pod
|
|
292
292
|
# rubocop:enable Eval
|
293
293
|
rescue Exception => e
|
294
294
|
message = "Invalid `#{path.basename}` file: #{e.message}"
|
295
|
-
raise DSLError.new(message, path, e
|
295
|
+
raise DSLError.new(message, path, e, contents)
|
296
296
|
end
|
297
297
|
# rubocop:enable Lint/RescueException
|
298
298
|
end
|
@@ -618,6 +618,6 @@ module Pod
|
|
618
618
|
rescue Exception => e
|
619
619
|
# rubocop:enable Lint/RescueException
|
620
620
|
message = "Invalid `#{path.basename}` file: #{e.message}"
|
621
|
-
raise DSLError.new(message, path, e
|
621
|
+
raise DSLError.new(message, path, e, string)
|
622
622
|
end
|
623
623
|
end
|
@@ -17,19 +17,19 @@ module Pod
|
|
17
17
|
#
|
18
18
|
attr_reader :dsl_path
|
19
19
|
|
20
|
-
# @return [Exception] the
|
20
|
+
# @return [Exception] the exception raised by the
|
21
21
|
# evaluation of the dsl file.
|
22
22
|
#
|
23
|
-
attr_reader :
|
23
|
+
attr_reader :underlying_exception
|
24
24
|
|
25
|
-
# @param [Exception]
|
25
|
+
# @param [Exception] underlying_exception @see underlying_exception
|
26
26
|
# @param [String] dsl_path @see dsl_path
|
27
27
|
#
|
28
|
-
def initialize(description, dsl_path,
|
29
|
-
@description
|
30
|
-
@dsl_path
|
31
|
-
@
|
32
|
-
@contents
|
28
|
+
def initialize(description, dsl_path, underlying_exception, contents = nil)
|
29
|
+
@description = description
|
30
|
+
@dsl_path = dsl_path
|
31
|
+
@underlying_exception = underlying_exception
|
32
|
+
@contents = contents
|
33
33
|
end
|
34
34
|
|
35
35
|
# @return [String] the contents of the DSL that cause the exception to
|
@@ -63,11 +63,10 @@ module Pod
|
|
63
63
|
@message ||= begin
|
64
64
|
trace_line, description = parse_line_number_from_description
|
65
65
|
|
66
|
-
m = "\n[!] "
|
67
|
-
m << description
|
68
|
-
m << ". Updating CocoaPods might fix the issue.\n"
|
66
|
+
m = "\n[!] #{description}.\n"
|
69
67
|
m = m.red if m.respond_to?(:red)
|
70
68
|
|
69
|
+
backtrace = underlying_exception.backtrace
|
71
70
|
return m unless backtrace && dsl_path && contents
|
72
71
|
|
73
72
|
trace_line = backtrace.find { |l| l.include?(dsl_path.to_s) } || trace_line
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.beta.
|
4
|
+
version: 1.0.0.beta.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eloy Duran
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-02-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
137
|
version: '0'
|
138
138
|
requirements: []
|
139
139
|
rubyforge_project:
|
140
|
-
rubygems_version: 2.5.
|
140
|
+
rubygems_version: 2.5.2
|
141
141
|
signing_key:
|
142
142
|
specification_version: 3
|
143
143
|
summary: The models of CocoaPods
|