cocoapods-core 0.33.1 → 0.34.0.rc1

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
  SHA1:
3
- metadata.gz: 2bcb2950b28f20e026b96f84fd961d4952fa62a8
4
- data.tar.gz: c7ee976b781166cae7270542b3d94da6a00fd57b
3
+ metadata.gz: 0c766e4a992ce00a3c5e383dfb5ce948ac9f2415
4
+ data.tar.gz: d651129ce2d932f29abe25534aac47e3207388d5
5
5
  SHA512:
6
- metadata.gz: 452e1a67f966f6d9b6288f0030d2d0da659e7e37fd6c58e1cd16bdb81a4a40164660076d876a0bbb40baab65bc1e403519a10f3ee4e02eb3601b2ae44a0f5ee3
7
- data.tar.gz: eeb446c15c3bcde0280e2f8a03dc7a8308cf69241871640730e98247921c29c775bb0b128af0f68faf6835972cda0e754a2b4972d5ef9e0e5a806c583adc67a4
6
+ metadata.gz: 50cfb988efe23be79ddcf97e5bcd4dee9b54d8b4237e5745b7702d673a3462b8a971cfb07bb3af946f773b94a04401a1703d577680ab41d6977c7097a75164fd
7
+ data.tar.gz: 788e5574fdf5c4ea4557e353c4a4b9957e3212ce396baae8972ddec0945cb15de1d1a5380a1c264910b8791de569831350ef18d8b05661d086669ddc1ffdb7d8
@@ -179,7 +179,7 @@ module Pod
179
179
  return false unless head? == other.head?
180
180
  return false unless external_source == other.external_source
181
181
 
182
- other.requirement.requirements.all? do | operator, version |
182
+ other.requirement.requirements.all? do | _operator, version |
183
183
  requirement.satisfied_by? Version.new(version)
184
184
  end
185
185
  end
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the cocoapods-core.
3
3
  #
4
- CORE_VERSION = '0.33.1' unless defined? Pod::CORE_VERSION
4
+ CORE_VERSION = '0.34.0.rc1' unless defined? Pod::CORE_VERSION
5
5
  end
@@ -42,7 +42,7 @@ module Pod
42
42
  begin
43
43
  url = get_actual_url(url)
44
44
  resp = perform_head_request(url)
45
- rescue SocketError
45
+ rescue SocketError, URI::InvalidURIError, REST::Error
46
46
  resp = nil
47
47
  end
48
48
 
@@ -60,16 +60,17 @@ module Pod
60
60
  def self.perform_head_request(url)
61
61
  require 'rest'
62
62
 
63
- resp = ::REST.head(url)
63
+ resp = ::REST.head(url, 'User-Agent' => USER_AGENT)
64
64
 
65
65
  if resp.status_code >= 400
66
- resp = ::REST.get(url)
66
+ resp = ::REST.get(url, 'User-Agent' => USER_AGENT)
67
67
  end
68
68
 
69
69
  resp
70
70
  end
71
71
 
72
72
  MAX_HTTP_REDIRECTS = 3
73
+ USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/538.43.40 (KHTML, like Gecko) Version/8.0 Safari/538.43.40'
73
74
 
74
75
  #-------------------------------------------------------------------------#
75
76
  end
@@ -38,7 +38,7 @@ module Pod
38
38
  def self.from_file(path)
39
39
  return nil unless path.exist?
40
40
  require 'yaml'
41
- hash = File.open(path) { |f| YAMLHelper.load(f) }
41
+ hash = YAMLHelper.load_file(path)
42
42
  unless hash && hash.is_a?(Hash)
43
43
  raise Informative, "Invalid Lockfile in `#{path}`"
44
44
  end
@@ -133,20 +133,21 @@ module Pod
133
133
  #
134
134
  # @raise If there is no version stored for the given name.
135
135
  #
136
- # @return [Dependency] the generated dependency.
136
+ # @return [Array<Dependency>] the generated dependency.
137
137
  #
138
- def dependency_to_lock_pod_named(name)
139
- dep = dependencies.find { |d| d.name == name || d.root_name == name }
140
- version = version(name)
141
-
142
- unless dep && version
143
- raise StandardError, "Attempt to lock the `#{name}` Pod without an " \
138
+ def dependencies_to_lock_pod_named(name)
139
+ deps = dependencies.select { |d| d.root_name == name }
140
+ if deps.empty?
141
+ raise StandardError, "Attempt to lock the `#{name}` Pod without a " \
144
142
  'known dependency.'
