cocoapods-core 0.19.1 → 0.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/lib/cocoapods-core/gem_version.rb +1 -1
- data/lib/cocoapods-core/podfile/dsl.rb +2 -2
- data/lib/cocoapods-core/podfile/target_definition.rb +1 -1
- data/lib/cocoapods-core/source/acceptor.rb +3 -2
- data/lib/cocoapods-core/specification/dsl.rb +7 -2
- data/lib/cocoapods-core/specification/linter.rb +1 -1
- data/lib/cocoapods-core/specification/yaml.rb +3 -3
- data/lib/cocoapods-core/specification.rb +34 -11
- 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: 94c9b71988632829dff6d7853a7d1f39b16e812d
|
4
|
+
data.tar.gz: 6b8a89122bfee97fafb3f005f3f6a3a8f59d40e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 803bca5479af6a508dd19327aec6a29806f25d83725b0a5095019ab5bcc9db2c61d96d5ecd2c9a05c7057a0dbc01659da6a839aa851bc0db354ca9968d7c71c3
|
7
|
+
data.tar.gz: 40565670aae75805ac2461e22ae9ee840489b5bea51bca7f25ab7b7a87bca8cd2aadae74207ccc1599148d3e3712844f2ede2bec6e5585c0409bc0cf3e7c093b
|
data/README.md
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
[![Build Status](https://travis-ci.org/CocoaPods/Core.png?branch=master)](https://travis-ci.org/CocoaPods/Core)
|
4
4
|
[![Coverage Status](https://coveralls.io/repos/CocoaPods/Core/badge.png?branch=master)](https://coveralls.io/r/CocoaPods/Core)
|
5
|
+
[![Code Climate](https://codeclimate.com/github/CocoaPods/Core.png)](https://codeclimate.com/github/CocoaPods/Core)
|
5
6
|
|
6
7
|
The CocoaPods-Core gem provides support to work with the models of CocoaPods.
|
7
8
|
It is intended to be used in place of the CocoaPods when the installation
|
@@ -89,10 +89,10 @@ module Pod
|
|
89
89
|
# Dependencies can be obtained also from external sources.
|
90
90
|
#
|
91
91
|
#
|
92
|
-
# ### Using the files from a
|
92
|
+
# ### Using the files from a local path.
|
93
93
|
#
|
94
94
|
# If you wold like to use develop a Pod in tandem with its client
|
95
|
-
# project you can use the `
|
95
|
+
# project you can use the `path` option.
|
96
96
|
#
|
97
97
|
# pod 'AFNetworking', :path => '~/Documents/AFNetworking'
|
98
98
|
#
|
@@ -272,7 +272,7 @@ module Pod
|
|
272
272
|
# return true for any asked pod.
|
273
273
|
#
|
274
274
|
def inhibits_warnings_for_pod?(pod_name)
|
275
|
-
return true if inhibit_warnings_hash['all'] || (parent.inhibits_warnings_for_pod?(
|
275
|
+
return true if inhibit_warnings_hash['all'] || (parent.inhibits_warnings_for_pod?(pod_name) unless root?)
|
276
276
|
|
277
277
|
inhibit_warnings_hash['for_pods'] ||= []
|
278
278
|
inhibit_warnings_hash['for_pods'].include? pod_name
|
@@ -30,7 +30,7 @@ module Pod
|
|
30
30
|
def analyze(spec, previous_spec = nil)
|
31
31
|
errors = []
|
32
32
|
check_spec_source_change(spec, errors)
|
33
|
-
check_if_untagged_version_is_acceptable(spec, errors)
|
33
|
+
check_if_untagged_version_is_acceptable(spec, previous_spec, errors)
|
34
34
|
check_commit_change_for_untagged_version(spec, previous_spec, errors)
|
35
35
|
check_dependencies(spec, errors)
|
36
36
|
errors
|
@@ -81,9 +81,10 @@ module Pod
|
|
81
81
|
#
|
82
82
|
# @return [void]
|
83
83
|
#
|
84
|
-
def check_if_untagged_version_is_acceptable(spec, errors)
|
84
|
+
def check_if_untagged_version_is_acceptable(spec, previous_spec, errors)
|
85
85
|
return if !spec.source[:git] || spec.source[:tag]
|
86
86
|
return unless related_specifications(spec)
|
87
|
+
return if previous_spec
|
87
88
|
has_tagged_spec = related_specifications(spec).any? { |s| s.version != '0.0.1' }
|
88
89
|
if has_tagged_spec
|
89
90
|
errors << "There is already at least one versioned specification so " \
|
@@ -212,12 +212,12 @@ module Pod
|
|
212
212
|
#
|
213
213
|
# @example Specifying a Git source with a tag.
|
214
214
|
#
|
215
|
-
# spec.source = { :git =>
|
215
|
+
# spec.source = { :git => 'git://github.com/AFNetworking/AFNetworking.git',
|
216
216
|
# :tag => 'v0.0.1' }
|
217
217
|
#
|
218
218
|
# @example Using the version of the Pod to identify the Git tag.
|
219
219
|
#
|
220
|
-
# spec.source = { :git =>
|
220
|
+
# spec.source = { :git => 'git://github.com/AFNetworking/AFNetworking.git',
|
221
221
|
# :tag => "v#{spec.version}" }
|
222
222
|
#
|
223
223
|
# @param [Hash{Symbol=>String}] source
|
@@ -945,6 +945,8 @@ module Pod
|
|
945
945
|
# for each Pods library and only for installations where the Pod is
|
946
946
|
# installed.
|
947
947
|
#
|
948
|
+
# This hook should be used to generate and modify the files of the Pod.
|
949
|
+
#
|
948
950
|
# It receives the
|
949
951
|
# [`Pod::Hooks::PodRepresentation`](http://docs.cocoapods.org/cocoapods/pod/hooks/podrepresentation/)
|
950
952
|
# and the
|
@@ -968,6 +970,9 @@ module Pod
|
|
968
970
|
# been generated. Note that this hook is called for each Pods library and
|
969
971
|
# only for installations where the Pod is installed.
|
970
972
|
#
|
973
|
+
# To modify and generate files for the Pod the pre install hook should be
|
974
|
+
# used instead of this one.
|
975
|
+
#
|
971
976
|
# It receives a
|
972
977
|
# [`Pod::Hooks::LibraryRepresentation`](http://docs.cocoapods.org/cocoapods/pod/hooks/libraryrepresentation/)
|
973
978
|
# instance for the current target.
|
@@ -191,7 +191,7 @@ module Pod
|
|
191
191
|
#
|
192
192
|
def _validate_name(n)
|
193
193
|
if spec.name && file
|
194
|
-
names_match = (file.basename.to_s == spec.root.name + '.podspec')
|
194
|
+
names_match = (file.basename.to_s == spec.root.name + '.podspec') || (file.basename.to_s == spec.root.name + '.podspec.yaml')
|
195
195
|
unless names_match
|
196
196
|
error "The name of the spec should match the name of the file."
|
197
197
|
end
|
@@ -57,13 +57,13 @@ module Pod
|
|
57
57
|
#
|
58
58
|
# @return [Specification] the specification
|
59
59
|
#
|
60
|
-
def self.from_hash(hash)
|
61
|
-
spec = Spec.new
|
60
|
+
def self.from_hash(hash, parent = nil)
|
61
|
+
spec = Spec.new(parent)
|
62
62
|
attributes_hash = hash.dup
|
63
63
|
subspecs = attributes_hash.delete('subspecs')
|
64
64
|
spec.attributes_hash = attributes_hash
|
65
65
|
if subspecs
|
66
|
-
spec.subspecs = subspecs.map { |s_hash| Specification.from_hash(s_hash) }
|
66
|
+
spec.subspecs = subspecs.map { |s_hash| Specification.from_hash(s_hash, spec) }
|
67
67
|
end
|
68
68
|
spec
|
69
69
|
end
|
@@ -532,14 +532,35 @@ module Pod
|
|
532
532
|
raise Informative, "No podspec exists at path `#{path}`."
|
533
533
|
end
|
534
534
|
|
535
|
+
string = File.open(path, 'r:utf-8') { |f| f.read }
|
536
|
+
# Work around for Rubinius incomplete encoding in 1.9 mode
|
537
|
+
if string.respond_to?(:encoding) && string.encoding.name != "UTF-8"
|
538
|
+
string.encode!('UTF-8')
|
539
|
+
end
|
540
|
+
|
541
|
+
from_string(string, path, subspec_name)
|
542
|
+
end
|
543
|
+
|
544
|
+
# Loads a specification with the given string.
|
545
|
+
#
|
546
|
+
# @param [String] spec_contents
|
547
|
+
# A string describing a specification.
|
548
|
+
#
|
549
|
+
# @param [Pathname, String] path @see from_file
|
550
|
+
# @param [String] subspec_name @see from_file
|
551
|
+
#
|
552
|
+
# @return [Specification] the specification
|
553
|
+
#
|
554
|
+
def self.from_string(spec_contents, path, subspec_name = nil)
|
555
|
+
path = Pathname.new(path)
|
535
556
|
case path.extname
|
536
557
|
when '.podspec'
|
537
|
-
spec = ::Pod._eval_podspec(path)
|
558
|
+
spec = ::Pod._eval_podspec(spec_contents, path)
|
538
559
|
unless spec.is_a?(Specification)
|
539
560
|
raise Informative, "Invalid podspec file at path `#{path}`."
|
540
561
|
end
|
541
562
|
when '.yaml'
|
542
|
-
spec = Specification.from_yaml(
|
563
|
+
spec = Specification.from_yaml(spec_contents)
|
543
564
|
else
|
544
565
|
raise Informative, "Unsupported specification format `#{path.extname}`."
|
545
566
|
end
|
@@ -567,20 +588,22 @@ module Pod
|
|
567
588
|
|
568
589
|
#---------------------------------------------------------------------------#
|
569
590
|
|
570
|
-
#
|
591
|
+
# @visibility private
|
592
|
+
#
|
593
|
+
# Evaluates the given string in the namespace of the Pod module.
|
594
|
+
#
|
595
|
+
# @param [String] string
|
596
|
+
# The string containing the Ruby description of the Object to
|
597
|
+
# evaluate.
|
598
|
+
#
|
599
|
+
# @param [Pathname] path
|
600
|
+
# The path where the object to evaluate is stored.
|
571
601
|
#
|
572
602
|
# @return [Object] it can return any object but, is expected to be called on
|
573
603
|
# `podspec` files that should return a #{Specification}.
|
574
604
|
#
|
575
|
-
# @private
|
576
605
|
#
|
577
|
-
def self._eval_podspec(path)
|
578
|
-
string = File.open(path, 'r:utf-8') { |f| f.read }
|
579
|
-
# Work around for Rubinius incomplete encoding in 1.9 mode
|
580
|
-
if string.respond_to?(:encoding) && string.encoding.name != "UTF-8"
|
581
|
-
string.encode!('UTF-8')
|
582
|
-
end
|
583
|
-
|
606
|
+
def self._eval_podspec(string, path)
|
584
607
|
begin
|
585
608
|
eval(string, nil, path.to_s)
|
586
609
|
rescue Exception => e
|
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: 0.
|
4
|
+
version: 0.20.0
|
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: 2013-
|
12
|
+
date: 2013-05-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|