cocoapods-core 1.5.0 → 1.5.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.
- checksums.yaml +4 -4
- data/lib/cocoapods-core/gem_version.rb +1 -1
- data/lib/cocoapods-core/lockfile.rb +18 -7
- data/lib/cocoapods-core/master_source.rb +1 -0
- data/lib/cocoapods-core/podfile.rb +5 -0
- data/lib/cocoapods-core/podfile/target_definition.rb +9 -1
- data/lib/cocoapods-core/source.rb +1 -1
- data/lib/cocoapods-core/source/manager.rb +4 -4
- data/lib/cocoapods-core/specification.rb +10 -0
- data/lib/cocoapods-core/specification/dsl.rb +60 -54
- data/lib/cocoapods-core/yaml_helper.rb +4 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ad2c3c33b4ea9899853422195b23e20e9b86acfe646575db6f255fbfc1db989
|
4
|
+
data.tar.gz: 326792eaebedfcb50b51c2f23770e878e5050cc93f63e2e7fd3dde7cdbf4061c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95ea884f860997afdf5532d3641c6eeb3a4048dfca3ab6b0e7416f5f79332bb61fa8b7c2e8b8c9367ca05c00a99183370af2383c0285b9e751bf338e20e68bb2
|
7
|
+
data.tar.gz: 2920b288267a62a81d1cbb73c14129c4d847b3805202e71e70a306bbae86009b31a01dc6d5f82d0da12a2b607b563c306569785f7b7c48b8d51649204854d98d
|
@@ -290,13 +290,23 @@ module Pod
|
|
290
290
|
result = {}
|
291
291
|
[:added, :changed, :removed, :unchanged].each { |k| result[k] = [] }
|
292
292
|
|
293
|
-
installed_deps =
|
294
|
-
|
295
|
-
|
296
|
-
|
293
|
+
installed_deps = {}
|
294
|
+
dependencies.each do |dep|
|
295
|
+
name = dep.root_name
|
296
|
+
installed_deps[name] ||= dependencies_to_lock_pod_named(name)
|
297
|
+
end
|
298
|
+
|
299
|
+
installed_deps = installed_deps.values.flatten(1).group_by(&:name)
|
300
|
+
|
301
|
+
podfile_dependencies = podfile.dependencies
|
302
|
+
podfile_dependencies_by_name = podfile_dependencies.group_by(&:name)
|
303
|
+
|
304
|
+
all_dep_names = (dependencies + podfile_dependencies).map(&:name).uniq
|
297
305
|
all_dep_names.each do |name|
|
298
|
-
installed_dep
|
299
|
-
|
306
|
+
installed_dep = installed_deps[name]
|
307
|
+
installed_dep &&= installed_dep.first
|
308
|
+
podfile_dep = podfile_dependencies_by_name[name]
|
309
|
+
podfile_dep &&= podfile_dep.first
|
300
310
|
|
301
311
|
if installed_dep.nil? then key = :added
|
302
312
|
elsif podfile_dep.nil? then key = :removed
|
@@ -477,13 +487,14 @@ module Pod
|
|
477
487
|
# Generates the hash of spec repo sources used in the Podfile.
|
478
488
|
#
|
479
489
|
# @example Output
|
480
|
-
# { "https://github.com/
|
490
|
+
# { "https://github.com/cocoapods/cocoapods.git" => ["Alamofire", "Moya"] }
|
481
491
|
#
|
482
492
|
def generate_spec_repos(spec_repos)
|
483
493
|
Hash[spec_repos.map do |source, specs|
|
484
494
|
next unless source
|
485
495
|
next if specs.empty?
|
486
496
|
key = source.url || source.name
|
497
|
+
key = key.downcase if source.name == Pod::MasterSource::MASTER_REPO_NAME
|
487
498
|
value = specs.map { |s| s.root.name }.uniq
|
488
499
|
[key, value]
|
489
500
|
end.compact]
|
@@ -231,6 +231,11 @@ module Pod
|
|
231
231
|
end
|
232
232
|
end
|
233
233
|
|
234
|
+
def ==(other)
|
235
|
+
self.class == other.class &&
|
236
|
+
root_target_definitions == other.root_target_definitions
|
237
|
+
end
|
238
|
+
|
234
239
|
# @!group Class methods
|
235
240
|
#-------------------------------------------------------------------------#
|
236
241
|
|
@@ -748,6 +748,12 @@ module Pod
|
|
748
748
|
hash
|
749
749
|
end
|
750
750
|
|
751
|
+
def ==(other)
|
752
|
+
self.class == other.class &&
|
753
|
+
internal_hash == other.internal_hash &&
|
754
|
+
children == other.children
|
755
|
+
end
|
756
|
+
|
751
757
|
# Configures a new target definition from the given hash.
|
752
758
|
#
|
753
759
|
# @param [Hash] the hash which contains the information of the
|
@@ -767,7 +773,7 @@ module Pod
|
|
767
773
|
|
768
774
|
#-----------------------------------------------------------------------#
|
769
775
|
|
770
|
-
|
776
|
+
protected
|
771
777
|
|
772
778
|
# @!group Private helpers
|
773
779
|
|
@@ -780,6 +786,8 @@ module Pod
|
|
780
786
|
#
|
781
787
|
attr_accessor :internal_hash
|
782
788
|
|
789
|
+
private
|
790
|
+
|
783
791
|
# Set a value in the internal hash of the target definition for the given
|
784
792
|
# key.
|
785
793
|
#
|
@@ -435,7 +435,7 @@ module Pod
|
|
435
435
|
|
436
436
|
def git_tracking_branch
|
437
437
|
path = repo.join('.git', 'cocoapods_branch')
|
438
|
-
path.file? ? path.read.strip :
|
438
|
+
path.file? ? path.read.strip : Pod::MasterSource::MASTER_REPO_NAME
|
439
439
|
end
|
440
440
|
|
441
441
|
def diff_until_commit_hash(commit_hash)
|
@@ -64,7 +64,7 @@ module Pod
|
|
64
64
|
# @return [Array<Source>] The CocoaPods Master Repo source.
|
65
65
|
#
|
66
66
|
def master
|
67
|
-
sources([
|
67
|
+
sources([Pod::MasterSource::MASTER_REPO_NAME]).select { |s| s.repo.directory? }
|
68
68
|
end
|
69
69
|
|
70
70
|
# @!group Master repo
|
@@ -72,7 +72,7 @@ module Pod
|
|
72
72
|
# @return [Pathname] The path of the master repo.
|
73
73
|
#
|
74
74
|
def master_repo_dir
|
75
|
-
source_dir(
|
75
|
+
source_dir(Pod::MasterSource::MASTER_REPO_NAME)
|
76
76
|
end
|
77
77
|
|
78
78
|
# @return [Bool] Checks if the master repo is usable.
|
@@ -283,7 +283,7 @@ module Pod
|
|
283
283
|
#
|
284
284
|
def source_from_path(path)
|
285
285
|
@sources_by_path ||= Hash.new do |hash, key|
|
286
|
-
hash[key] = if key.basename.to_s ==
|
286
|
+
hash[key] = if key.basename.to_s == Pod::MasterSource::MASTER_REPO_NAME
|
287
287
|
MasterSource.new(key)
|
288
288
|
else
|
289
289
|
Source.new(key)
|
@@ -386,7 +386,7 @@ module Pod
|
|
386
386
|
|
387
387
|
case url.to_s.downcase
|
388
388
|
when %r{github.com[:/]+cocoapods/specs}
|
389
|
-
base =
|
389
|
+
base = Pod::MasterSource::MASTER_REPO_NAME
|
390
390
|
when %r{github.com[:/]+(.+)/(.+)}
|
391
391
|
base = Regexp.last_match[1]
|
392
392
|
when %r{^\S+@(\S+)[:/]+(.+)$}
|
@@ -50,6 +50,16 @@ module Pod
|
|
50
50
|
yield self if block_given?
|
51
51
|
end
|
52
52
|
|
53
|
+
def initialize_copy(other)
|
54
|
+
super
|
55
|
+
|
56
|
+
@subspecs = @subspecs.map do |subspec|
|
57
|
+
subspec = subspec.dup
|
58
|
+
subspec.instance_variable_set :@parent, self
|
59
|
+
subspec
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
53
63
|
# @return [Hash] the hash that stores the information of the attributes of
|
54
64
|
# the specification.
|
55
65
|
#
|
@@ -666,6 +666,12 @@ module Pod
|
|
666
666
|
attributes_hash['dependencies'][name] = version_requirements
|
667
667
|
end
|
668
668
|
|
669
|
+
def dependency=(args)
|
670
|
+
joined = args.join('\', \'')
|
671
|
+
arguments = "\'#{joined}\'"
|
672
|
+
raise Informative, "Cannot assign value to `dependency`. Did you mean: `dependency #{arguments}`?"
|
673
|
+
end
|
674
|
+
|
669
675
|
#------------------#
|
670
676
|
|
671
677
|
# @!method requires_arc=(flag)
|
@@ -950,6 +956,55 @@ module Pod
|
|
950
956
|
attribute :header_mappings_dir,
|
951
957
|
:inherited => true
|
952
958
|
|
959
|
+
#------------------#
|
960
|
+
|
961
|
+
SCRIPT_PHASE_REQUIRED_KEYS = [:name, :script].freeze
|
962
|
+
|
963
|
+
SCRIPT_PHASE_OPTIONAL_KEYS = [:shell_path, :input_files, :output_files, :show_env_vars_in_log, :execution_position].freeze
|
964
|
+
|
965
|
+
EXECUTION_POSITION_KEYS = [:before_compile, :after_compile, :any].freeze
|
966
|
+
|
967
|
+
ALL_SCRIPT_PHASE_KEYS = (SCRIPT_PHASE_REQUIRED_KEYS + SCRIPT_PHASE_OPTIONAL_KEYS).freeze
|
968
|
+
|
969
|
+
# @!method script_phases=(*script_phases)
|
970
|
+
#
|
971
|
+
# This attribute allows to define a script phase to execute as part of compilation of the Pod.
|
972
|
+
# Unlike a prepare command, script phases execute as part of `xcodebuild` they can also utilize all environment
|
973
|
+
# variables that are set during compilation.
|
974
|
+
#
|
975
|
+
# A Pod can provide multiple script phases to execute and they will be added in the order they were
|
976
|
+
# declared and after taking into consideration their execution position setting.
|
977
|
+
#
|
978
|
+
# **Note** In order to provide visibility and awareness of the contents of all script phases,
|
979
|
+
# a warning will be presented to the user upon installing your pod if it includes any script phases.
|
980
|
+
#
|
981
|
+
# @example
|
982
|
+
#
|
983
|
+
# spec.script_phase = { :name => 'Hello World', :script => 'echo "Hello World"' }
|
984
|
+
#
|
985
|
+
# @example
|
986
|
+
#
|
987
|
+
# spec.script_phase = { :name => 'Hello World', :script => 'echo "Hello World"', :execution_position => :before_compile }
|
988
|
+
#
|
989
|
+
# @example
|
990
|
+
#
|
991
|
+
# spec.script_phase = { :name => 'Hello World', :script => 'puts "Hello World"', :shell_path => '/usr/bin/ruby' } }
|
992
|
+
#
|
993
|
+
# @example
|
994
|
+
#
|
995
|
+
# spec.script_phases = [
|
996
|
+
# { :name => 'Hello World', :script => 'echo "Hello World"' },
|
997
|
+
# { :name => 'Hello Ruby World', :script => 'puts "Hello World"', :shell_path => '/usr/bin/ruby' } },
|
998
|
+
# ]
|
999
|
+
#
|
1000
|
+
# @param [Array<Hash{Symbol=>String}>] script_phases
|
1001
|
+
# An array of hashes where each hash represents a single script phase.
|
1002
|
+
#
|
1003
|
+
attribute :script_phases,
|
1004
|
+
:types => [Hash],
|
1005
|
+
:container => Array,
|
1006
|
+
:singularize => true
|
1007
|
+
|
953
1008
|
#-----------------------------------------------------------------------#
|
954
1009
|
|
955
1010
|
# @!group File patterns
|
@@ -1157,9 +1212,9 @@ module Pod
|
|
1157
1212
|
# hash where the keys represent the name of the bundles and the values
|
1158
1213
|
# the file patterns that they should include.
|
1159
1214
|
#
|
1160
|
-
#
|
1161
|
-
# bundles as there can be name
|
1162
|
-
# attribute.
|
1215
|
+
# For building the Pod as a static library, we strongly **recommend**
|
1216
|
+
# library developers to adopt resource bundles as there can be name
|
1217
|
+
# collisions using the resources attribute.
|
1163
1218
|
#
|
1164
1219
|
# The names of the bundles should at least include the name of the Pod
|
1165
1220
|
# to minimise the chance of name collisions.
|
@@ -1194,8 +1249,8 @@ module Pod
|
|
1194
1249
|
#
|
1195
1250
|
# A list of resources that should be copied into the target bundle.
|
1196
1251
|
#
|
1197
|
-
#
|
1198
|
-
# bundles](http://guides.cocoapods.org/syntax/podspec.html#resource_bundles)
|
1252
|
+
# For building the Pod as a static library, we strongly **recommend**
|
1253
|
+
# library developers to adopt [resource bundles](http://guides.cocoapods.org/syntax/podspec.html#resource_bundles)
|
1199
1254
|
# as there can be name collisions using the resources attribute.
|
1200
1255
|
# Moreover, resources specified with this attribute are copied
|
1201
1256
|
# directly to the client target and therefore they are not
|
@@ -1288,55 +1343,6 @@ module Pod
|
|
1288
1343
|
attribute :module_map,
|
1289
1344
|
:root_only => true
|
1290
1345
|
|
1291
|
-
#------------------#
|
1292
|
-
|
1293
|
-
SCRIPT_PHASE_REQUIRED_KEYS = [:name, :script].freeze
|
1294
|
-
|
1295
|
-
SCRIPT_PHASE_OPTIONAL_KEYS = [:shell_path, :input_files, :output_files, :show_env_vars_in_log, :execution_position].freeze
|
1296
|
-
|
1297
|
-
EXECUTION_POSITION_KEYS = [:before_compile, :after_compile, :any].freeze
|
1298
|
-
|
1299
|
-
ALL_SCRIPT_PHASE_KEYS = (SCRIPT_PHASE_REQUIRED_KEYS + SCRIPT_PHASE_OPTIONAL_KEYS).freeze
|
1300
|
-
|
1301
|
-
# @!method script_phases=(*script_phases)
|
1302
|
-
#
|
1303
|
-
# This attribute allows to define a script phase to execute as part of compilation of the Pod.
|
1304
|
-
# Unlike a prepare command, script phases execute as part of `xcodebuild` they can also utilize all environment
|
1305
|
-
# variables that are set during compilation.
|
1306
|
-
#
|
1307
|
-
# A Pod can provide multiple script phases to execute and they will be added in the order they were
|
1308
|
-
# declared and after taking into consideration their execution position setting.
|
1309
|
-
#
|
1310
|
-
# **Note** In order to provide visibility and awareness of the contents of all script phases,
|
1311
|
-
# a warning will be presented to the user upon installing your pod if it includes any script phases.
|
1312
|
-
#
|
1313
|
-
# @example
|
1314
|
-
#
|
1315
|
-
# spec.script_phase = { :name => 'Hello World', :script => 'echo "Hello World"' }
|
1316
|
-
#
|
1317
|
-
# @example
|
1318
|
-
#
|
1319
|
-
# spec.script_phase = { :name => 'Hello World', :script => 'echo "Hello World"', :execution_position => :before_compile }
|
1320
|
-
#
|
1321
|
-
# @example
|
1322
|
-
#
|
1323
|
-
# spec.script_phase = { :name => 'Hello World', :script => 'puts "Hello World"', :shell_path => '/usr/bin/ruby' } }
|
1324
|
-
#
|
1325
|
-
# @example
|
1326
|
-
#
|
1327
|
-
# spec.script_phases = [
|
1328
|
-
# { :name => 'Hello World', :script => 'echo "Hello World"' },
|
1329
|
-
# { :name => 'Hello Ruby World', :script => 'puts "Hello World"', :shell_path => '/usr/bin/ruby' } },
|
1330
|
-
# ]
|
1331
|
-
#
|
1332
|
-
# @param [Array<Hash{Symbol=>String}>] script_phases
|
1333
|
-
# An array of hashes where each hash represents a single script phase.
|
1334
|
-
#
|
1335
|
-
attribute :script_phases,
|
1336
|
-
:types => [Hash],
|
1337
|
-
:container => Array,
|
1338
|
-
:singularize => true
|
1339
|
-
|
1340
1346
|
#-----------------------------------------------------------------------#
|
1341
1347
|
|
1342
1348
|
# @!group Subspecs
|
@@ -254,11 +254,9 @@ module Pod
|
|
254
254
|
# @return [Array] The sorted array.
|
255
255
|
#
|
256
256
|
def sorted_array(array)
|
257
|
-
array.
|
258
|
-
|
259
|
-
|
260
|
-
x_string <=> y_string
|
261
|
-
end
|
257
|
+
array.each_with_index.sort_by do |element, index|
|
258
|
+
[sorting_string(element), index]
|
259
|
+
end.map(&:first)
|
262
260
|
end
|
263
261
|
|
264
262
|
# Returns the string representation of a value useful for sorting.
|
@@ -275,7 +273,7 @@ module Pod
|
|
275
273
|
when Symbol then sorting_string(value.to_s)
|
276
274
|
when Array then sorting_string(value.first)
|
277
275
|
when Hash then value.keys.map { |key| key.to_s.downcase }.sort.first
|
278
|
-
else raise "Cannot sort #{value.inspect}"
|
276
|
+
else raise ArgumentError, "Cannot sort #{value.inspect}"
|
279
277
|
end
|
280
278
|
end
|
281
279
|
|
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.5.
|
4
|
+
version: 1.5.1
|
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: 2018-
|
12
|
+
date: 2018-05-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|