145
143
  end
146
144
 
147
- locked_dependency = dep.dup
148
- locked_dependency.specific_version = version
149
- locked_dependency
145
+ deps.map do |dep|
146
+ version = version(dep.name)
147
+ locked_dependency = dep.dup
148
+ locked_dependency.specific_version = version
149
+ locked_dependency
150
+ end
150
151
  end
151
152
 
152
153
  # @return [Version] The version of CocoaPods which generated this lockfile.
@@ -233,8 +234,8 @@ module Pod
233
234
  [:added, :changed, :removed, :unchanged].each { |k| result[k] = [] }
234
235
 
235
236
  installed_deps = dependencies.map do |dep|
236
- dependency_to_lock_pod_named(dep.name)
237
- end
237
+ dependencies_to_lock_pod_named(dep.root_name)
238
+ end.flatten
238
239
  all_dep_names = (dependencies + podfile.dependencies).map(&:name).uniq
239
240
  all_dep_names.each do |name|
240
241
  installed_dep = installed_deps.find { |d| d.name == name }
@@ -393,7 +394,7 @@ module Pod
393
394
  # @return [Array] the generated data.
394
395
  #
395
396
  def generate_dependencies_data(podfile)
396
- podfile.dependencies.map { |d| d.to_s }.sort
397
+ podfile.dependencies.map(&:to_s).sort
397
398
  end
398
399
 
399
400
  # Generates the information of the external sources.
@@ -431,7 +432,7 @@ module Pod
431
432
  #
432
433
  def generate_checksums(specs)
433
434
  checksums = {}
434
- specs.select { |spec| spec.defined_in_file }.each do |spec|
435
+ specs.select(&:defined_in_file).each do |spec|
435
436
  checksums[spec.root.name] = spec.checksum
436
437
  end
437
438
  checksums
@@ -89,6 +89,26 @@ module Pod
89
89
  #
90
90
  # ------
91
91
  #
92
+ # ### Build configurations
93
+ #
94
+ # *IMPORTANT*: the following syntax is tentative and might change without
95
+ # notice in future. This feature is released in this state due to
96
+ # the strong demand for it. You can use it but you might need to change
97
+ # your Podfile to use future versions of CocoaPods. Anyway a clear and
98
+ # simple upgrade path will be provided.
99
+ #
100
+ # By default dependencies are installed on all the build configurations
101
+ # of the target. For debug purposes or for other reasons, they can be
102
+ # enabled only on a given list of build configuration names.
103
+ #
104
+ # pod 'PonyDebugger', :configurations => ['Release', 'App Store']
105
+ #
106
+ # Alternatively you can white-list only a single build configuration.
107
+ #
108
+ # pod 'PonyDebugger', :configuration => ['Release']
109
+ #
110
+ # ------
111
+ #
92
112
  # Dependencies can be obtained also from external sources.
93
113
  #
94
114
  #
@@ -145,7 +165,7 @@ module Pod
145
165
  # @note This method allow a nil name and the raises to be more
146
166
  # informative.
147
167
  #
148
- # @note Support for inline podspecs has been deprecated.
168
+ # @note Support for inline podspecs has been deprecated.
149
169
  #
150
170
  # @return [void]
151
171
  #
@@ -448,6 +468,44 @@ module Pod
448
468
 
449
469
  #-----------------------------------------------------------------------#
450
470
 
471
+ # @!group Sources
472
+ #
473
+ # The Podfile retrieves specs from a given list of sources (repos).
474
+ #
475
+ # Sources are __global__ and they are not stored per target definition.
476
+
477
+ #-----------------------------------------------------------------------#
478
+
479
+ # Specifies the location of specs
480
+ #
481
+ # -----
482
+ #
483
+ # By default, the github Cocoapods/specs repository is used. Use this
484
+ # method to specify (an) other(s) source(s). The order of the sources is
485
+ # relevant. CocoaPods will use the highest version of a Pod of the first
486
+ # source which includes the Pod (regardless whether other sources have a
487
+ # higher version).
488
+ #
489
+ # @param [String] source
490
+ # The name of a specs repo. Previously specified by user
491
+ # via pod repo add command
492
+ #
493
+ # @example Specifying to use first `my_private_repo` and then the
494
+ # CocoaPods Master Repo
495
+ #
496
+ # source 'my_private_repo'
497
+ # source 'master'
498
+ #
499
+ # @return [void]
500
+ #
501
+ def source(source)
502
+ hash_sources = get_hash_value('sources') || []
503
+ hash_sources << source
504
+ set_hash_value('sources', hash_sources.uniq)
505
+ end
506
+
507
+ #-----------------------------------------------------------------------#
508
+
451
509
  # @!group Hooks
