cocoapods 0.13.0 → 0.14.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +97 -16
- data/lib/cocoapods.rb +2 -1
- data/lib/cocoapods/command.rb +46 -19
- data/lib/cocoapods/command/install.rb +11 -12
- data/lib/cocoapods/command/linter.rb +3 -1
- data/lib/cocoapods/command/outdated.rb +51 -0
- data/lib/cocoapods/command/push.rb +6 -6
- data/lib/cocoapods/command/setup.rb +1 -1
- data/lib/cocoapods/command/spec.rb +1 -1
- data/lib/cocoapods/command/update.rb +21 -0
- data/lib/cocoapods/config.rb +14 -1
- data/lib/cocoapods/dependency.rb +56 -13
- data/lib/cocoapods/downloader/git.rb +1 -0
- data/lib/cocoapods/downloader/subversion.rb +6 -2
- data/lib/cocoapods/installer.rb +48 -64
- data/lib/cocoapods/local_pod.rb +50 -12
- data/lib/cocoapods/lockfile.rb +267 -0
- data/lib/cocoapods/podfile.rb +4 -0
- data/lib/cocoapods/project.rb +9 -4
- data/lib/cocoapods/resolver.rb +164 -20
- data/lib/cocoapods/specification.rb +11 -13
- data/lib/cocoapods/specification/set.rb +10 -13
- data/lib/cocoapods/version.rb +19 -2
- metadata +7 -4
@@ -174,6 +174,12 @@ module Pod
|
|
174
174
|
end
|
175
175
|
attr_writer :name
|
176
176
|
|
177
|
+
# @return [String] The name of the pod.
|
178
|
+
#
|
179
|
+
def pod_name
|
180
|
+
top_level_parent.name
|
181
|
+
end
|
182
|
+
|
177
183
|
### Attributes that return the first value defined in the chain
|
178
184
|
|
179
185
|
def platform
|
@@ -387,14 +393,14 @@ module Pod
|
|
387
393
|
# Remove this spec's name from the beginning of the name we’re looking for
|
388
394
|
# and take the first component from the remainder, which is the spec we need
|
389
395
|
# to find now.
|
390
|
-
remainder = name[self.name.size+1..-1]
|
391
|
-
|
396
|
+
remainder = name[self.name.size+1..-1]
|
397
|
+
raise Informative, "Unable to find a specification named `#{name}' in `#{pod_name}'." unless remainder
|
398
|
+
subspec_name = remainder.split('/').shift
|
392
399
|
subspec = subspecs.find { |s| s.name == "#{self.name}/#{subspec_name}" }
|
400
|
+
raise Informative, "Unable to find a specification named `#{name}' in `#{pod_name}'." unless subspec
|
393
401
|
# If this was the last component in the name, then return the subspec,
|
394
402
|
# otherwise we recursively keep calling subspec_by_name until we reach the
|
395
403
|
# last one and return that
|
396
|
-
|
397
|
-
raise Informative, "Unable to find a subspec named `#{name}'." unless subspec
|
398
404
|
remainder.empty? ? subspec : subspec.subspec_by_name(name)
|
399
405
|
end
|
400
406
|
|
@@ -402,16 +408,8 @@ module Pod
|
|
402
408
|
!source.nil? && !source[:local].nil?
|
403
409
|
end
|
404
410
|
|
405
|
-
def local_path
|
406
|
-
Pathname.new(File.expand_path(source[:local]))
|
407
|
-
end
|
408
|
-
|
409
411
|
def pod_destroot
|
410
|
-
|
411
|
-
local_path
|
412
|
-
else
|
413
|
-
config.project_pods_root + top_level_parent.name
|
414
|
-
end
|
412
|
+
config.project_pods_root + top_level_parent.name
|
415
413
|
end
|
416
414
|
|
417
415
|
def self.pattern_list(patterns)
|
@@ -8,22 +8,18 @@ module Pod
|
|
8
8
|
def initialize(pod_dir)
|
9
9
|
@pod_dir = pod_dir
|
10
10
|
@required_by = []
|
11
|
+
@dependencies = []
|
11
12
|
end
|
12
13
|
|
13
|
-
def required_by(
|
14
|
-
# Skip subspecs because the can't require a different version of the top level parent
|
15
|
-
return if !specification.podfile? && specification.top_level_parent.name == name
|
16
|
-
|
17
|
-
dependency = specification.dependency_by_top_level_spec_name(name)
|
18
|
-
# TODO we don’t actually do anything in our Version subclass. Maybe we should just remove that.
|
14
|
+
def required_by(dependency, dependent_name)
|
19
15
|
unless @required_by.empty? || dependency.requirement.satisfied_by?(Gem::Version.new(required_version.to_s))
|
20
|
-
|
21
|
-
raise Informative, "#{specification} tries to activate `#{dependency}', " \
|
16
|
+
raise Informative, "#{dependent_name} tries to activate `#{dependency}', " \
|
22
17
|
"but already activated version `#{required_version}' " \
|
23
18
|
"by #{@required_by.to_sentence}."
|
24
19
|
end
|
25
20
|
@specification = nil
|
26
|
-
@required_by <<
|
21
|
+
@required_by << dependent_name
|
22
|
+
@dependencies << dependency
|
27
23
|
end
|
28
24
|
|
29
25
|
def specification_by_name(name)
|
@@ -31,8 +27,8 @@ module Pod
|
|
31
27
|
end
|
32
28
|
|
33
29
|
def dependency
|
34
|
-
@
|
35
|
-
previous.merge(
|
30
|
+
@dependencies.inject(Dependency.new(name)) do |previous, dependency|
|
31
|
+
previous.merge(dependency.to_top_level_spec_dependency)
|
36
32
|
end
|
37
33
|
end
|
38
34
|
|
@@ -76,6 +72,7 @@ module Pod
|
|
76
72
|
def initialize(specification)
|
77
73
|
@specification = specification
|
78
74
|
@required_by = []
|
75
|
+
@dependencies = []
|
79
76
|
end
|
80
77
|
|
81
78
|
def name
|
@@ -86,9 +83,9 @@ module Pod
|
|
86
83
|
self.class === other && name == other.name
|
87
84
|
end
|
88
85
|
|
89
|
-
def required_by(
|
86
|
+
def required_by(dependency, dependent_name)
|
90
87
|
before = @specification
|
91
|
-
super(
|
88
|
+
super(dependency, dependent_name)
|
92
89
|
ensure
|
93
90
|
@specification = before
|
94
91
|
end
|
data/lib/cocoapods/version.rb
CHANGED
@@ -1,9 +1,26 @@
|
|
1
|
-
|
2
|
-
|
3
1
|
module Pod
|
4
2
|
class Version < Gem::Version
|
3
|
+
|
4
|
+
# @returns A Version described by its #to_s method.
|
5
|
+
#
|
6
|
+
# @TODO The `from' part of the regexp should be remove before 1.0.0.
|
7
|
+
#
|
8
|
+
def self.from_string(string)
|
9
|
+
if string =~ /HEAD (based on|from) (.*)/
|
10
|
+
v = Version.new($2)
|
11
|
+
v.head = true
|
12
|
+
v
|
13
|
+
else
|
14
|
+
Version.new(string)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
5
18
|
attr_accessor :head
|
6
19
|
alias_method :head?, :head
|
20
|
+
|
21
|
+
def to_s
|
22
|
+
head? ? "HEAD based on #{super}" : super
|
23
|
+
end
|
7
24
|
end
|
8
25
|
end
|
9
26
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.14.0.rc1
|
5
|
+
prerelease: 7
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Eloy Duran
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -191,6 +191,7 @@ files:
|
|
191
191
|
- lib/cocoapods/command/install.rb
|
192
192
|
- lib/cocoapods/command/linter.rb
|
193
193
|
- lib/cocoapods/command/list.rb
|
194
|
+
- lib/cocoapods/command/outdated.rb
|
194
195
|
- lib/cocoapods/command/presenter/cocoa_pod.rb
|
195
196
|
- lib/cocoapods/command/presenter.rb
|
196
197
|
- lib/cocoapods/command/push.rb
|
@@ -198,6 +199,7 @@ files:
|
|
198
199
|
- lib/cocoapods/command/search.rb
|
199
200
|
- lib/cocoapods/command/setup.rb
|
200
201
|
- lib/cocoapods/command/spec.rb
|
202
|
+
- lib/cocoapods/command/update.rb
|
201
203
|
- lib/cocoapods/command.rb
|
202
204
|
- lib/cocoapods/config.rb
|
203
205
|
- lib/cocoapods/dependency.rb
|
@@ -219,6 +221,7 @@ files:
|
|
219
221
|
- lib/cocoapods/installer/user_project_integrator.rb
|
220
222
|
- lib/cocoapods/installer.rb
|
221
223
|
- lib/cocoapods/local_pod.rb
|
224
|
+
- lib/cocoapods/lockfile.rb
|
222
225
|
- lib/cocoapods/open_uri.rb
|
223
226
|
- lib/cocoapods/platform.rb
|
224
227
|
- lib/cocoapods/podfile.rb
|
@@ -250,7 +253,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
250
253
|
version: '0'
|
251
254
|
segments:
|
252
255
|
- 0
|
253
|
-
hash:
|
256
|
+
hash: 202149505213323645
|
254
257
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
255
258
|
none: false
|
256
259
|
requirements:
|