cocoapods-core 1.4.0 → 1.5.0.beta.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 166a653c33e61517a2914e458b1b3f014ea91808c1f1bf291ce02f0cecdc46be
4
- data.tar.gz: 4670a4a9deb6fee4332e4323378e1070129f42b916056f89105a8a4238f822a8
3
+ metadata.gz: f5951e63ba532abe3d6996c0e03644fe213db6d3cdba2202ceb9ceb375356167
4
+ data.tar.gz: 642e58e2d8f48431a0ba79a90488e526fa7075135934cfd0836653c6a9f1e273
5
5
  SHA512:
6
- metadata.gz: ab43dfd433bdf0278aeb3c9433565354d26e34a9634e3cca9b123f781c6a1ea5ff59c83e8c1a2a1c20d10a9b8e5921a96b52eda6e79a8d1aa9292ea1c8b2f538
7
- data.tar.gz: d6a4486d1c5429e84c3f3c6a22ac3c641634e33f41d3a9d70a2afc8331c8e049fddc97a5c8c83128b790186e64c734ce40e4a29f6e5c1f14d5aa0a3e034e9823
6
+ metadata.gz: cfbd4c782d9b20283bdd459bdb51ba302537d58773b2ac5ca70f48683667920882820be623056ae15aeffe526b2ffa7c23e84709d6acaa4aed4d4f8aa9338214
7
+ data.tar.gz: 1aa4a692e6147769145320bd71c491c148c08c182133d7e7eb0959fde3763877707c602e9bec4f08e38cb80b3aa557f94672ec18dff01683a70ff5eebaf17885
@@ -95,8 +95,7 @@ module Pod
95
95
  raise Informative, 'A dependency with a specified podspec repo may ' \
96
96
  "not include other source parameters (#{name})."
97
97
  end
98
- else
99
- @external_source = additional_params
98
+ elsif @external_source = additional_params
100
99
  unless requirements.empty?
101
100
  raise Informative, 'A dependency with an external source may not ' \
102
101
  "specify version requirements (#{name})."
@@ -216,7 +215,8 @@ module Pod
216
215
  self.class == other.class &&
217
216
  name == other.name &&
218
217
  requirement == other.requirement &&
219
- external_source == other.external_source
218
+ external_source == other.external_source &&
219
+ podspec_repo == other.podspec_repo
220
220
  end
221
221
  alias_method :eql?, :==
222
222
 
@@ -249,24 +249,41 @@ module Pod
249
249
  unless name == other.name
250
250
  raise ArgumentError, "#{self} and #{other} have different names"
251
251
  end
252
+
252
253
  default = Requirement.default
253
254
  self_req = requirement
254
255
  other_req = other.requirement
255
256
 
256
- dep = if other_req == default
257
- self.class.new(name, self_req)
257
+ req = if other_req == default
258
+ self_req
258
259
  elsif self_req == default
259
- self.class.new(name, other_req)
260
+ other_req
260
261
  else
261
- self.class.new(name, self_req.as_list.concat(other_req.as_list))
262
+ self_req.as_list.concat(other_req.as_list)
262
263
  end
263
264
 
265
+ opts = {}
266
+
264
267
  if external_source || other.external_source
265
- self_external_source = external_source || {}
266
- other_external_source = other.external_source || {}
267
- dep.external_source = self_external_source.merge(other_external_source)
268
+ opts.
269
+ merge!(external_source || {}).
270
+ merge!(other.external_source || {})
271
+
272
+ req_to_set = req
273
+ req = []
274
+ end
275
+
276
+ if podspec_repo && other.podspec_repo && podspec_repo != other.podspec_repo
277
+ raise ArgumentError, "#{self} and #{other} have different podspec repos"
278
+ end
279
+
280
+ if repo = podspec_repo || other.podspec_repo
281
+ opts[:source] = repo
282
+ end
283
+
284
+ self.class.new(name, *req, opts).tap do |dep|
285
+ dep.instance_variable_set(:@requirement, Requirement.create(req_to_set)) if req_to_set
268
286
  end
269
- dep
270
287
  end
271
288
 
272
289
  # Whether the dependency has any pre-release requirements
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the cocoapods-core.
3
3
  #
4
- CORE_VERSION = '1.4.0'.freeze unless defined? Pod::CORE_VERSION
4
+ CORE_VERSION = '1.5.0.beta.1'.freeze unless defined? Pod::CORE_VERSION
5
5
  end