452
510
  # The Podfile provides hooks that will be called during the
453
511
  # installation process.
@@ -460,7 +518,7 @@ module Pod
460
518
  # been downloaded but before they are installed.
461
519
  #
462
520
  # It receives the
463
- # [`Pod::Hooks::InstallerRepresentation`](http://docs.cocoapods.org/cocoapods/pod/hooks/installerrepresentation/)
521
+ # [`Pod::Hooks::InstallerRepresentation`](http://rubydoc.info/gems/cocoapods/Pod/Hooks/InstallerRepresentation/)
464
522
  # as its only argument.
465
523
  #
466
524
  # @example Defining a pre install hook in a Podfile.
@@ -479,7 +537,7 @@ module Pod
479
537
  # to perform.
480
538
  #
481
539
  # It receives the
482
- # [`Pod::Hooks::InstallerRepresentation`](http://docs.cocoapods.org/cocoapods/pod/hooks/installerrepresentation/)
540
+ # [`Pod::Hooks::InstallerRepresentation`](http://rubydoc.info/gems/cocoapods/Pod/Hooks/InstallerRepresentation/)
483
541
  # as its only argument.
484
542
  #
485
543
  # @example Customizing the `OTHER_LDFLAGS` of all targets
@@ -316,6 +316,67 @@ module Pod
316
316
 
317
317
  #--------------------------------------#
318
318
 
319
+ # Whether a specific pod should be linked to the target when building for
320
+ # a specific configuration. If a pod has not been explicitly whitelisted
321
+ # for any configuration, it is implicitly whitelisted.
322
+ #
323
+ # @param [String] pod_name
324
+ # The pod that we're querying about inclusion for in the given
325
+ # configuration.
326
+ #
327
+ # @param [String] configuration_name
328
+ # The configuration that we're querying about inclusion of the
329
+ # pod in.
330
+ #
331
+ # @note Build configurations are case compared case-insensitively in
332
+ # CocoaPods.
333
+ #
334
+ # @return [Bool] flag
335
+ # Whether the pod should be linked with the target
336
+ #
337
+ def pod_whitelisted_for_configuration?(pod_name, configuration_name)
338
+ found = false
339
+ configuration_pod_whitelist.each do |configuration, pods|
340
+ if pods.include?(pod_name)
341
+ found = true
342
+ if configuration.downcase == configuration_name.to_s.downcase
343
+ return true
344
+ end
345
+ end
346
+ end
347
+ !found
348
+ end
349
+
350
+ # Whitelists a pod for a specific configuration. If a pod is whitelisted
351
+ # for any configuration, it will only be linked with the target in the
352
+ # configuration(s) specified. If it is not whitelisted for any
353
+ # configuration, it is implicitly included in all configurations.
354
+ #
355
+ # @param [String] pod_name
356
+ # The pod that should be included in the given configuration.
357
+ #
358
+ # @param [String, Symbol] configuration_name
359
+ # The configuration that the pod should be included in
360
+ #
361
+ # @note Build configurations are stored as a String.
362
+ #
363
+ # @return [void]
364
+ #
365
+ def whitelist_pod_for_configuration(pod_name, configuration_name)
366
+ configuration_name = configuration_name.to_s
367
+ configuration_pod_whitelist[configuration_name] ||= []
368
+ configuration_pod_whitelist[configuration_name] << pod_name
369
+ end
370
+
371
+ # @return [Array<String>] unique list of all configurations for which
372
+ # pods have been whitelisted.
373
+ #
374
+ def all_whitelisted_configurations
375
+ configuration_pod_whitelist.keys.uniq
376
+ end
377
+
378
+ #--------------------------------------#
379
+
319
380
  # @return [Platform] the platform of the target definition.
