xcoed 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/xcoed.rb +43 -10
  3. data/lib/xcoed/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ca2a14ee26b4f0cc547b5035c1af7ac2d10b8ce005e45d73d996b3e981047d83
4
- data.tar.gz: 97a00b24719c18140e30d4a4db8bfb7b4f8639be76a47fa06287283798b06337
3
+ metadata.gz: 7563f20cc19d31b16a60616f67abeeb309950c1248414ea97152e9c58b4843cf
4
+ data.tar.gz: 4db51e5a4875d7c064a58b8c088f31cf8e9ad381d0e4bd13aa65624a601f4708
5
5
  SHA512:
6
- metadata.gz: b8e8a6aafcdc1ab7eafc217da6942c0170ce65903a9b916b75ec56ecdfff55bd68919cf82a6d95593cf3eb3e72bf57e9adb31fcdc14d3d1c541edfe4426479fd
7
- data.tar.gz: 79a7ca8c776c91984ff80b65a5b741faf65f9423a2195c559789256582938bfcff00b54e80333544dd575ba9faddf6adee649dbe8aac350bb3752bd169dcfe5d
6
+ metadata.gz: 9f4742fe50f8159cb2076f27f5610ced3c92eabde4a6822b61810606aba7413c0c50cb8f34200c6dd80be2e33ce608e23670dcc77bb87a623eff8b31e5d37963
7
+ data.tar.gz: 76742a8b23e96800e5f73b8c8324e9b2755c986b62119d4171e08656fde6cb030c32771a524344c362d52c7eedd5d223c2fc806ba41bacc06f0a8ca4708f814e
@@ -9,15 +9,7 @@ module Xcoed
9
9
 
10
10
  packages = {}
11
11
  package_json['dependencies'].each do |dependency|
12
- STDERR.puts dependency
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
@@ -1,4 +1,4 @@
1
1
  module Xcoed
2
- VERSION = '0.0.1'.freeze
2
+ VERSION = '0.0.2'.freeze
3
3
  end
4
4
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcoed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Makarov