@@ -44,7 +44,7 @@ module Pod
44
44
  begin
45
45
  url = get_actual_url(url)
46
46
  resp = perform_head_request(url)
47
- rescue SocketError, URI::InvalidURIError, REST::Error, REST::DisconnectedError
47
+ rescue SocketError, URI::InvalidURIError, REST::Error, REST::Error::Connection
48
48
  resp = nil
49
49
  end
50
50
 
@@ -65,7 +65,12 @@ module Pod
65
65
  resp = ::REST.head(url, 'User-Agent' => USER_AGENT)
66
66
 
67
67
  if resp.status_code >= 400
68
- resp = ::REST.get(url, 'User-Agent' => USER_AGENT)
68
+ resp = ::REST.get(url, 'User-Agent' => USER_AGENT,
69
+ 'Range' => 'bytes=0-0')
70
+
71
+ if resp.status_code >= 400
72
+ resp = ::REST.get(url, 'User-Agent' => USER_AGENT)
73
+ end
69
74
  end
70
75
 
71
76
  resp
@@ -77,7 +77,7 @@ module Pod
77
77
 
78
78
  # Returns the version of the given Pod.
79
79
  #
80
- # @param [name] The name of the Pod (root name of the specification).
80
+ # @param [String] pod_name The name of the Pod (root name of the specification).
81
81
  #
82
82
  # @return [Version] The version of the pod.
83
83
  #
@@ -92,9 +92,21 @@ module Pod
92
92
  pod_versions[root_name]
93
93
  end
94
94
 
95
+ # Returns the source of the given Pod.
96
+ #
97
+ # @param [String] pod_name The name of the Pod (root name of the specification).
98
+ #
99
+ # @return [String] The source of the pod.
100
+ #
101
+ # @return [Nil] If there is no source stored for the given name.
102
+ #
103
+ def spec_repo(pod_name)
104
+ spec_repos_by_pod[pod_name]
105
+ end
106
+
95
107
  # Returns the checksum for the given Pod.
96
108
  #
97
- # @param [name] The name of the Pod (root name of the specification).
109
+ # @param [String] name The name of the Pod (root name of the specification).
98
110
  #
99
111
  # @return [String] The checksum of the specification for the given Pod.
100
112
  #
@@ -121,6 +133,17 @@ module Pod
121
133
  @dependencies
122
134
  end
123
135
 
136
+ # Returns pod names grouped by the spec repo they were sourced from.
137
+ #
138
+ # @return [Hash<String, Array<String>>] A hash, where the keys are spec
139
+ # repo source URLs (or names), and the values are arrays of pod names.
140
+ #
141
+ # @note It does not include pods that come from "external sources".
142
+ #
143
+ def pods_by_spec_repo
144
+ @pods_by_spec_repo ||= internal_data['SPEC REPOS'] || {}
145
+ end
146
+
124
147
  # Generates a dependency that requires the exact version of the Pod with the
125
148
  # given name.
126
149
  #
@@ -225,6 +248,17 @@ module Pod
225
248
  internal_data['SPEC CHECKSUMS'] || {}
226
249
  end
227
250
 
251
+ # @return [Hash{String => String}] A hash containing the spec repo used for the specification
252
+ # by the name of the root spec.
253
+ #
254
+ def spec_repos_by_pod
255
+ @spec_repos_by_pod ||= pods_by_spec_repo.each_with_object({}) do |(spec_repo, pods), spec_repos_by_pod|
256
+ pods.each do |pod|
257
+ spec_repos_by_pod[pod] = spec_repo
258
+ end
259
+ end
260
+ end
261
+
228
262
  #-------------------------------------------------------------------------#
229
263
 
230
264
  # !@group Comparison with a Podfile