320
381
  #
321
382
  # @note If no deployment target has been specified a default value is
@@ -384,6 +445,7 @@ module Pod
384
445
  #
385
446
  def store_pod(name, *requirements)
386
447
  parse_inhibit_warnings(name, requirements)
448
+ parse_configuration_whitelist(name, requirements)
387
449
 
388
450
  if requirements && !requirements.empty?
389
451
  pod = { name => requirements }
@@ -444,6 +506,7 @@ module Pod
444
506
  build_configurations
445
507
  dependencies
446
508
  children
509
+ configuration_pod_whitelist
447
510
  ).freeze
448
511
 
449
512
  # @return [Hash] The hash representation of the target definition.
@@ -537,6 +600,16 @@ module Pod
537
600
  get_hash_value('inhibit_warnings', {})
538
601
  end
539
602
 
603
+ # Returns the configuration_pod_whitelist hash
604
+ #
605
+ # @return [Hash<String, Array>] Hash with configuration name as key,
606
+ # array of pod names to be linked in builds with that configuration
607
+ # as value.
608
+ #
609
+ def configuration_pod_whitelist
610
+ get_hash_value('configuration_pod_whitelist', {})
611
+ end
612
+
540
613
  # @return [Array<Dependency>] The dependencies specified by the user for
541
614
  # this target definition.
542
615
  #
@@ -558,7 +631,7 @@ module Pod
558
631
  # @note The podspec directive is intended include the dependencies of a
559
632
  # spec in the project where it is developed. For this reason the
560
633
  # spec, or any of it subspecs, cannot be included in the
561
- # dependencies. Otherwise it would generate an chicken-and-egg
634
+ # dependencies. Otherwise it would generate a chicken-and-egg
562
635
  # problem.
563
636
  #
564
637
  def podspec_dependencies
@@ -619,6 +692,32 @@ module Pod
619
692
  requirements.pop if options.empty?
620
693
  end
621
694
 
695
+ # Removes :configurations or :configuration from the requirements list,
696
+ # and adds the pod's name into the internal hash for which pods should be
697
+ # linked in which configuration only.
698
+ #
699
+ # @param [String] pod name
700
+ #
701
+ # @param [Array] requirements
702
+ # If :configurations is the only key in the hash, the hash
703
+ # should be destroyed because it confuses Gem::Dependency.
704
+ #
705
+ # @return [void]
706
+ #
707
+ def parse_configuration_whitelist(name, requirements)
708
+ options = requirements.last
709
+ return requirements unless options.is_a?(Hash)
710
+
711
+ configurations = options.delete(:configurations)
712
+ configurations ||= options.delete(:configuration)
713
+ if configurations
714
+ Array(configurations).each do |configuration|
715
+ whitelist_pod_for_configuration(name, configuration)
716
+ end
717
+ end
718
+ requirements.pop if options.empty?
719
+ end
720
+
622
721
  #-----------------------------------------------------------------------#
623
722
  end
624
723
  end
@@ -95,6 +95,12 @@ module Pod
95
95
 
96
96
  # @!group Attributes
97
97
 
98
+ # @return [Array<String>] The name of the sources.
99
+ #
100
+ def sources
101
+ get_hash_value('sources') || []
102
+ end
103
+
98
104
  # @return [String] the path of the workspace if specified by the user.
99
105
  #
100
106
  def workspace_path
@@ -173,6 +179,7 @@ module Pod
173
179
  HASH_KEYS = %w(
174
180
  target_definitions
175
181
  workspace
182
+ sources
176
183
  generate_bridge_support
177
184
  set_arc_compatibility_flag
178
185
  ).freeze
@@ -239,7 +246,7 @@ module Pod
239
246
  # rubocop:disable Eval
240
247
  eval(string, nil, path.to_s)
241
248
  # rubocop:enable Eval
242
- rescue Exception => e
249
+ rescue => e
243
250
  message = "Invalid `#{path.basename}` file: #{e.message}"
244
251
  raise DSLError.new(message, path, e.backtrace)
245
252
  end
@@ -264,7 +271,7 @@ module Pod
264
271
  if string.respond_to?(:encoding) && string.encoding.name != 'UTF-8'
265
272
  string.encode!('UTF-8')
266
273
  end
