cocoapods-core 0.36.4 → 0.37.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 +4 -4
- data/lib/cocoapods-core/gem_version.rb +1 -1
- data/lib/cocoapods-core/podfile/dsl.rb +38 -22
- data/lib/cocoapods-core/podfile/target_definition.rb +25 -1
- data/lib/cocoapods-core/specification/consumer.rb +4 -0
- data/lib/cocoapods-core/specification/dsl.rb +32 -9
- data/lib/cocoapods-core/specification/dsl/attribute.rb +0 -58
- data/lib/cocoapods-core/specification/linter.rb +38 -31
- data/lib/cocoapods-core/specification/linter/analyzer.rb +27 -2
- data/lib/cocoapods-core/specification/root_attribute_accessors.rb +7 -0
- metadata +23 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 315894eb34c0f6a04807edf8f349f2474694ee42
|
4
|
+
data.tar.gz: 54418d30b3be6e9b587ae8272283f51303652f43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70d3418f36984f5611e2c53bf6c2ee43b8add151b0944dc3f7a7b6dc229c2d923da1e72c58d4b1e50e99e24b99fdb50d895da828cd7ba22cbba8932d4074ad70
|
7
|
+
data.tar.gz: 08f3f21152641576389e09efbb9eaa5df5f5f43aee274a0f565e39a979f2c35f4f4ab3889251107f992c9cd8d2b2a1662242877f469b348ae6969f08d2dd6b05
|
@@ -9,12 +9,12 @@ module Pod
|
|
9
9
|
# implicit target, named `default`, which links to the first target of the
|
10
10
|
# user project.
|
11
11
|
#
|
12
|
-
# A
|
12
|
+
# A Podfile can be very simple:
|
13
13
|
#
|
14
14
|
# source 'https://github.com/CocoaPods/Specs.git'
|
15
15
|
# pod 'AFNetworking', '~> 1.0'
|
16
16
|
#
|
17
|
-
# An example of a more complex
|
17
|
+
# An example of a more complex Podfile can be:
|
18
18
|
#
|
19
19
|
# source 'https://github.com/CocoaPods/Specs.git'
|
20
20
|
#
|
@@ -112,12 +112,27 @@ module Pod
|
|
112
112
|
#
|
113
113
|
# ------
|
114
114
|
#
|
115
|
+
# ### Subspecs
|
116
|
+
#
|
117
|
+
# When installing a Pod via it's name, it will install all of the
|
118
|
+
# default subspecs defined in the podspec.
|
119
|
+
#
|
120
|
+
# You may install a specific subspec using the following:
|
121
|
+
#
|
122
|
+
# pod 'QueryKit/Attribute'
|
123
|
+
#
|
124
|
+
# You may specify a collection of subspecs to be installed as follows:
|
125
|
+
#
|
126
|
+
# pod 'QueryKit', :subspecs => ['Attribute', 'QuerySet']
|
127
|
+
#
|
128
|
+
# ------
|
129
|
+
#
|
115
130
|
# Dependencies can be obtained also from external sources.
|
116
131
|
#
|
117
132
|
#
|
118
133
|
# ### Using the files from a local path.
|
119
134
|
#
|
120
|
-
# If you
|
135
|
+
# If you would like to use develop a Pod in tandem with its client
|
121
136
|
# project you can use the `path` option.
|
122
137
|
#
|
123
138
|
# pod 'AFNetworking', :path => '~/Documents/AFNetworking'
|
@@ -127,30 +142,30 @@ module Pod
|
|
127
142
|
# Pods project. This means that your edits will persist to CocoaPods
|
128
143
|
# installations.
|
129
144
|
#
|
130
|
-
# The referenced folder can be a checkout of your your
|
131
|
-
# even a git submodule of the current
|
145
|
+
# The referenced folder can be a checkout of your your favourite SCM or
|
146
|
+
# even a git submodule of the current repository.
|
132
147
|
#
|
133
148
|
# Note that the `podspec` of the Pod file is expected to be in the
|
134
149
|
# folder.
|
135
150
|
#
|
136
151
|
#
|
137
|
-
# ### From a podspec in the root of a library
|
152
|
+
# ### From a podspec in the root of a library repository.
|
138
153
|
#
|
139
154
|
# Sometimes you may want to use the bleeding edge version of a Pod. Or a
|
140
155
|
# specific revision. If this is the case, you can specify that with your
|
141
156
|
# pod declaration.
|
142
157
|
#
|
143
|
-
# To use the `master` branch of the
|
158
|
+
# To use the `master` branch of the repository:
|
144
159
|
#
|
145
160
|
# pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git'
|
146
161
|
#
|
147
162
|
#
|
148
|
-
# To use a different branch of the
|
163
|
+
# To use a different branch of the repository:
|
149
164
|
#
|
150
165
|
# pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :branch => 'dev'
|
151
166
|
#
|
152
167
|
#
|
153
|
-
# To use a tag of the
|
168
|
+
# To use a tag of the repository:
|
154
169
|
#
|
155
170
|
# pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'
|
156
171
|
#
|
@@ -162,15 +177,16 @@ module Pod
|
|
162
177
|
# It is important to note, though, that this means that the version will
|
163
178
|
# have to satisfy any other dependencies on the Pod by other Pods.
|
164
179
|
#
|
165
|
-
# The `podspec` file is expected to be in the root of the
|
166
|
-
# library does not have a `podspec` file in its
|
167
|
-
# to use one of the approaches outlined in the
|
180
|
+
# The `podspec` file is expected to be in the root of the repository,
|
181
|
+
# if this library does not have a `podspec` file in its repository
|
182
|
+
# yet, you will have to use one of the approaches outlined in the
|
183
|
+
# sections below.
|
168
184
|
#
|
169
185
|
#
|
170
|
-
# ### From a podspec outside a spec
|
186
|
+
# ### From a podspec outside a spec repository, for a library without podspec.
|
171
187
|
#
|
172
188
|
# If a podspec is available from another source outside of the library’s
|
173
|
-
#
|
189
|
+
# repository. Consider, for instance, a podspec available via HTTP:
|
174
190
|
#
|
175
191
|
# pod 'JSONKit', :podspec => 'https://example.com/JSONKit.podspec'
|
176
192
|
#
|
@@ -212,7 +228,7 @@ module Pod
|
|
212
228
|
#
|
213
229
|
# @param [Hash {Symbol=>String}] options
|
214
230
|
# the path where to load the {Specification}. If not provided
|
215
|
-
# the first podspec in the directory of the
|
231
|
+
# the first podspec in the directory of the Podfile is used.
|
216
232
|
#
|
217
233
|
# @option options [String] :path
|
218
234
|
# the path of the podspec file
|
@@ -335,7 +351,7 @@ module Pod
|
|
335
351
|
# directory as the Podfile then that project will be used.
|
336
352
|
#
|
337
353
|
# It is possible also to specify whether the build settings of your
|
338
|
-
# custom build configurations should be
|
354
|
+
# custom build configurations should be modelled after the release or
|
339
355
|
# the debug presets. To do so you need to specify a hash where the name
|
340
356
|
# of each build configuration is associated to either `:release` or
|
341
357
|
# `:debug`.
|
@@ -493,7 +509,7 @@ module Pod
|
|
493
509
|
|
494
510
|
# @!group Sources
|
495
511
|
#
|
496
|
-
# The Podfile retrieves specs from a given list of sources (
|
512
|
+
# The Podfile retrieves specs from a given list of sources (repositories).
|
497
513
|
#
|
498
514
|
# Sources are __global__ and they are not stored per target definition.
|
499
515
|
|
@@ -509,10 +525,10 @@ module Pod
|
|
509
525
|
# higher version).
|
510
526
|
#
|
511
527
|
# @param [String] source
|
512
|
-
# The URL of a specs
|
528
|
+
# The URL of a specs repository.
|
513
529
|
#
|
514
|
-
# @example Specifying to first use the
|
515
|
-
# CocoaPods Master
|
530
|
+
# @example Specifying to first use the Artsy repository and then the
|
531
|
+
# CocoaPods Master Repository
|
516
532
|
#
|
517
533
|
# source 'https://github.com/artsy/Specs.git'
|
518
534
|
# source 'https://github.com/CocoaPods/Specs.git'
|
@@ -552,7 +568,7 @@ module Pod
|
|
552
568
|
#
|
553
569
|
# @example Specifying to use the `slather` and `cocoapods-keys` plugins.
|
554
570
|
#
|
555
|
-
# plugin 'cocoapods-keys', keyring
|
571
|
+
# plugin 'cocoapods-keys', :keyring => 'Eidolon'
|
556
572
|
# plugin 'slather'
|
557
573
|
#
|
558
574
|
# @return [void]
|
@@ -589,7 +605,7 @@ module Pod
|
|
589
605
|
# [`Pod::Hooks::InstallerRepresentation`](http://rubydoc.info/gems/cocoapods/Pod/Hooks/InstallerRepresentation/)
|
590
606
|
# as its only argument.
|
591
607
|
#
|
592
|
-
# @example
|
608
|
+
# @example Customising the `OTHER_LDFLAGS` of all targets
|
593
609
|
#
|
594
610
|
# post_install do |installer_representation|
|
595
611
|
# installer_representation.project.targets.each do |target|
|
@@ -468,6 +468,7 @@ module Pod
|
|
468
468
|
# @return [void]
|
469
469
|
#
|
470
470
|
def store_pod(name, *requirements)
|
471
|
+
return if parse_subspecs(name, requirements) # This parse method must be called first
|
471
472
|
parse_inhibit_warnings(name, requirements)
|
472
473
|
parse_configuration_whitelist(name, requirements)
|
473
474
|
|
@@ -712,7 +713,7 @@ module Pod
|
|
712
713
|
return requirements unless options.is_a?(Hash)
|
713
714
|
|
714
715
|
should_inhibit = options.delete(:inhibit_warnings)
|
715
|
-
inhibit_warnings_for_pod(name) if should_inhibit
|
716
|
+
inhibit_warnings_for_pod(Specification.root_name name) if should_inhibit
|
716
717
|
|
717
718
|
requirements.pop if options.empty?
|
718
719
|
end
|
@@ -743,6 +744,29 @@ module Pod
|
|
743
744
|
requirements.pop if options.empty?
|
744
745
|
end
|
745
746
|
|
747
|
+
# Removes :subspecs form the requirements list, and stores the pods
|
748
|
+
# with the given subspecs as dependencies.
|
749
|
+
#
|
750
|
+
# @param [String] name
|
751
|
+
#
|
752
|
+
# @param [Array] requirements
|
753
|
+
# If :subspecs is the only key in the hash, the hash
|
754
|
+
# should be destroyed because it confuses Gem::Dependency.
|
755
|
+
#
|
756
|
+
# @return [Boolean] Whether new subspecs were added
|
757
|
+
#
|
758
|
+
def parse_subspecs(name, requirements)
|
759
|
+
options = requirements.last
|
760
|
+
return false unless options.is_a?(Hash)
|
761
|
+
|
762
|
+
subspecs = options.delete(:subspecs)
|
763
|
+
subspecs.each do |ss|
|
764
|
+
store_pod("#{name}/#{ss}", *requirements.dup)
|
765
|
+
end if subspecs
|
766
|
+
requirements.pop if options.empty?
|
767
|
+
!subspecs.nil?
|
768
|
+
end
|
769
|
+
|
746
770
|
#-----------------------------------------------------------------------#
|
747
771
|
end
|
748
772
|
end
|
@@ -76,8 +76,10 @@ module Pod
|
|
76
76
|
# @param [String] name
|
77
77
|
# the name of the pod.
|
78
78
|
#
|
79
|
-
|
80
|
-
|
79
|
+
attribute :name,
|
80
|
+
:required => true,
|
81
|
+
:inherited => false,
|
82
|
+
:multi_platform => false
|
81
83
|
|
82
84
|
#------------------#
|
83
85
|
|
@@ -290,7 +292,7 @@ module Pod
|
|
290
292
|
# tag line of the Pod and there is no need to specify that a Pod is a
|
291
293
|
# library (they always are).
|
292
294
|
#
|
293
|
-
# The summary is expected to be properly
|
295
|
+
# The summary is expected to be properly capitalised and containing the
|
294
296
|
# correct punctuation.
|
295
297
|
#
|
296
298
|
# @example
|
@@ -351,7 +353,7 @@ module Pod
|
|
351
353
|
|
352
354
|
# @!method documentation_url=(documentation_url)
|
353
355
|
#
|
354
|
-
# An optional URL for the documentation of the Pod which will be
|
356
|
+
# An optional URL for the documentation of the Pod which will be honoured by
|
355
357
|
# CocoaPods web properties. Leaving it blank will default to a CocoaDocs
|
356
358
|
# generated URL for your library.
|
357
359
|
#
|
@@ -501,7 +503,7 @@ module Pod
|
|
501
503
|
#
|
502
504
|
# **Note:** this means that these libraries *have* to specify the
|
503
505
|
# deployment target in their specifications in order to have
|
504
|
-
# CocoaPods set the flag to `1` and ensure proper
|
506
|
+
# CocoaPods set the flag to `1` and ensure proper behaviour.
|
505
507
|
#
|
506
508
|
# * New libraries that *do* require ARC, but have a deployment target of
|
507
509
|
# < iOS 6.0 or OS X < 10.8:
|
@@ -794,8 +796,7 @@ module Pod
|
|
794
796
|
# @param [String] name
|
795
797
|
# the module name.
|
796
798
|
#
|
797
|
-
root_attribute :module_name
|
798
|
-
:inherited => true
|
799
|
+
root_attribute :module_name
|
799
800
|
|
800
801
|
#------------------#
|
801
802
|
|
@@ -1035,7 +1036,7 @@ module Pod
|
|
1035
1036
|
# attribute.
|
1036
1037
|
#
|
1037
1038
|
# The names of the bundles should at least include the name of the Pod
|
1038
|
-
# to
|
1039
|
+
# to minimise the chance of name collisions.
|
1039
1040
|
#
|
1040
1041
|
# To provide different resources per platform namespaced bundles *must*
|
1041
1042
|
# be used.
|
@@ -1072,7 +1073,7 @@ module Pod
|
|
1072
1073
|
# as there can be name collisions using the resources attribute.
|
1073
1074
|
# Moreover resources specified with this attribute are copied
|
1074
1075
|
# directly to the client target and therefore they are not
|
1075
|
-
#
|
1076
|
+
# optimised by Xcode.
|
1076
1077
|
#
|
1077
1078
|
# @example
|
1078
1079
|
#
|
@@ -1139,6 +1140,28 @@ module Pod
|
|
1139
1140
|
:file_patterns => true,
|
1140
1141
|
:singularize => true
|
1141
1142
|
|
1143
|
+
#------------------#
|
1144
|
+
|
1145
|
+
# @!method module_map=(module_map)
|
1146
|
+
#
|
1147
|
+
# The module map file that should be used when this pod is integrated as
|
1148
|
+
# a framework.
|
1149
|
+
#
|
1150
|
+
# ---
|
1151
|
+
#
|
1152
|
+
# By default, CocoaPods creates a module map file based upon the public
|
1153
|
+
# headers in a specification.
|
1154
|
+
#
|
1155
|
+
# @example
|
1156
|
+
#
|
1157
|
+
# spec.module_map = "source/module.modulemap"
|
1158
|
+
#
|
1159
|
+
# @param [String] module_map
|
1160
|
+
# the path to the module map file that should be used.
|
1161
|
+
#
|
1162
|
+
attribute :module_map,
|
1163
|
+
:root_only => true
|
1164
|
+
|
1142
1165
|
#-----------------------------------------------------------------------#
|
1143
1166
|
|
1144
1167
|
# @!group Subspecs
|
@@ -185,65 +185,7 @@ module Pod
|
|
185
185
|
def writer_singular_form
|
186
186
|
"#{name.to_s.singularize}=" if singularize?
|
187
187
|
end
|
188
|
-
|
189
|
-
#---------------------------------------------------------------------#
|
190
|
-
|
191
|
-
# @!group Values validation
|
192
|
-
|
193
|
-
# Validates the value for an attribute. This validation should be
|
194
|
-
# performed before the value is prepared or wrapped.
|
195
|
-
#
|
196
|
-
# @note The this is called before preparing the value.
|
197
|
-
#
|
198
|
-
# @raise If the type is not in the allowed list.
|
199
|
-
#
|
200
|
-
# @return [void]
|
201
|
-
#
|
202
|
-
def validate_type(value)
|
203
|
-
return if value.nil?
|
204
|
-
unless supported_types.any? { |klass| value.class == klass }
|
205
|
-
raise StandardError, "Non acceptable type `#{value.class}` for "\
|
206
|
-
"#{self}. Allowed values: `#{types.inspect}`"
|
207
|
-
end
|
208
|
-
end
|
209
|
-
|
210
|
-
# Validates a value before storing.
|
211
|
-
#
|
212
|
-
# @raise If a root only attribute is set in a subspec.
|
213
|
-
#
|
214
|
-
# @raise If a unknown key is added to a hash.
|
215
|
-
#
|
216
|
-
# @return [void]
|
217
|
-
#
|
218
|
-
def validate_for_writing(spec, value)
|
219
|
-
if root_only? && !spec.root?
|
220
|
-
raise StandardError, "Can't set `#{name}` attribute for " \
|
221
|
-
"subspecs (in `#{spec.name}`)."
|
222
|
-
end
|
223
|
-
|
224
|
-
if keys
|
225
|
-
value.keys.each do |key|
|
226
|
-
unless allowed_keys.include?(key)
|
227
|
-
raise StandardError, "Unknown key `#{key}` for "\
|
228
|
-
"#{self}. Allowed keys: `#{allowed_keys.inspect}`"
|
229
|
-
end
|
230
|
-
end
|
231
|
-
end
|
232
|
-
|
233
|
-
# @return [Array] the flattened list of the allowed keys for the
|
234
|
-
# hash of a given specification.
|
235
|
-
#
|
236
|
-
def allowed_keys
|
237
|
-
if keys.is_a?(Hash)
|
238
|
-
keys.keys.concat(keys.values.flatten.compact)
|
239
|
-
else
|
240
|
-
keys
|
241
|
-
end
|
242
|
-
end
|
243
|
-
end
|
244
188
|
end
|
245
|
-
|
246
|
-
#-----------------------------------------------------------------------#
|
247
189
|
end
|
248
190
|
end
|
249
191
|
end
|
@@ -46,7 +46,8 @@ module Pod
|
|
46
46
|
def lint
|
47
47
|
@results = Results.new
|
48
48
|
if spec
|
49
|
-
|
49
|
+
validate_root_name
|
50
|
+
check_required_attributes
|
50
51
|
run_root_validation_hooks
|
51
52
|
perform_all_specs_analysis
|
52
53
|
else
|
@@ -80,15 +81,32 @@ module Pod
|
|
80
81
|
|
81
82
|
# !@group Lint steps
|
82
83
|
|
83
|
-
# Checks that
|
84
|
+
# Checks that the spec's root name matches the filename.
|
84
85
|
#
|
85
86
|
# @return [void]
|
86
87
|
#
|
87
|
-
def
|
88
|
-
|
88
|
+
def validate_root_name
|
89
|
+
if spec.root.name && file
|
90
|
+
acceptable_names = [
|
91
|
+
spec.root.name + '.podspec',
|
92
|
+
spec.root.name + '.podspec.json',
|
93
|
+
]
|
94
|
+
names_match = acceptable_names.include?(file.basename.to_s)
|
95
|
+
unless names_match
|
96
|
+
results.add_error('name', 'The name of the spec should match the ' \
|
97
|
+
'name of the file.')
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
# Checks that every required attribute has a value.
|
103
|
+
#
|
104
|
+
# @return [void]
|
105
|
+
#
|
106
|
+
def check_required_attributes
|
107
|
+
attributes = DSL.attributes.values.select(&:required?)
|
89
108
|
attributes.each do |attr|
|
90
109
|
value = spec.send(attr.name)
|
91
|
-
next unless attr.required?
|
92
110
|
unless value && (!value.respond_to?(:empty?) || !value.empty?)
|
93
111
|
if attr.name == :license
|
94
112
|
results.add_warning('attributes', 'Missing required attribute ' \
|
@@ -146,7 +164,7 @@ module Pod
|
|
146
164
|
#
|
147
165
|
# @note Hooks are called only if there is a value for the attribute as
|
148
166
|
# required attributes are already checked by the
|
149
|
-
# {#
|
167
|
+
# {#check_required_attributes} step.
|
150
168
|
#
|
151
169
|
# @return [void]
|
152
170
|
#
|
@@ -164,34 +182,27 @@ module Pod
|
|
164
182
|
|
165
183
|
private
|
166
184
|
|
167
|
-
# @!group Root spec validation helpers
|
168
|
-
|
169
185
|
# Performs validations related to the `name` attribute.
|
170
186
|
#
|
171
|
-
def _validate_name(
|
172
|
-
if
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
]
|
177
|
-
names_match = acceptable_names.include?(file.basename.to_s)
|
178
|
-
unless names_match
|
179
|
-
results.add_error('name', 'The name of the spec should match the ' \
|
180
|
-
'name of the file.')
|
181
|
-
end
|
187
|
+
def _validate_name(name)
|
188
|
+
if name =~ /\//
|
189
|
+
results.add_error('name', 'The name of a spec should not contain ' \
|
190
|
+
'a slash.')
|
191
|
+
end
|
182
192
|
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
193
|
+
if name =~ /\s/
|
194
|
+
results.add_error('name', 'The name of a spec should not contain ' \
|
195
|
+
'whitespace.')
|
196
|
+
end
|
187
197
|
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
end
|
198
|
+
if name[0, 1] == '.'
|
199
|
+
results.add_error('name', 'The name of a spec should not begin' \
|
200
|
+
' with a period.')
|
192
201
|
end
|
193
202
|
end
|
194
203
|
|
204
|
+
# @!group Root spec validation helpers
|
205
|
+
|
195
206
|
def _validate_authors(a)
|
196
207
|
if a.is_a? Hash
|
197
208
|
if a == { 'YOUR NAME HERE' => 'YOUR EMAIL HERE' }
|
@@ -199,10 +210,6 @@ module Pod
|
|
199
210
|
'from default')
|
200
211
|
end
|
201
212
|
end
|
202
|
-
|
203
|
-
if a.empty?
|
204
|
-
results.add_error('authors', 'The authors are unspecified.')
|
205
|
-
end
|
206
213
|
end
|
207
214
|
|
208
215
|
def _validate_version(v)
|
@@ -57,7 +57,9 @@ module Pod
|
|
57
57
|
end
|
58
58
|
|
59
59
|
Pod::Specification::DSL.attributes.each do |_key, attribute|
|
60
|
-
|
60
|
+
declared_value = consumer.spec.attributes_hash[attribute.name.to_s]
|
61
|
+
validate_attribute_occurrence(attribute, declared_value)
|
62
|
+
validate_attribute_type(attribute, declared_value)
|
61
63
|
if attribute.name != :platforms
|
62
64
|
value = value_for_attribute(attribute)
|
63
65
|
validate_attribute_value(attribute, value) if value
|
@@ -106,6 +108,14 @@ module Pod
|
|
106
108
|
|
107
109
|
private
|
108
110
|
|
111
|
+
# Returns the own or inherited (if applicable) value of the
|
112
|
+
# given attribute.
|
113
|
+
#
|
114
|
+
# @param [Spec::DSL::Attribute] attribute
|
115
|
+
# The attribute.
|
116
|
+
#
|
117
|
+
# @return [mixed]
|
118
|
+
#
|
109
119
|
def value_for_attribute(attribute)
|
110
120
|
if attribute.root_only?
|
111
121
|
consumer.spec.send(attribute.name)
|
@@ -117,12 +127,27 @@ module Pod
|
|
117
127
|
nil
|
118
128
|
end
|
119
129
|
|
130
|
+
# Validates that root attributes don't occur in subspecs.
|
131
|
+
#
|
132
|
+
# @param [Spec::DSL::Attribute] attribute
|
133
|
+
# The attribute.
|
134
|
+
|
135
|
+
# @param [Object] value
|
136
|
+
# The value of the attribute.
|
137
|
+
#
|
138
|
+
def validate_attribute_occurrence(attribute, value)
|
139
|
+
if attribute.root_only? && !value.nil? && !consumer.spec.root?
|
140
|
+
results.add_error('attributes', "Can't set `#{attribute.name}` attribute for " \
|
141
|
+
"subspecs (in `#{consumer.spec.name}`).")
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
120
145
|
# Validates the given value for the given attribute.
|
121
146
|
#
|
122
147
|
# @param [Spec::DSL::Attribute] attribute
|
123
148
|
# The attribute.
|
124
149
|
#
|
125
|
-
# @param [
|
150
|
+
# @param [Object] value
|
126
151
|
# The value of the attribute.
|
127
152
|
#
|
128
153
|
def validate_attribute_value(attribute, value)
|
@@ -166,6 +166,13 @@ module Pod
|
|
166
166
|
deprecated || !deprecated_in_favor_of.nil?
|
167
167
|
end
|
168
168
|
|
169
|
+
# @return [String, Nil] The custom module map file of the Pod,
|
170
|
+
# if specified.
|
171
|
+
#
|
172
|
+
def module_map
|
173
|
+
attributes_hash['module_map']
|
174
|
+
end
|
175
|
+
|
169
176
|
#---------------------------------------------------------------------#
|
170
177
|
|
171
178
|
private
|
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.37.0.beta.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eloy Duran
|
@@ -9,62 +9,62 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-04-
|
12
|
+
date: 2015-04-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 3.2.15
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 3.2.15
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: nap
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - ~>
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 0.8.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - ~>
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 0.8.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: fuzzy_match
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - ~>
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: 2.0.4
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - ~>
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 2.0.4
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: bacon
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - ~>
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '1.1'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - ~>
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '1.1'
|
70
70
|
description: |-
|
@@ -78,6 +78,9 @@ executables: []
|
|
78
78
|
extensions: []
|
79
79
|
extra_rdoc_files: []
|
80
80
|
files:
|
81
|
+
- LICENSE
|
82
|
+
- README.md
|
83
|
+
- lib/cocoapods-core.rb
|
81
84
|
- lib/cocoapods-core/core_ui.rb
|
82
85
|
- lib/cocoapods-core/dependency.rb
|
83
86
|
- lib/cocoapods-core/gem_version.rb
|
@@ -86,37 +89,34 @@ files:
|
|
86
89
|
- lib/cocoapods-core/lockfile.rb
|
87
90
|
- lib/cocoapods-core/metrics.rb
|
88
91
|
- lib/cocoapods-core/platform.rb
|
92
|
+
- lib/cocoapods-core/podfile.rb
|
89
93
|
- lib/cocoapods-core/podfile/dsl.rb
|
90
94
|
- lib/cocoapods-core/podfile/target_definition.rb
|
91
|
-
- lib/cocoapods-core/podfile.rb
|
92
95
|
- lib/cocoapods-core/requirement.rb
|
96
|
+
- lib/cocoapods-core/source.rb
|
93
97
|
- lib/cocoapods-core/source/acceptor.rb
|
94
98
|
- lib/cocoapods-core/source/aggregate.rb
|
95
99
|
- lib/cocoapods-core/source/health_reporter.rb
|
96
|
-
- lib/cocoapods-core/
|
100
|
+
- lib/cocoapods-core/specification.rb
|
97
101
|
- lib/cocoapods-core/specification/consumer.rb
|
102
|
+
- lib/cocoapods-core/specification/dsl.rb
|
98
103
|
- lib/cocoapods-core/specification/dsl/attribute.rb
|
99
104
|
- lib/cocoapods-core/specification/dsl/attribute_support.rb
|
100
105
|
- lib/cocoapods-core/specification/dsl/deprecations.rb
|
101
106
|
- lib/cocoapods-core/specification/dsl/platform_proxy.rb
|
102
|
-
- lib/cocoapods-core/specification/dsl.rb
|
103
107
|
- lib/cocoapods-core/specification/json.rb
|
108
|
+
- lib/cocoapods-core/specification/linter.rb
|
104
109
|
- lib/cocoapods-core/specification/linter/analyzer.rb
|
105
110
|
- lib/cocoapods-core/specification/linter/result.rb
|
106
|
-
- lib/cocoapods-core/specification/linter.rb
|
107
111
|
- lib/cocoapods-core/specification/root_attribute_accessors.rb
|
108
|
-
- lib/cocoapods-core/specification/set/presenter.rb
|
109
112
|
- lib/cocoapods-core/specification/set.rb
|
110
|
-
- lib/cocoapods-core/specification.rb
|
113
|
+
- lib/cocoapods-core/specification/set/presenter.rb
|
111
114
|
- lib/cocoapods-core/standard_error.rb
|
115
|
+
- lib/cocoapods-core/vendor.rb
|
112
116
|
- lib/cocoapods-core/vendor/requirement.rb
|
113
117
|
- lib/cocoapods-core/vendor/version.rb
|
114
|
-
- lib/cocoapods-core/vendor.rb
|
115
118
|
- lib/cocoapods-core/version.rb
|
116
119
|
- lib/cocoapods-core/yaml_helper.rb
|
117
|
-
- lib/cocoapods-core.rb
|
118
|
-
- README.md
|
119
|
-
- LICENSE
|
120
120
|
homepage: https://github.com/CocoaPods/CocoaPods
|
121
121
|
licenses:
|
122
122
|
- MIT
|
@@ -127,17 +127,17 @@ require_paths:
|
|
127
127
|
- lib
|
128
128
|
required_ruby_version: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- -
|
130
|
+
- - ">="
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: 2.0.0
|
133
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
|
-
- -
|
135
|
+
- - ">="
|
136
136
|
- !ruby/object:Gem::Version
|
137
137
|
version: '0'
|
138
138
|
requirements: []
|
139
139
|
rubyforge_project:
|
140
|
-
rubygems_version: 2.
|
140
|
+
rubygems_version: 2.4.6
|
141
141
|
signing_key:
|
142
142
|
specification_version: 3
|
143
143
|
summary: The models of CocoaPods
|