@@ -335,6 +369,7 @@ module Pod
335
369
  HASH_KEY_ORDER = [
336
370
  'PODS',
337
371
  'DEPENDENCIES',
372
+ 'SPEC REPOS',
338
373
  'EXTERNAL SOURCES',
339
374
  'CHECKOUT OPTIONS',
340
375
  'SPEC CHECKSUMS',
@@ -350,9 +385,7 @@ module Pod
350
385
  # @note The YAML string is prettified.
351
386
  #
352
387
  def to_yaml
353
- yaml_string = YAMLHelper.convert_hash(to_hash, HASH_KEY_ORDER, "\n\n")
354
- yaml_string = yaml_string.tr("'", '')
355
- yaml_string.tr('"', '')
388
+ YAMLHelper.convert_hash(to_hash, HASH_KEY_ORDER, "\n\n")
356
389
  end
357
390
 
358
391
  #-------------------------------------------------------------------------#
@@ -375,10 +408,11 @@ module Pod
375
408
  #
376
409
  # @return [Lockfile] a new lockfile.
377
410
  #
378
- def generate(podfile, specs, checkout_options)
411
+ def generate(podfile, specs, checkout_options, spec_repos = {})
379
412
  hash = {
380
413
  'PODS' => generate_pods_data(specs),
381
414
  'DEPENDENCIES' => generate_dependencies_data(podfile),
415
+ 'SPEC REPOS' => generate_spec_repos(spec_repos),
382
416
  'EXTERNAL SOURCES' => generate_external_sources_data(podfile),
383
417
  'CHECKOUT OPTIONS' => checkout_options,
384
418
  'SPEC CHECKSUMS' => generate_checksums(specs),
@@ -440,6 +474,21 @@ module Pod
440
474
  podfile.dependencies.map(&:to_s).sort
441
475
  end
442
476
 
477
+ # Generates the hash of spec repo sources used in the Podfile.
478
+ #
479
+ # @example Output
480
+ # { "https://github.com/CocoaPods/CocoaPods.git" => ["Alamofire", "Moya"] }
481
+ #
482
+ def generate_spec_repos(spec_repos)
483
+ Hash[spec_repos.map do |source, specs|
484
+ next unless source
485
+ next if specs.empty?
486
+ key = source.url || source.name
487
+ value = specs.map { |s| s.root.name }.uniq
488
+ [key, value]
489
+ end.compact]
490
+ end
491
+
443
492
  # Generates the information of the external sources.
444
493
  #
445
494
  # @example Output
@@ -142,6 +142,19 @@ module Pod
142
142
  #
143
143
  # ------
144
144
  #
145
+ # ### Source
146
+ #
147
+ # By default the sources specified at the global level are searched in the order
148
+ # they are specified for a dependency match. This behaviour can be altered
149
+ # for a specific dependency by specifying the source with the dependency:
150
+ #
151
+ # pod 'PonyDebugger', :source => 'https://github.com/CocoaPods/Specs.git'
152
+ #
153
+ # In this case only the specified source will be searched for the dependency
154
+ # and any global sources ignored.
155
+ #
156
+ # ------
157
+ #
145
158
  # ### Subspecs
146
159
  #
147
160
  # When installing a Pod via its name, it will install all of the
@@ -607,6 +620,26 @@ module Pod
607
620
  current_target_definition.inhibit_all_warnings = true
608
621
  end
609
622
 
623
+ # Use modular headers for all CocoaPods static libraries.
624
+ #
625
+ # ------
626
+ #
627
+ # This attribute is inherited by child target definitions.
628
+ #
629
+ # If you would like to use modular headers per Pod you can use the
630
+ # following syntax:
631
+ #
632
+ # pod 'SSZipArchive', :modular_headers => true
633
+ #
634
+ # Additionally, when you use the `use_modular_headers!` attribute,
635
+ # you can exclude a particular Pod from modular headers using the following:
636
+ #
637
+ # pod 'SSZipArchive', :modular_headers => false
638
+ #
639
+ def use_modular_headers!
640
+ current_target_definition.use_modular_headers_for_all_pods = true
641
+ end
642
+
610
643
  # Use frameworks instead of static libraries for Pods.
611
644
  #
612
645
  # ------
@@ -457,6 +457,96 @@ module Pod
457
457
 
458
458
  #--------------------------------------#
459
459
 
460
+ def raw_use_modular_headers_hash
461
+ get_hash_value('use_modular_headers', {})
462
+ end
463
+ private :raw_use_modular_headers_hash
464
+
465
+ # Returns the use_modular_headers hash pre-populated with default values.
466
+ #
467
+ # @return [Hash<String, Array>] Hash with :all key for building all
468
+ # pods as modules, :for_pods key for building as module per Pod,
469
+ # and :not_for_pods key for not biulding as module per Pod.
470
+ #
471
+ def use_modular_headers_hash
472
+ raw_hash = raw_use_modular_headers_hash
473
+ if exclusive?
474
+ raw_hash
475
+ else
476
+ parent_hash = parent.send(:use_modular_headers_hash).dup
477
+ if parent_hash['not_for_pods']
478
+ # Remove pods that are set to not use modular headers inside parent
479
+ # if they are set to use modular headers inside current target.
480
+ parent_hash['not_for_pods'] -= Array(raw_hash['for_pods'])
481
+ end
482
+ if parent_hash['for_pods']
483
+ # Remove pods that are set to use modular headers inside parent if they are set to not use modular headers inside current target.
484
+ parent_hash['for_pods'] -= Array(raw_hash['for_pods'])
485
+ end
486
+ if raw_hash['all']
487
+ # Clean pods that are set to not use modular headers inside parent if use_modular_headers! was set.
488
+ parent_hash['not_for_pods'] = nil
489
+ end
490
+ parent_hash.merge(raw_hash) do |_, l, r|
491
+ Array(l).concat(r).uniq
492
+ end
493
+ end
494
+ end
495
+
496
+ # @return [Bool] whether the target definition should use modular headers
497
+ # for a single pod. If use_modular_headers! is true, it will
498
+ # return true for any asked pod.
499
+ #
500
+ def build_pod_as_module?(pod_name)
501
+ if Array(use_modular_headers_hash['not_for_pods']).include?(pod_name)
502
+ false
503
+ elsif use_modular_headers_hash['all']
504
+ true
505
+ elsif !root? && parent.build_pod_as_module?(pod_name)
506
+ true
507
+ else
508
+ Array(use_modular_headers_hash['for_pods']).include? pod_name
509
+ end
510
+ end
511
+
512
+ # Sets whether the target definition should use modular headers for all pods.
513
+ #
514
+ # @param [Bool] flag
515
+ # Whether the warnings should be suppressed.
516
+ #
517
+ # @return [void]
518
+ #
519
+ def use_modular_headers_for_all_pods=(flag)
520
+ raw_use_modular_headers_hash['all'] = flag
521
+ end
522
+
523
+ # Use modular headers for a specific pod during compilation.
524
+ #
525
+ # @param [String] pod_name
526
+ # Name of the pod for which modular headers will be used.
527
+ #
528
+ # @param [Bool] flag
529
+ # Whether modular headers should be used.
530
+ #
531
+ # @return [void]
532
+ #
533
+ def set_use_modular_headers_for_pod(pod_name, flag)
534
+ hash_key = case flag
535
+ when true
536
+ 'for_pods'
537
+ when false
538
+ 'not_for_pods'
539
+ when nil
540
+ return
541
+ else
542
+ raise ArgumentError, "Got `#{flag.inspect}`, should be a boolean"
543
+ end
544
+ raw_use_modular_headers_hash[hash_key] ||= []
545
+ raw_use_modular_headers_hash[hash_key] << pod_name
546
+ end
547
+
548
+ #--------------------------------------#
549
+
460
550
  PLATFORM_DEFAULTS = { :ios => '4.3', :osx => '10.6', :tvos => '9.0', :watchos => '2.0' }.freeze
461
551
 
462
552
  # @return [Platform] the platform of the target definition.
@@ -542,6 +632,7 @@ module Pod
542
632
  def store_pod(name, *requirements)
543
633
  return if parse_subspecs(name, requirements) # This parse method must be called first
544
634
  parse_inhibit_warnings(name, requirements)
635
+ parse_modular_headers(name, requirements)
545
636
  parse_configuration_whitelist(name, requirements)
546
637
 
547
638
  if requirements && !requirements.empty?
@@ -634,6 +725,7 @@ module Pod
634
725
  link_with
635
726
  link_with_first_target
636
727
  inhibit_warnings
728
+ use_modular_headers
637
729
  user_project_path
638
730
  build_configurations
639
731
  dependencies
@@ -873,6 +965,28 @@ module Pod
873
965
  requirements.pop if options.empty?
874
966
  end
875
967
 
968
+ # Removes :modular_headers from the requirements list, and adds
969
+ # the pods name into internal hash for modular headers.
970
+ #
971
+ # @param [String] pod name
972
+ #
973
+ # @param [Array] requirements
974
+ # If :modular_headers is the only key in the hash, the hash
975
+ # should be destroyed because it confuses Gem::Dependency.
976
+ #
977
+ # @return [void]
978
+ #
979
+ def parse_modular_headers(name, requirements)
980
+ options = requirements.last
981
+ return requirements unless options.is_a?(Hash)
982
+
983
+ defines_module = options.delete(:modular_headers)
984
+ pod_name = Specification.root_name(name)
985
+ set_use_modular_headers_for_pod(pod_name, defines_module)
986
+
987
+ requirements.pop if options.empty?
988
+ end
989
+
876
990
  # Removes :configurations or :configuration from the requirements list,
877
991
  # and adds the pod's name into the internal hash for which pods should be
878
992
  # linked in which configuration only.
@@ -42,11 +42,13 @@ module Pod
42
42
  # option. See https://github.com/CocoaPods/CocoaPods/issues/2724.
43
43
  #
44
44
  def url
45
- remote = repo_git(%w(config --get remote.origin.url))
46
- if !remote.empty?
47
- remote
48
- elsif (repo + '.git').exist?
49
- "file://#{repo}/.git"
45
+ @url ||= begin
46
+ remote = repo_git(%w(config --get remote.origin.url))
47
+ if !remote.empty?
48
+ remote
49
+ elsif (repo + '.git').exist?
50
+ "file://#{repo}/.git"
51
+ end
50
52
  end
51
53
  end
52
54
 
@@ -260,7 +262,13 @@ module Pod
260
262
  if query.is_a?(Dependency)
261
263
  query = query.root_name
262
264
  end
263
- found = Pathname.glob(pod_path(query)).map { |path| path.basename.to_s }
265
+
266
+ found = []
267
+ Pathname.glob(pod_path(query)) do |path|
268
+ next unless Dir.foreach(path).any? { |child| child != '.' && child != '..' }
269
+ found << path.basename.to_s
270
+ end
271
+
264
272
  if [query] == found
265
273
  set = set(query)
266
274
  set if set.specification_name == query
@@ -435,7 +443,7 @@ module Pod
435
443
  end
436
444
 
437
445
  def repo_git(args, include_error: false)
438
- command = "git -C \"#{repo}\" " << args.join(' ')
446
+ command = "env -u GIT_CONFIG git -C \"#{repo}\" " << args.join(' ')
439
447
  command << ' 2>&1' if include_error
440
448
  (`#{command}` || '').strip
441
449
  end
@@ -42,14 +42,15 @@ module Pod
42
42
  # Or it can be quite detailed:
43
43
  #
44
44
  # Pod::Spec.new do |spec|
45
- # spec.name = 'Reachability'
46
- # spec.version = '3.1.0'
47
- # spec.license = { :type => 'BSD' }
48
- # spec.homepage = 'https://github.com/tonymillion/Reachability'
49
- # spec.authors = { 'Tony Million' => 'tonymillion@gmail.com' }
50
- # spec.summary = 'ARC and GCD Compatible Reachability Class for iOS and OS X.'
51
- # spec.source = { :git => 'https://github.com/tonymillion/Reachability.git', :tag => 'v3.1.0' }
52
- # spec.module_name = 'Rich'
45
+ # spec.name = 'Reachability'
46
+ # spec.version = '3.1.0'
47
+ # spec.license = { :type => 'BSD' }
48
+ # spec.homepage = 'https://github.com/tonymillion/Reachability'
49
+ # spec.authors = { 'Tony Million' => 'tonymillion@gmail.com' }
50
+ # spec.summary = 'ARC and GCD Compatible Reachability Class for iOS and OS X.'
51
+ # spec.source = { :git => 'https://github.com/tonymillion/Reachability.git', :tag => 'v3.1.0' }
52
+ # spec.module_name = 'Rich'
53
+ # spec.swift_version = '4.0'
53
54
  #
54
55
  # spec.ios.deployment_target = '9.0'
55
56
  # spec.osx.deployment_target = '10.10'
@@ -68,7 +68,7 @@ module Pod
68
68
  # from highest to lowest.
69
69
  #
70
70
  def versions
71
- versions_by_source.values.flatten.uniq.sort.reverse
71
+ @versions ||= versions_by_source.values.flatten.uniq.sort.reverse
72
72
  end
73
73
 
74
74
  # @return [Version] The highest version known of the specification.
@@ -152,7 +152,7 @@ module Pod
152
152
  # @return [String] the root name
153
153
  #
154
154
  def self.root_name(full_name)
155
- full_name.split('/').first
155
+ full_name.split('/', 2).first
156
156
  end
157
157
 
158
158
  # Returns the module name of a specification
@@ -607,7 +607,7 @@ module Pod
607
607
  # @return [Specification] the specification
608
608
  #
609
609
  def self.from_string(spec_contents, path, subspec_name = nil)
610
- path = Pathname.new(path)
610
+ path = Pathname.new(path).expand_path
611
611
  spec = nil
612
612
  Dir.chdir(path.parent.directory? ? path.parent : Dir.pwd) do
613
613
  case path.extname
@@ -109,6 +109,8 @@ module Pod
109
109
  # @return [String] the YAML representation of the given object.
110
110
  #
111
111
  def process_array(array)
112
+ return '[]' if array.empty?
113
+
112
114
  result = sorted_array(array).map do |array_value|
113
115
  processed = process_according_to_class(array_value)
114
116
  case array_value
@@ -143,6 +145,8 @@ module Pod
143
145
  # @return [String] the YAML representation of the given object.
144
146
  #
145
147
  def process_hash(hash, hash_keys_hint = nil, line_separator = "\n")
148
+ return '{}' if hash.empty?
149
+
146
150
  keys = sorted_array_with_hint(hash.keys, hash_keys_hint)
147
151
  key_lines = keys.map do |key|
148
152
  key_value = hash[key]
@@ -275,7 +279,7 @@ module Pod
275
279
  end
276
280
  end
277
281
 
278
- RESOLVED_TAGS = [
282
+ RESOLVED_TAGS = Regexp.union(
279
283
  'null', 'Null', 'NULL', '~', '', # resolve to null
280
284
  'true', 'True', 'TRUE', 'false', 'False', 'FALSE', # bool
281
285
  /[-+]?[0-9]+/, # base 10 int
@@ -284,19 +288,29 @@ module Pod
284
288
  /[-+]?(\.[0-9]+|[0-9]+(\.[0-9]*)?)([eE][-+]?[0-9]+)?/, # float
285
289
  /[-+]?\.(inf|Inf|INF)/, # infinity
286
290
  /\.(nan|NaN|NAN)/, # NaN
287
- ].freeze
291
+ )
288
292
  private_constant :RESOLVED_TAGS
289
293
 
294
+ INDICATOR_START_CHARS = %w(- ? : , [ ] { } # & * ! | > ' " % @ `).freeze
295
+ INDICATOR_START = /\A#{Regexp.union(INDICATOR_START_CHARS)}/
296
+ private_constant :INDICATOR_START_CHARS, :INDICATOR_START
297
+
290
298
  RESOLVED_TAGS_PATTERN = /\A#{Regexp.union(RESOLVED_TAGS)}\z/
291
299
  private_constant :RESOLVED_TAGS_PATTERN
292
300
 
301
+ VALID_PLAIN_SCALAR_STRING = %r{\A
302
+ [\w&&[^#{INDICATOR_START_CHARS}]] # valid first character
303
+ [\w/\ \(\)~<>=\.:`,-]* # all characters allowed after the first one
304
+ \z}ox
305
+ private_constant :VALID_PLAIN_SCALAR_STRING
306
+
293
307
  def process_string(string)
294
308
  case string
295
- when /\A\s*\z/
296
- string.inspect
297
309
  when RESOLVED_TAGS_PATTERN
298
310
  "'#{string}'"
299
- when %r{\A\w[\w/ \(\)~<>=\.-]*\z}
311
+ when /\A\s*\z/, INDICATOR_START, /:\z/
312
+ string.inspect
313
+ when VALID_PLAIN_SCALAR_STRING
300
314
  string
301
315
  else
302
316
  string.inspect
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
4
+ version: 1.5.0.beta.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-01-18 00:00:00.000000000 Z
12
+ date: 2018-03-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -146,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
146
  version: '0'
147
147
  requirements: []
148
148
  rubyforge_project:
149
- rubygems_version: 2.7.4
149
+ rubygems_version: 2.7.6
150
150
  signing_key:
151
151
  specification_version: 3
152
152
  summary: The models of CocoaPods