267
- hash = YAMLHelper.load(string)
274
+ hash = YAMLHelper.load_string(string)
268
275
  from_hash(hash, path)
269
276
  end
270
277
 
@@ -45,7 +45,7 @@ module Pod
45
45
  new('>= 0')
46
46
  end
47
47
 
48
- # Parses the given object returning an tuple where the first entry is an
48
+ # Parses the given object returning a tuple where the first entry is an
49
49
  # operator and the second a version. If not operator is provided it
50
50
  # defaults to `=`.
51
51
  #
@@ -33,7 +33,7 @@ module Pod
33
33
  # @param [String] name
34
34
  # The name of the Pod.
35
35
  #
36
- def versions(name)
36
+ def versions(_name)
37
37
  raise StandardError, 'Abstract method.'
38
38
  end
39
39
 
@@ -45,7 +45,7 @@ module Pod
45
45
  # @param [String] version
46
46
  # The version of the Pod.
47
47
  #
48
- def specification(name, version)
48
+ def specification(_name, _version)
49
49
  raise StandardError, 'Abstract method.'
50
50
  end
51
51
 
@@ -58,7 +58,7 @@ module Pod
58
58
  # @param [String] version
59
59
  # the version of the Pod.
60
60
  #
61
- def specification_contents(name, version)
61
+ def specification_contents(_name, _version)
62
62
  raise StandardError, 'Abstract method.'
63
63
  end
64
64
 
@@ -3,38 +3,38 @@ module Pod
3
3
  # The Aggregate manages a directory of sources repositories.
4
4
  #
5
5
  class Aggregate
6
- # @return [Pathname] the directory were the repositories are stored.
6
+ # @return [Array<Pathname>] The ordered list of source directories.
7
7
  #
8
- attr_reader :repos_dir
8
+ attr_reader :directories
9
9
 
10
- # @param [Pathname] repos_dir @see repos_dir.
10
+ # @param [Array<Pathname>] repos_dirs @see directories
11
11
  #
12
- def initialize(repos_dir)
13
- @repos_dir = repos_dir
12
+ def initialize(repos_dirs)
13
+ @directories = Array(repos_dirs)
14
14
  end
15
15
 
16
- # @return [Array<Source>] all the sources.
16
+ # @return [Array<Source>] The ordered list of the sources.
17
17
  #
18
- def all
19
- @sources ||= dirs.map { |repo| Source.new(repo) }.sort_by(&:name)
18
+ def sources
19
+ @sources ||= directories.map { |repo| Source.new(repo) }
20
20
  end
21
21
 
22
22
  # @return [Array<String>] the names of all the pods available.
23
23
  #
24
24
  def all_pods
25
- all.map(&:pods).flatten.uniq
25
+ sources.map(&:pods).flatten.uniq
26
26
  end
27
27
 
28
- # @return [Array<Set>] the sets for all the pods available.
28
+ # @return [Array<Set>] The sets for all the pods available.
29
29
  #
30
30
  # @note Implementation detail: The sources don't cache their values
31
31
  # because they might change in response to an update. Therefore
32
- # this method to prevent slowness caches the values before
32
+ # this method to preserve performance caches the values before
33
33
  # processing them.
34
34
  #
35
35
  def all_sets
36
36
  pods_by_source = {}
37
- all.each do |source|
37
+ sources.each do |source|
38
38
  pods_by_source[source] = source.pods
39
39
  end
40
40
  sources = pods_by_source.keys
@@ -47,20 +47,6 @@ module Pod
47
47
  end
48
48
  end
49
49
 
50
- # @return [Array<Pathname>] the directories where the sources are stored.
51
- #
52
- # @note If the repos dir doesn't exits this will return an empty array.
53
- #
54
- # @raise If the repos dir doesn't exits.
55
- #
56
- def dirs
57
- if repos_dir.exist?
58
- repos_dir.children.select(&:directory?)
59
- else
60
- []
61
- end
62
- end
63
-
64
50
  # Returns a set configured with the source which contains the highest
65
51
  # version in the aggregate.
66
52
  #
@@ -73,7 +59,7 @@ module Pod
73
59
  def representative_set(name)
74
60
  representative_source = nil
75
61
  highest_version = nil
76
- all.each do |source|
62
+ sources.each do |source|
77
63
  source_versions = source.versions(name)
