xcoed 0.0.1 → 0.0.2

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.
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