xcoed 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/xcoed.rb +43 -10
- data/lib/xcoed/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7563f20cc19d31b16a60616f67abeeb309950c1248414ea97152e9c58b4843cf
|
4
|
+
data.tar.gz: 4db51e5a4875d7c064a58b8c088f31cf8e9ad381d0e4bd13aa65624a601f4708
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f4742fe50f8159cb2076f27f5610ced3c92eabde4a6822b61810606aba7413c0c50cb8f34200c6dd80be2e33ce608e23670dcc77bb87a623eff8b31e5d37963
|
7
|
+
data.tar.gz: 76742a8b23e96800e5f73b8c8324e9b2755c986b62119d4171e08656fde6cb030c32771a524344c362d52c7eedd5d223c2fc806ba41bacc06f0a8ca4708f814e
|
data/lib/xcoed.rb
CHANGED
@@ -9,15 +9,7 @@ module Xcoed
|
|
9
9
|
|
10
10
|
packages = {}
|
11
11
|
package_json['dependencies'].each do |dependency|
|
12
|
-
|
13
|
-
package_ref = Xcodeproj::Project::Object::XCRemoteSwiftPackageReference.new(project, project.generate_uuid)
|
14
|
-
package_ref.repositoryURL = dependency['url']
|
15
|
-
package_ref.requirement = {
|
16
|
-
'kind' => 'versionRange',
|
17
|
-
'minimumVersion' => dependency['requirement']['range'][0]['lowerBound'],
|
18
|
-
'maximumVersion' => dependency['requirement']['range'][0]['upperBound']
|
19
|
-
}
|
20
|
-
project.root_object.package_references << package_ref
|
12
|
+
package_ref = add_swift_package_reference(project, dependency)
|
21
13
|
packages[dependency['name']] = package_ref
|
22
14
|
end
|
23
15
|
|
@@ -31,11 +23,52 @@ module Xcoed
|
|
31
23
|
raise "Product `#{by_name}` not found in package references" if package_ref.nil?
|
32
24
|
|
33
25
|
package_dep = Xcodeproj::Project::Object::XCSwiftPackageProductDependency.new(project, project.generate_uuid)
|
34
|
-
package_dep.package = package_ref
|
35
26
|
package_dep.product_name = by_name
|
36
27
|
|
28
|
+
if package_ref.kind_of?(Xcodeproj::Project::Object::XCRemoteSwiftPackageReference)
|
29
|
+
package_dep.package = package_ref
|
30
|
+
end
|
31
|
+
|
37
32
|
target_ref.package_product_dependencies << package_dep
|
38
33
|
end
|
39
34
|
end
|
40
35
|
end
|
36
|
+
|
37
|
+
def self.add_swift_package_reference(project, dependency)
|
38
|
+
STDERR.puts dependency
|
39
|
+
requirement_type = dependency['requirement'].keys.first
|
40
|
+
case requirement_type
|
41
|
+
when 'range'
|
42
|
+
add_remote_swift_package_reference(project, dependency)
|
43
|
+
when 'localPackage'
|
44
|
+
add_local_swift_package_reference(project, dependency)
|
45
|
+
else
|
46
|
+
raise "Unsupported package requirement `#{requirement_type}`"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.add_remote_swift_package_reference(project, dependency)
|
51
|
+
package_ref = Xcodeproj::Project::Object::XCRemoteSwiftPackageReference.new(project, project.generate_uuid)
|
52
|
+
package_ref.repositoryURL = dependency['url']
|
53
|
+
package_ref.requirement = {
|
54
|
+
'kind' => 'versionRange',
|
55
|
+
'minimumVersion' => dependency['requirement']['range'][0]['lowerBound'],
|
56
|
+
'maximumVersion' => dependency['requirement']['range'][0]['upperBound']
|
57
|
+
}
|
58
|
+
project.root_object.package_references << package_ref
|
59
|
+
package_ref
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.add_local_swift_package_reference(project, dependency)
|
63
|
+
local_packages_group = local_packages_group(project)
|
64
|
+
package_ref = Xcodeproj::Project::Object::FileReferencesFactory.new_reference(local_packages_group, dependency['url'], :group)
|
65
|
+
package_ref.last_known_file_type = 'folder'
|
66
|
+
package_ref
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.local_packages_group(project)
|
70
|
+
name = 'Local Packages'
|
71
|
+
project.main_group.groups.select { |g| g.name == name }.first ||
|
72
|
+
project.main_group.new_group(name)
|
73
|
+
end
|
41
74
|
end
|
data/lib/xcoed/version.rb
CHANGED