78
64
  if source_versions
79
65
  source_version = source_versions.first
@@ -100,9 +86,9 @@ module Pod
100
86
  # @see Source#search
101
87
  #
102
88
  def search(dependency)
103
- sources = all.select { |s| s.search(dependency) }
104
- unless sources.empty?
105
- Specification::Set.new(dependency.root_name, sources)
89
+ found_sources = sources.select { |s| s.search(dependency) }
90
+ unless found_sources.empty?
91
+ Specification::Set.new(dependency.root_name, found_sources)
106
92
  end
107
93
  end
108
94
 
@@ -117,7 +103,7 @@ module Pod
117
103
  def search_by_name(query, full_text_search = false)
118
104
  pods_by_source = {}
119
105
  result = []
120
- all.each do |s|
106
+ sources.each do |s|
121
107
  source_pods = s.search_by_name(query, full_text_search)
122
108
  pods_by_source[s] = source_pods.map(&:name)
123
109
  end
@@ -180,8 +180,8 @@ module Pod
180
180
  def value_for_attribute(attr_name)
181
181
  attr = Specification::DSL.attributes[attr_name]
182
182
  value = value_with_inheritance(spec, attr)
183
- value ||= attr.default(platform_name)
184
- value ||= attr.container.new if attr.container
183
+ value = attr.default(platform_name) if value.nil?
184
+ value = attr.container.new if value.nil? && attr.container
185
185
  value
186
186
  end
187
187
 
@@ -3,8 +3,8 @@ module Pod
3
3
  module DSL
4
4
  # @return [Array<Attribute>] The attributes of the class.
5
5
  #
6
- def self.attributes
7
- @attributes
6
+ class << self
7
+ attr_reader :attributes
8
8
  end
9
9
 
10
10
  # This module provides support for storing the runtime information of the
@@ -14,7 +14,7 @@ module Pod
14
14
  # Defines a root attribute for the extended class.
15
15
  #
16
16
  # Root attributes make sense only in root specification, they never are
17
- # multiplatform, they don't have inheritance, and they never have a
17
+ # multi-platform, they don't have inheritance, and they never have a
18
18
  # default value.
19
19
  #
20
20
  # @param [String] name
@@ -33,7 +33,7 @@ module Pod
33
33
 
34
34
  # Defines an attribute for the extended class.
35
35
  #
36
- # Regular attributes in general support inheritance and multi platform
36
+ # Regular attributes in general support inheritance and multi-platform
37
37
  # values, so resolving them for a given specification is not trivial.
38
38
  #
39
39
  # @param [String] name
@@ -9,43 +9,6 @@ module Pod
9
9
  CoreUI.warn "[#{self}] `preferred_dependency` has been renamed "\
10
10
  'to `default_subspecs`.'
11
11
  end
12
-
13
- def singleton_method_added(method)
14
- if method == :header_mappings
15
- raise Informative, "[#{self}] The use of the `header_mappings` " \
16
- "hook has been deprecated.\n Use the `header_dir` and the " \
17
- '`header_mappings_dir` attributes.'
18
-
19
- elsif method == :copy_header_mapping
20
- raise Informative, "[#{self}] The use of the " \
21
- "`copy_header_mapping` hook has been deprecated.\nUse" \
22
- 'the `header_dir` and the `header_mappings_dir` attributes.'
23
- end
24
- end
25
-
26
- def documentation=(value)
27
- CoreUI.warn "[#{self}] The `documentation` DSL directive of the " \
28
- 'podspec format has been deprecated.'
29
- end
30
-
31
- def clean_paths=(value)
32
- raise Informative, "[#{self}] Clean paths are deprecated. " \
33
- 'CocoaPods now cleans unused files by default. Use the ' \
34
- '`preserve_paths` attribute if needed.'
35
- end
36
-
37
- DEPRECATED_METHODS = [
38
- :part_of_dependency=,
39
- :part_of=,
40
- :exclude_header_search_paths=,
41
- ]
42
-
43
- DEPRECATED_METHODS.each do |method|
44
- define_method method do |value|
45
- raise Informative, "[#{self}] Attribute "\
46
- "`#{method.to_s[0..-2]}` has been deprecated."
47
- end
48
- end
49
12
  end
50
13
  end
51
14
  end