cocoapods-core 1.4.0.beta.1 → 1.4.0.beta.2
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/podfile/dsl.rb +4 -0
- data/lib/cocoapods-core/podfile/target_definition.rb +10 -11
- data/lib/cocoapods-core/source.rb +1 -1
- data/lib/cocoapods-core/specification.rb +43 -12
- data/lib/cocoapods-core/specification/consumer.rb +33 -1
- data/lib/cocoapods-core/specification/dsl.rb +65 -5
- data/lib/cocoapods-core/specification/linter.rb +21 -0
- data/lib/cocoapods-core/specification/root_attribute_accessors.rb +2 -23
- data/lib/cocoapods-core/specification/set.rb +17 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04b207ad7a8be3b249df95233970fce16e662b04
|
4
|
+
data.tar.gz: 131a182b0be16d16ece4207bced166973a85ba78
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2d83bbe5b1d2816b492ed9a06721824ef2b6e4838a655f1ea30fd7a5732cdf333a47474ed8160dfe8d959f5291384392e3b935d2c71c6c8c467b24a89889ddb
|
7
|
+
data.tar.gz: c383a7b24f524330eded861d3d3309e144a899fee2c034b6a868df4b14eb0434186b1f7805c404bcbdcfe694e40a27772a08be777fc0f039c5e4c663e8c59474
|
@@ -368,6 +368,10 @@ module Pod
|
|
368
368
|
# @option options [Boolean] :show_env_vars_in_log
|
369
369
|
# whether this script phase should output the environment variables during execution.
|
370
370
|
#
|
371
|
+
# @option options [Symbol] :execution_position
|
372
|
+
# specifies the position of which this script phase should be executed. The currently supported values are:
|
373
|
+
# `:before_compile`, `:after_compile` and `:any` which is the default.
|
374
|
+
#
|
371
375
|
# @return [void]
|
372
376
|
#
|
373
377
|
def script_phase(options)
|
@@ -585,29 +585,23 @@ module Pod
|
|
585
585
|
|
586
586
|
#--------------------------------------#
|
587
587
|
|
588
|
-
SCRIPT_PHASE_REQUIRED_KEYS = [:name, :script].freeze
|
589
|
-
|
590
|
-
SCRIPT_PHASE_OPTIONAL_KEYS = [:shell_path, :input_files, :output_files, :show_env_vars_in_log].freeze
|
591
|
-
|
592
|
-
ALL_SCRIPT_PHASE_KEYS = (SCRIPT_PHASE_REQUIRED_KEYS + SCRIPT_PHASE_OPTIONAL_KEYS).freeze
|
593
|
-
|
594
588
|
# Stores the script phase to add for this target definition.
|
595
589
|
#
|
596
590
|
# @param [Hash] options
|
597
591
|
# The options to use for this script phase. The required keys
|
598
592
|
# are: `:name`, `:script`, while the optional keys are:
|
599
|
-
# `:shell_path`, `:input_files`, `:output_files` and `:
|
593
|
+
# `:shell_path`, `:input_files`, `:output_files`, `:show_env_vars_in_log` and `:execution_position`.
|
600
594
|
#
|
601
595
|
# @return [void]
|
602
596
|
#
|
603
597
|
def store_script_phase(options)
|
604
598
|
option_keys = options.keys
|
605
|
-
unrecognized_keys = option_keys - ALL_SCRIPT_PHASE_KEYS
|
599
|
+
unrecognized_keys = option_keys - Specification::ALL_SCRIPT_PHASE_KEYS
|
606
600
|
unless unrecognized_keys.empty?
|
607
|
-
raise StandardError, "Unrecognized options `#{unrecognized_keys}` in shell script `#{options}` within `#{name}` target. " \
|
608
|
-
"Available options are `#{ALL_SCRIPT_PHASE_KEYS}`."
|
601
|
+
raise StandardError, "Unrecognized options `#{unrecognized_keys}` in shell script `#{options[:name]}` within `#{name}` target. " \
|
602
|
+
"Available options are `#{Specification::ALL_SCRIPT_PHASE_KEYS}`."
|
609
603
|
end
|
610
|
-
missing_required_keys = SCRIPT_PHASE_REQUIRED_KEYS - option_keys
|
604
|
+
missing_required_keys = Specification::SCRIPT_PHASE_REQUIRED_KEYS - option_keys
|
611
605
|
unless missing_required_keys.empty?
|
612
606
|
raise StandardError, "Missing required shell script phase options `#{missing_required_keys.join(', ')}`"
|
613
607
|
end
|
@@ -615,6 +609,11 @@ module Pod
|
|
615
609
|
if script_phases_hash.map { |script_phase_options| script_phase_options[:name] }.include?(options[:name])
|
616
610
|
raise StandardError, "Script phase with name `#{options[:name]}` name already present for target `#{name}`."
|
617
611
|
end
|
612
|
+
options[:execution_position] = :any unless options.key?(:execution_position)
|
613
|
+
unless Specification::EXECUTION_POSITION_KEYS.include?(options[:execution_position])
|
614
|
+
raise StandardError, "Invalid execution position value `#{options[:execution_position]}` in shell script `#{options[:name]}` within `#{name}` target. " \
|
615
|
+
"Available options are `#{Specification::EXECUTION_POSITION_KEYS}`."
|
616
|
+
end
|
618
617
|
script_phases_hash << options
|
619
618
|
end
|
620
619
|
|
@@ -346,6 +346,27 @@ module Pod
|
|
346
346
|
@consumers[platform] ||= Consumer.new(self, platform)
|
347
347
|
end
|
348
348
|
|
349
|
+
# @return [Bool, String] The prefix_header_file value.
|
350
|
+
#
|
351
|
+
def prefix_header_file
|
352
|
+
attributes_hash['prefix_header_file']
|
353
|
+
end
|
354
|
+
|
355
|
+
# @return [Array<Hash{Symbol=>String}>] The script_phases value.
|
356
|
+
#
|
357
|
+
def script_phases
|
358
|
+
script_phases = attributes_hash['script_phases'] || []
|
359
|
+
script_phases.map do |script_phase|
|
360
|
+
phase = Specification.convert_keys_to_symbol(script_phase)
|
361
|
+
phase[:execution_position] = if phase.key?(:execution_position)
|
362
|
+
phase[:execution_position].to_sym
|
363
|
+
else
|
364
|
+
:any
|
365
|
+
end
|
366
|
+
phase
|
367
|
+
end
|
368
|
+
end
|
369
|
+
|
349
370
|
#-------------------------------------------------------------------------#
|
350
371
|
|
351
372
|
public
|
@@ -370,11 +391,6 @@ module Pod
|
|
370
391
|
#
|
371
392
|
# @overload supported_on_platform?(symbolic_name, deployment_target)
|
372
393
|
#
|
373
|
-
# @param [Symbol] symbolic_name
|
374
|
-
# the name of the platform which is checked for support.
|
375
|
-
#
|
376
|
-
# @param [String] deployment_target
|
377
|
-
# the deployment target which is checked for support.
|
378
394
|
#
|
379
395
|
def supported_on_platform?(*platform)
|
380
396
|
platform = Platform.new(*platform)
|
@@ -456,7 +472,7 @@ module Pod
|
|
456
472
|
# @param [Object] value
|
457
473
|
# the value to store.
|
458
474
|
#
|
459
|
-
# @param [Symbol]
|
475
|
+
# @param [Symbol] platform_name
|
460
476
|
# If provided the attribute is stored only for the given platform.
|
461
477
|
#
|
462
478
|
# @note If the provides value is Hash the keys are converted to a string.
|
@@ -465,7 +481,7 @@ module Pod
|
|
465
481
|
#
|
466
482
|
def store_attribute(name, value, platform_name = nil)
|
467
483
|
name = name.to_s
|
468
|
-
value = convert_keys_to_string(value) if value.is_a?(Hash)
|
484
|
+
value = Specification.convert_keys_to_string(value) if value.is_a?(Hash)
|
469
485
|
value = value.strip_heredoc.strip if value.respond_to?(:strip_heredoc)
|
470
486
|
if platform_name
|
471
487
|
platform_name = platform_name.to_s
|
@@ -489,8 +505,6 @@ module Pod
|
|
489
505
|
end
|
490
506
|
end
|
491
507
|
|
492
|
-
private
|
493
|
-
|
494
508
|
# Converts the keys of the given hash to a string.
|
495
509
|
#
|
496
510
|
# @param [Object] value
|
@@ -498,16 +512,33 @@ module Pod
|
|
498
512
|
#
|
499
513
|
# @return [Hash] the hash with the strings instead of the keys.
|
500
514
|
#
|
501
|
-
def convert_keys_to_string(value)
|
515
|
+
def self.convert_keys_to_string(value)
|
502
516
|
return unless value
|
503
517
|
result = {}
|
504
518
|
value.each do |key, subvalue|
|
505
|
-
subvalue = convert_keys_to_string(subvalue) if subvalue.is_a?(Hash)
|
519
|
+
subvalue = Specification.convert_keys_to_string(subvalue) if subvalue.is_a?(Hash)
|
506
520
|
result[key.to_s] = subvalue
|
507
521
|
end
|
508
522
|
result
|
509
523
|
end
|
510
524
|
|
525
|
+
# Converts the keys of the given hash to a string.
|
526
|
+
#
|
527
|
+
# @param [Object] value
|
528
|
+
# the value that needs to be stripped from the Symbols.
|
529
|
+
#
|
530
|
+
# @return [Hash] the hash with the strings instead of the keys.
|
531
|
+
#
|
532
|
+
def self.convert_keys_to_symbol(value)
|
533
|
+
return unless value
|
534
|
+
result = {}
|
535
|
+
value.each do |key, subvalue|
|
536
|
+
subvalue = Specification.convert_keys_to_symbol(subvalue) if subvalue.is_a?(Hash)
|
537
|
+
result[key.to_sym] = subvalue
|
538
|
+
end
|
539
|
+
result
|
540
|
+
end
|
541
|
+
|
511
542
|
#-------------------------------------------------------------------------#
|
512
543
|
|
513
544
|
public
|
@@ -649,7 +680,7 @@ module Pod
|
|
649
680
|
def validate_cocoapods_version
|
650
681
|
unless cocoapods_version.satisfied_by?(Version.create(CORE_VERSION))
|
651
682
|
raise Informative, "`#{name}` requires CocoaPods version `#{cocoapods_version}`, " \
|
652
|
-
"which is not
|
683
|
+
"which is not satisfied by your current version, `#{CORE_VERSION}`."
|
653
684
|
end
|
654
685
|
end
|
655
686
|
end
|
@@ -179,6 +179,11 @@ module Pod
|
|
179
179
|
#
|
180
180
|
spec_attr_accessor :resource_bundles
|
181
181
|
|
182
|
+
# @return [Array<Hash{Symbol=>String}>] An array of hashes where each hash
|
183
|
+
# represents a script phase.
|
184
|
+
#
|
185
|
+
spec_attr_accessor :script_phases
|
186
|
+
|
182
187
|
# @return [Array<String>] A hash where the key represents the
|
183
188
|
# paths of the resources to copy and the values the paths of
|
184
189
|
# the resources that should be copied.
|
@@ -324,7 +329,11 @@ module Pod
|
|
324
329
|
#
|
325
330
|
def prepare_value(attr, value)
|
326
331
|
if attr.container == Array
|
327
|
-
value =
|
332
|
+
value = if value.is_a?(Hash)
|
333
|
+
[value]
|
334
|
+
else
|
335
|
+
[*value].compact
|
336
|
+
end
|
328
337
|
end
|
329
338
|
|
330
339
|
hook_name = prepare_hook_name(attr)
|
@@ -362,6 +371,29 @@ module Pod
|
|
362
371
|
end
|
363
372
|
end
|
364
373
|
|
374
|
+
# Converts the array of hashes (script phases) where keys are strings into symbols.
|
375
|
+
#
|
376
|
+
# @param [Array<Hash{String=>String}>] value.
|
377
|
+
# The value of the attribute as specified by the user.
|
378
|
+
#
|
379
|
+
# @return [Array<Hash{Symbol=>String}>] the script phases array with symbols for each hash instead of strings.
|
380
|
+
#
|
381
|
+
def _prepare_script_phases(value)
|
382
|
+
if value
|
383
|
+
value.map do |script_phase|
|
384
|
+
if script_phase.is_a?(Hash)
|
385
|
+
phase = Specification.convert_keys_to_symbol(script_phase)
|
386
|
+
phase[:execution_position] = if phase.key?(:execution_position)
|
387
|
+
phase[:execution_position].to_sym
|
388
|
+
else
|
389
|
+
:any
|
390
|
+
end
|
391
|
+
phase
|
392
|
+
end
|
393
|
+
end.compact
|
394
|
+
end
|
395
|
+
end
|
396
|
+
|
365
397
|
# Ensures that the file patterns of the resource bundles are contained in
|
366
398
|
# an array.
|
367
399
|
#
|
@@ -855,20 +855,31 @@ module Pod
|
|
855
855
|
#
|
856
856
|
# A path to a prefix header file to inject in the prefix header of the
|
857
857
|
# pod project.
|
858
|
+
# `false` indicates that the default CocoaPods prefix header should not
|
859
|
+
# be generated.
|
860
|
+
# `true` is the default and indicates that the default CocoaPods prefix
|
861
|
+
# header should be generated.
|
858
862
|
#
|
859
863
|
# ---
|
860
864
|
#
|
861
|
-
#
|
862
|
-
# prefix header of other libraries or of the user project.
|
865
|
+
# The file path options is __not recommended__ as Pods should not
|
866
|
+
# pollute the prefix header of other libraries or of the user project.
|
867
|
+
#
|
863
868
|
#
|
864
869
|
# @example
|
865
870
|
#
|
866
871
|
# spec.prefix_header_file = 'iphone/include/prefix.pch'
|
867
872
|
#
|
868
|
-
# @
|
869
|
-
#
|
873
|
+
# @example
|
874
|
+
#
|
875
|
+
# spec.prefix_header_file = false
|
876
|
+
#
|
877
|
+
# @param [Bool, String] path
|
878
|
+
# The path to the prefix header file or whether to disable
|
879
|
+
# prefix_header generation.
|
870
880
|
#
|
871
881
|
attribute :prefix_header_file,
|
882
|
+
:types => [TrueClass, FalseClass, String],
|
872
883
|
:inherited => true
|
873
884
|
|
874
885
|
#------------------#
|
@@ -1123,7 +1134,7 @@ module Pod
|
|
1123
1134
|
|
1124
1135
|
#------------------#
|
1125
1136
|
|
1126
|
-
# @!method resource_bundles=(*
|
1137
|
+
# @!method resource_bundles=(*resource_bundles)
|
1127
1138
|
#
|
1128
1139
|
# This attribute allows to define the name and the file of the resource
|
1129
1140
|
# bundles which should be built for the Pod. They are specified as a
|
@@ -1261,6 +1272,55 @@ module Pod
|
|
1261
1272
|
attribute :module_map,
|
1262
1273
|
:root_only => true
|
1263
1274
|
|
1275
|
+
#------------------#
|
1276
|
+
|
1277
|
+
SCRIPT_PHASE_REQUIRED_KEYS = [:name, :script].freeze
|
1278
|
+
|
1279
|
+
SCRIPT_PHASE_OPTIONAL_KEYS = [:shell_path, :input_files, :output_files, :show_env_vars_in_log, :execution_position].freeze
|
1280
|
+
|
1281
|
+
EXECUTION_POSITION_KEYS = [:before_compile, :after_compile, :any].freeze
|
1282
|
+
|
1283
|
+
ALL_SCRIPT_PHASE_KEYS = (SCRIPT_PHASE_REQUIRED_KEYS + SCRIPT_PHASE_OPTIONAL_KEYS).freeze
|
1284
|
+
|
1285
|
+
# @!method script_phases=(*script_phases)
|
1286
|
+
#
|
1287
|
+
# This attribute allows to define a script phase to execute as part of compilation of the Pod.
|
1288
|
+
# Unlike a prepare command, script phases execute as part of `xcodebuild` they can also utilize all environment
|
1289
|
+
# variables that are set during compilation.
|
1290
|
+
#
|
1291
|
+
# A Pod can provide multiple script phases to execute and they will be added in the order they were
|
1292
|
+
# declared and after taking into consideration their execution position setting.
|
1293
|
+
#
|
1294
|
+
# **Note** In order to provide visibility and awareness of the contents of all script phases,
|
1295
|
+
# a warning will be presented to the user upon installing your pod if it includes any script phases.
|
1296
|
+
#
|
1297
|
+
# @example
|
1298
|
+
#
|
1299
|
+
# spec.script_phase = { :name => 'Hello World', :script => 'echo "Hello World"' }
|
1300
|
+
#
|
1301
|
+
# @example
|
1302
|
+
#
|
1303
|
+
# spec.script_phase = { :name => 'Hello World', :script => 'echo "Hello World"', :execution_position => :before_compile }
|
1304
|
+
#
|
1305
|
+
# @example
|
1306
|
+
#
|
1307
|
+
# spec.script_phase = { :name => 'Hello World', :script => 'puts "Hello World"', :shell_path => '/usr/bin/ruby' } }
|
1308
|
+
#
|
1309
|
+
# @example
|
1310
|
+
#
|
1311
|
+
# spec.script_phases = [
|
1312
|
+
# { :name => 'Hello World', :script => 'echo "Hello World"' },
|
1313
|
+
# { :name => 'Hello Ruby World', :script => 'puts "Hello World"', :shell_path => '/usr/bin/ruby' } },
|
1314
|
+
# ]
|
1315
|
+
#
|
1316
|
+
# @param [Array<Hash{Symbol=>String}>] script_phases
|
1317
|
+
# An array of hashes where each hash represents a single script phase.
|
1318
|
+
#
|
1319
|
+
attribute :script_phases,
|
1320
|
+
:types => [Hash],
|
1321
|
+
:container => Array,
|
1322
|
+
:singularize => true
|
1323
|
+
|
1264
1324
|
#-----------------------------------------------------------------------#
|
1265
1325
|
|
1266
1326
|
# @!group Subspecs
|
@@ -394,6 +394,27 @@ module Pod
|
|
394
394
|
end
|
395
395
|
end
|
396
396
|
|
397
|
+
# Performs validations related to the `script_phases` attribute.
|
398
|
+
#
|
399
|
+
def _validate_script_phases(s)
|
400
|
+
s.each do |script_phase|
|
401
|
+
keys = script_phase.keys
|
402
|
+
unrecognized_keys = keys - Specification::ALL_SCRIPT_PHASE_KEYS
|
403
|
+
unless unrecognized_keys.empty?
|
404
|
+
results.add_error('script_phases', "Unrecognized options `#{unrecognized_keys}` in script phase `#{script_phase[:name]}`. " \
|
405
|
+
"Available options are `#{Specification::ALL_SCRIPT_PHASE_KEYS}`.")
|
406
|
+
end
|
407
|
+
missing_required_keys = Specification::SCRIPT_PHASE_REQUIRED_KEYS - keys
|
408
|
+
unless missing_required_keys.empty?
|
409
|
+
results.add_error('script_phases', "Missing required shell script phase options `#{missing_required_keys.join(', ')}` in script phase `#{script_phase[:name]}`.")
|
410
|
+
end
|
411
|
+
unless Specification::EXECUTION_POSITION_KEYS.include?(script_phase[:execution_position])
|
412
|
+
results.add_error('script_phases', "Invalid execution position value `#{script_phase[:execution_position]}` in shell script `#{script_phase[:name]}`. " \
|
413
|
+
"Available options are `#{Specification::EXECUTION_POSITION_KEYS}`.")
|
414
|
+
end
|
415
|
+
end
|
416
|
+
end
|
417
|
+
|
397
418
|
# Performs validations related to github sources.
|
398
419
|
#
|
399
420
|
def perform_github_source_checks(s)
|
@@ -92,7 +92,7 @@ module Pod
|
|
92
92
|
if license.is_a?(String)
|
93
93
|
{ :type => license }
|
94
94
|
elsif license.is_a?(Hash)
|
95
|
-
license = convert_keys_to_symbol(license)
|
95
|
+
license = Specification.convert_keys_to_symbol(license)
|
96
96
|
license[:text] = license[:text].strip_heredoc if license[:text]
|
97
97
|
license
|
98
98
|
else
|
@@ -110,7 +110,7 @@ module Pod
|
|
110
110
|
# should be retrieved.
|
111
111
|
#
|
112
112
|
def source
|
113
|
-
convert_keys_to_symbol(attributes_hash['source'])
|
113
|
+
Specification.convert_keys_to_symbol(attributes_hash['source'])
|
114
114
|
end
|
115
115
|
|
116
116
|
# @return [String] A short description of the Pod.
|
@@ -187,27 +187,6 @@ module Pod
|
|
187
187
|
end
|
188
188
|
|
189
189
|
#---------------------------------------------------------------------#
|
190
|
-
|
191
|
-
private
|
192
|
-
|
193
|
-
# Converts the keys of the given hash to a string.
|
194
|
-
#
|
195
|
-
# @param [Object] value
|
196
|
-
# the value that needs to be stripped from the Symbols.
|
197
|
-
#
|
198
|
-
# @return [Hash] the hash with the strings instead of the keys.
|
199
|
-
#
|
200
|
-
def convert_keys_to_symbol(value)
|
201
|
-
return unless value
|
202
|
-
result = {}
|
203
|
-
value.each do |key, subvalue|
|
204
|
-
subvalue = convert_keys_to_symbol(subvalue) if subvalue.is_a?(Hash)
|
205
|
-
result[key.to_sym] = subvalue
|
206
|
-
end
|
207
|
-
result
|
208
|
-
end
|
209
|
-
|
210
|
-
#---------------------------------------------------------------------#
|
211
190
|
end
|
212
191
|
end
|
213
192
|
end
|
@@ -30,7 +30,7 @@ module Pod
|
|
30
30
|
# the sources that contain a Pod.
|
31
31
|
#
|
32
32
|
def initialize(name, sources = [])
|
33
|
-
@name
|
33
|
+
@name = name
|
34
34
|
@sources = Array(sources)
|
35
35
|
end
|
36
36
|
|
@@ -50,6 +50,12 @@ module Pod
|
|
50
50
|
Specification.from_file(highest_version_spec_path)
|
51
51
|
end
|
52
52
|
|
53
|
+
# @return [Specification] the top level specification for this set for any version.
|
54
|
+
#
|
55
|
+
def specification_name
|
56
|
+
Specification.from_file(specification_paths_for_version(any_version).first).name
|
57
|
+
end
|
58
|
+
|
53
59
|
# @return [Array<String>] the paths to specifications for the given
|
54
60
|
# version
|
55
61
|
#
|
@@ -78,18 +84,16 @@ module Pod
|
|
78
84
|
# is used to disambiguate.
|
79
85
|
#
|
80
86
|
def highest_version_spec_path
|
81
|
-
specification_paths_for_version(highest_version).first
|
87
|
+
@highest_version_spec_path ||= specification_paths_for_version(highest_version).first
|
82
88
|
end
|
83
89
|
|
84
90
|
# @return [Hash{Source => Version}] all the available versions for the
|
85
91
|
# Pod grouped by source.
|
86
92
|
#
|
87
93
|
def versions_by_source
|
88
|
-
|
89
|
-
sources.each do |source|
|
94
|
+
@versions_by_source ||= sources.each_with_object({}) do |source, result|
|
90
95
|
result[source] = source.versions(name)
|
91
96
|
end
|
92
|
-
result
|
93
97
|
end
|
94
98
|
|
95
99
|
def ==(other)
|
@@ -127,6 +131,14 @@ module Pod
|
|
127
131
|
}
|
128
132
|
end
|
129
133
|
|
134
|
+
private
|
135
|
+
|
136
|
+
# @return [Version] A version known for this specification.
|
137
|
+
#
|
138
|
+
def any_version
|
139
|
+
versions_by_source.values.flatten.uniq.first
|
140
|
+
end
|
141
|
+
|
130
142
|
#-----------------------------------------------------------------------#
|
131
143
|
|
132
144
|
# The Set::External class handles Pods from external sources. Pods from
|
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.4.0.beta.
|
4
|
+
version: 1.4.0.beta.2
|
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: 2017-
|
12
|
+
date: 2017-10-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|