cocoapods-embed-flutter 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +46 -24
- data/Gemfile +1 -4
- data/Gemfile.lock +8 -9
- data/README.md +2 -1
- data/cocoapods-embed-flutter.gemspec +1 -0
- data/lib/cocoapods-embed-flutter/flutter/dependency.rb +22 -7
- data/lib/cocoapods-embed-flutter/flutter/downloader.rb +3 -0
- data/lib/cocoapods-embed-flutter/flutter/external_sources.rb +3 -3
- data/lib/cocoapods-embed-flutter/flutter/pubspec.rb +51 -18
- data/lib/cocoapods-embed-flutter/gem_version.rb +1 -1
- data/lib/cocoapods-embed-flutter/src/pub.rb +4 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cff1bb110d17430843c65f81a08a8667932ec8dbbf825d3d6e06265bda88b19b
|
4
|
+
data.tar.gz: 3aa62f67bbca421ed63029fb60aa24c41b58bdd2b65cdeb595ac67166453c0c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c514345f8b67b9f3cc6acc4859b090dd1546ebb4d5cb13a7f5bc20921862041a49a2e03bf4195633cb2498b9d6769b888734f1639dcdd27f729744b783a0ab4
|
7
|
+
data.tar.gz: 4b916e131d5a74ba7aae72eabdeb8e3b740aed7c2320bc102aec8b9180ba6b152aa833326d30023c06268ac5c4b1d7772c5e6c141a9acc19cde8d081f609dd10
|
data/CHANGELOG.md
CHANGED
@@ -1,81 +1,103 @@
|
|
1
|
+
### [0.6.1](https://github.com/DartBuild/cocoapods-embed-flutter/compare/v0.6.0...v0.6.1) (2022-05-03)
|
2
|
+
|
3
|
+
|
4
|
+
### 🛠 Dependency
|
5
|
+
|
6
|
+
* bump cocoapods-downloader from 1.5.1 to 1.6.3 ([#5](https://github.com/DartBuild/cocoapods-embed-flutter/issues/5)) ([8067f06](https://github.com/DartBuild/cocoapods-embed-flutter/commit/8067f062ab268fcc588e60c5cf54c3fe4da1d3e2))
|
7
|
+
* bump nokogiri from 1.13.3 to 1.13.4 ([#7](https://github.com/DartBuild/cocoapods-embed-flutter/issues/7)) ([975638e](https://github.com/DartBuild/cocoapods-embed-flutter/commit/975638ecda2fc65f4141d1e0a37f08a775692984))
|
8
|
+
|
9
|
+
|
10
|
+
### 💡 Continuous Integration
|
11
|
+
|
12
|
+
* add codeql scanning ([3120c44](https://github.com/DartBuild/cocoapods-embed-flutter/commit/3120c446adf3bce9b80fe07a0d57ca79d7adfe7e))
|
13
|
+
* **Deps:** bump @actions/core from 1.6.0 to 1.7.0 in /.github/config ([#8](https://github.com/DartBuild/cocoapods-embed-flutter/issues/8)) ([a3861ad](https://github.com/DartBuild/cocoapods-embed-flutter/commit/a3861ad7223c5d9a2021b15359d158a7c9ea2705))
|
14
|
+
* **Deps:** bump semver from 7.3.5 to 7.3.7 in /.github/config ([#9](https://github.com/DartBuild/cocoapods-embed-flutter/issues/9)) ([36f2599](https://github.com/DartBuild/cocoapods-embed-flutter/commit/36f2599074c2a4e13bbd07680cc0cb208fe7ee97))
|
15
|
+
* **Deps:** bump subosito/flutter-action from 2.3.0 to 2.4.0 ([#10](https://github.com/DartBuild/cocoapods-embed-flutter/issues/10)) ([2e6c1c1](https://github.com/DartBuild/cocoapods-embed-flutter/commit/2e6c1c108bc4dc44e25844d13fd0bb86639bba2e))
|
16
|
+
* **Runners:** added self hosted macos runner ([3371c29](https://github.com/DartBuild/cocoapods-embed-flutter/commit/3371c294ea34f2fa123e4ebb6ae368311e5dfb8b))
|
17
|
+
|
18
|
+
|
19
|
+
### 🐎 Performance Improvements
|
20
|
+
|
21
|
+
* allow concurrent `flutter pub get` ([ef5bc8a](https://github.com/DartBuild/cocoapods-embed-flutter/commit/ef5bc8a7daa0eada810210e481f0be708182192c))
|
22
|
+
|
1
23
|
## [0.6.0](https://github.com/DartBuild/cocoapods-embed-flutter/compare/v0.5.3...v0.6.0) (2022-03-27)
|
2
24
|
|
3
25
|
|
4
26
|
### 📚 Documentation
|
5
27
|
|
6
|
-
* **README:** add pub.dev limitation ([
|
28
|
+
* **README:** add pub.dev limitation ([f42de7c](https://github.com/DartBuild/cocoapods-embed-flutter/commit/f42de7c908d65661bb12e8becc6fc6941295d19a))
|
7
29
|
|
8
30
|
|
9
31
|
### 🛠 Dependency
|
10
32
|
|
11
|
-
* bump cocoapods from 1.11.2 to 1.11.3 ([#4](https://github.com/DartBuild/cocoapods-embed-flutter/issues/4)) ([
|
33
|
+
* bump cocoapods from 1.11.2 to 1.11.3 ([#4](https://github.com/DartBuild/cocoapods-embed-flutter/issues/4)) ([8cec1cb](https://github.com/DartBuild/cocoapods-embed-flutter/commit/8cec1cbe4c18dd20d155d5b1b8824ae7910a11c3))
|
12
34
|
|
13
35
|
|
14
36
|
### 💄 Styles
|
15
37
|
|
16
|
-
* add vscode extensions recommendation ([
|
38
|
+
* add vscode extensions recommendation ([db4bdb5](https://github.com/DartBuild/cocoapods-embed-flutter/commit/db4bdb58765851cabfdf16254678301b149faceb))
|
17
39
|
|
18
40
|
|
19
41
|
### 🚀 Features
|
20
42
|
|
21
|
-
* allow specifying different path for remote sources ([
|
43
|
+
* allow specifying different path for remote sources ([56178ed](https://github.com/DartBuild/cocoapods-embed-flutter/commit/56178ed645a476e19b77377c246ce90de582b5ef))
|
22
44
|
|
23
45
|
### [0.5.3](https://github.com/DartBuild/cocoapods-embed-flutter/compare/v0.5.2...v0.5.3) (2022-03-18)
|
24
46
|
|
25
47
|
|
26
48
|
### 📚 Documentation
|
27
49
|
|
28
|
-
* **README:** add limitations ([
|
50
|
+
* **README:** add limitations ([8830ead](https://github.com/DartBuild/cocoapods-embed-flutter/commit/8830eadfbb46ddbce83a2bf329bc04fa3cfe2583))
|
29
51
|
|
30
52
|
### [0.5.2](https://github.com/DartBuild/cocoapods-embed-flutter/compare/v0.5.1...v0.5.2) (2022-03-12)
|
31
53
|
|
32
54
|
|
33
55
|
### 📚 Documentation
|
34
56
|
|
35
|
-
* add helpful links and badges ([
|
57
|
+
* add helpful links and badges ([8fb5253](https://github.com/DartBuild/cocoapods-embed-flutter/commit/8fb52531d66782525ae10a36bd7c1a5a062c02a4))
|
36
58
|
|
37
59
|
|
38
60
|
### 💡 Continuous Integration
|
39
61
|
|
40
|
-
* **Deps:** bump actions/checkout from 2 to 3 ([#2](https://github.com/DartBuild/cocoapods-embed-flutter/issues/2)) ([
|
41
|
-
* **Deps:** bump actions/setup-node from 2 to 3 ([#3](https://github.com/DartBuild/cocoapods-embed-flutter/issues/3)) ([
|
62
|
+
* **Deps:** bump actions/checkout from 2 to 3 ([#2](https://github.com/DartBuild/cocoapods-embed-flutter/issues/2)) ([7fddfd6](https://github.com/DartBuild/cocoapods-embed-flutter/commit/7fddfd663a74e6390cddcee979b211e55daf18bb))
|
63
|
+
* **Deps:** bump actions/setup-node from 2 to 3 ([#3](https://github.com/DartBuild/cocoapods-embed-flutter/issues/3)) ([0af3476](https://github.com/DartBuild/cocoapods-embed-flutter/commit/0af34765e384d87fc257a9ddef2015faff393bad))
|
42
64
|
|
43
65
|
### [0.5.1](https://github.com/DartBuild/cocoapods-embed-flutter/compare/v0.5.0...v0.5.1) (2022-03-11)
|
44
66
|
|
45
67
|
|
46
68
|
### 📚 Documentation
|
47
69
|
|
48
|
-
* add code documentation ([
|
70
|
+
* add code documentation ([dd8d3da](https://github.com/DartBuild/cocoapods-embed-flutter/commit/dd8d3dafc3da6d68fa365d5580e89fc460cf9d94))
|
49
71
|
|
50
|
-
## [0.5.0](https://github.com/DartBuild/cocoapods-embed-flutter/compare/
|
72
|
+
## [0.5.0](https://github.com/DartBuild/cocoapods-embed-flutter/compare/1ad9f80188b2fa296933af35e6902ffcd6db001e...v0.5.0) (2022-03-11)
|
51
73
|
|
52
74
|
|
53
75
|
### 🚀 Features
|
54
76
|
|
55
|
-
* add all remotes supported by `cocoapods-downloader` ([
|
56
|
-
* allow local flutter module to be declared dependency ([
|
77
|
+
* add all remotes supported by `cocoapods-downloader` ([e01ea82](https://github.com/DartBuild/cocoapods-embed-flutter/commit/e01ea8212d71b10a78390c187b5e8f351a09114b))
|
78
|
+
* allow local flutter module to be declared dependency ([1ad9f80](https://github.com/DartBuild/cocoapods-embed-flutter/commit/1ad9f80188b2fa296933af35e6902ffcd6db001e))
|
57
79
|
|
58
80
|
|
59
81
|
### ✅ Tests
|
60
82
|
|
61
|
-
* add app info tests ([
|
83
|
+
* add app info tests ([269cb54](https://github.com/DartBuild/cocoapods-embed-flutter/commit/269cb5439c2a6912346187b2612de6b38345b738))
|
62
84
|
|
63
85
|
|
64
86
|
### 💡 Continuous Integration
|
65
87
|
|
66
|
-
* add dependabot config ([
|
67
|
-
* add flutter setup task ([
|
68
|
-
* add publish to cocoapods repo task ([
|
69
|
-
* fix bundle install on older macos ([
|
70
|
-
* fix bundler error on linux ([
|
71
|
-
* fix depandabot config spec violation ([
|
72
|
-
* fix pod install ([
|
73
|
-
* setup CI/CD pipeline ([
|
74
|
-
* setup flutter for ios ([
|
88
|
+
* add dependabot config ([67099bd](https://github.com/DartBuild/cocoapods-embed-flutter/commit/67099bd490fbce0879e4aa6ddd93839847ff7e87))
|
89
|
+
* add flutter setup task ([d5aeda3](https://github.com/DartBuild/cocoapods-embed-flutter/commit/d5aeda30817f81ed6ef2f1e9e21f8e2b8f415e20))
|
90
|
+
* add publish to cocoapods repo task ([8bbac4d](https://github.com/DartBuild/cocoapods-embed-flutter/commit/8bbac4d24ed5a1e862a2531067aa8a62c5072849))
|
91
|
+
* fix bundle install on older macos ([70522ea](https://github.com/DartBuild/cocoapods-embed-flutter/commit/70522eaa46a07c872e727c4f6c774d0444d516cc))
|
92
|
+
* fix bundler error on linux ([a18435a](https://github.com/DartBuild/cocoapods-embed-flutter/commit/a18435a4efca56e62c70367b810fe1dc48cce5cf))
|
93
|
+
* fix depandabot config spec violation ([7846c67](https://github.com/DartBuild/cocoapods-embed-flutter/commit/7846c67856a1ec7df92275ae887a80ba3413f4d8))
|
94
|
+
* fix pod install ([61954c9](https://github.com/DartBuild/cocoapods-embed-flutter/commit/61954c912c6609a375920fccf8bbbf2d6aaa5e0e))
|
95
|
+
* setup CI/CD pipeline ([3e20bc9](https://github.com/DartBuild/cocoapods-embed-flutter/commit/3e20bc9d41be80b3a95077e1c7df8e6f0f83d6b7))
|
96
|
+
* setup flutter for ios ([d76deb2](https://github.com/DartBuild/cocoapods-embed-flutter/commit/d76deb220e3c0e60303b1b5676bbac24e7dc407f))
|
75
97
|
|
76
98
|
|
77
99
|
### 📚 Documentation
|
78
100
|
|
79
|
-
* add code level documentation ([
|
80
|
-
* **README:** add usage details ([
|
101
|
+
* add code level documentation ([f3c04ed](https://github.com/DartBuild/cocoapods-embed-flutter/commit/f3c04ed6fddab8901511530014282006beb11e8f))
|
102
|
+
* **README:** add usage details ([52852ae](https://github.com/DartBuild/cocoapods-embed-flutter/commit/52852aed76005285a8059bd1adb580a169d7463f))
|
81
103
|
|
data/Gemfile
CHANGED
@@ -4,13 +4,10 @@ source 'https://rubygems.org'
|
|
4
4
|
gemspec
|
5
5
|
|
6
6
|
group :development do
|
7
|
-
gem 'cocoapods'
|
8
|
-
gem 'cocoapods-plugins'
|
9
|
-
gem 'github_api'
|
10
|
-
|
11
7
|
gem 'mocha'
|
12
8
|
gem 'bacon'
|
13
9
|
gem 'mocha-on-bacon'
|
14
10
|
gem 'prettybacon'
|
15
11
|
gem 'solargraph'
|
12
|
+
gem 'github_api'
|
16
13
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cocoapods-embed-flutter (0.6.
|
4
|
+
cocoapods-embed-flutter (0.6.1)
|
5
5
|
cocoapods
|
6
|
+
concurrent-ruby
|
6
7
|
fileutils
|
7
8
|
yaml
|
8
9
|
|
@@ -11,7 +12,7 @@ GEM
|
|
11
12
|
specs:
|
12
13
|
CFPropertyList (3.0.5)
|
13
14
|
rexml
|
14
|
-
activesupport (6.1.5)
|
15
|
+
activesupport (6.1.5.1)
|
15
16
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
16
17
|
i18n (>= 1.6, < 2)
|
17
18
|
minitest (>= 5.1)
|
@@ -57,7 +58,7 @@ GEM
|
|
57
58
|
public_suffix (~> 4.0)
|
58
59
|
typhoeus (~> 1.0)
|
59
60
|
cocoapods-deintegrate (1.0.5)
|
60
|
-
cocoapods-downloader (1.
|
61
|
+
cocoapods-downloader (1.6.3)
|
61
62
|
cocoapods-plugins (1.0.0)
|
62
63
|
nap
|
63
64
|
cocoapods-search (1.0.1)
|
@@ -66,7 +67,7 @@ GEM
|
|
66
67
|
netrc (~> 0.11)
|
67
68
|
cocoapods-try (1.2.0)
|
68
69
|
colored2 (3.1.2)
|
69
|
-
concurrent-ruby (1.1.
|
70
|
+
concurrent-ruby (1.1.10)
|
70
71
|
descendants_tracker (0.0.4)
|
71
72
|
thread_safe (~> 0.3, >= 0.3.1)
|
72
73
|
diff-lcs (1.5.0)
|
@@ -130,11 +131,11 @@ GEM
|
|
130
131
|
nanaimo (0.3.0)
|
131
132
|
nap (1.1.0)
|
132
133
|
netrc (0.11.0)
|
133
|
-
nokogiri (1.13.
|
134
|
+
nokogiri (1.13.4-arm64-darwin)
|
134
135
|
racc (~> 1.4)
|
135
|
-
nokogiri (1.13.
|
136
|
+
nokogiri (1.13.4-x86_64-darwin)
|
136
137
|
racc (~> 1.4)
|
137
|
-
nokogiri (1.13.
|
138
|
+
nokogiri (1.13.4-x86_64-linux)
|
138
139
|
racc (~> 1.4)
|
139
140
|
oauth2 (1.4.9)
|
140
141
|
faraday (>= 0.17.3, < 3.0)
|
@@ -214,9 +215,7 @@ PLATFORMS
|
|
214
215
|
DEPENDENCIES
|
215
216
|
bacon
|
216
217
|
bundler
|
217
|
-
cocoapods
|
218
218
|
cocoapods-embed-flutter!
|
219
|
-
cocoapods-plugins
|
220
219
|
github_api
|
221
220
|
mocha
|
222
221
|
mocha-on-bacon
|
data/README.md
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
#
|
1
|
+
# CocoaPods Embed Flutter
|
2
2
|
|
3
3
|
[![CI/CD](https://github.com/DartBuild/cocoapods-embed-flutter/actions/workflows/main.yml/badge.svg?branch=main&event=push)](https://github.com/DartBuild/cocoapods-embed-flutter/actions/workflows/main.yml)
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/cocoapods-embed-flutter.svg)](http://badge.fury.io/rb/cocoapods-embed-flutter)
|
5
5
|
[![Code Climate](https://codeclimate.com/github/DartBuild/cocoapods-embed-flutter.png)](https://codeclimate.com/github/DartBuild/cocoapods-embed-flutter)
|
6
|
+
[![CodeQL](https://github.com/DartBuild/cocoapods-embed-flutter/actions/workflows/codeql-analysis.yml/badge.svg?event=push)](https://github.com/DartBuild/cocoapods-embed-flutter/actions/workflows/codeql-analysis.yml)
|
6
7
|
|
7
8
|
Straight forward way of declaring flutter modules as dependency for targets, just like cocoapods does with pods.
|
8
9
|
|
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_runtime_dependency 'yaml'
|
28
28
|
spec.add_runtime_dependency 'fileutils'
|
29
29
|
spec.add_runtime_dependency 'cocoapods'
|
30
|
+
spec.add_runtime_dependency 'concurrent-ruby'
|
30
31
|
|
31
32
|
spec.add_development_dependency 'bundler'
|
32
33
|
spec.add_development_dependency 'rake'
|
@@ -27,10 +27,10 @@ module Flutter
|
|
27
27
|
# @param [String, Hash] requirements
|
28
28
|
# the requirements for dependency as declred in `pubspec`
|
29
29
|
#
|
30
|
-
# @param [Spec]
|
30
|
+
# @param [Spec] parent_spec
|
31
31
|
# the parent specification where dependency declared
|
32
32
|
#
|
33
|
-
# @param [Boolean]
|
33
|
+
# @param [Boolean] dev_dependency
|
34
34
|
# Whether the dependency only required during development
|
35
35
|
#
|
36
36
|
def initialize(name, requirements, parent_spec, dev_dependency = false)
|
@@ -48,10 +48,10 @@ module Flutter
|
|
48
48
|
# @param [Hash] hash declared in `dependencies` or `dev_dependencies`
|
49
49
|
# section in `pubspec.yaml` file
|
50
50
|
#
|
51
|
-
# @param [Spec]
|
51
|
+
# @param [Spec] parent_spec
|
52
52
|
# the parent specification where dependency declared
|
53
53
|
#
|
54
|
-
# @param [Boolean]
|
54
|
+
# @param [Boolean] dev_dependency
|
55
55
|
# Whether the dependency only required during development
|
56
56
|
#
|
57
57
|
# @return [Array<Dependency>] dependencies from hash declared in `dependencies`
|
@@ -74,14 +74,29 @@ module Flutter
|
|
74
74
|
Spec.find(name, File.expand_path(path, File.dirname(parent_spec.defined_in_file)))
|
75
75
|
end
|
76
76
|
|
77
|
-
#
|
77
|
+
# Concurrently install this dependency for the parent project.
|
78
78
|
#
|
79
|
-
# @return [
|
79
|
+
# @return [Concurrent::Promises::Future, Nil]
|
80
|
+
# {Nil} if not a local dependency, otherwise
|
81
|
+
# returns future for {#spec}'s {Spec#pub_get pub_get} task.
|
80
82
|
#
|
81
83
|
def install
|
82
|
-
spec.
|
84
|
+
spec.pub_get if local?
|
83
85
|
end
|
84
86
|
|
87
|
+
# Allows accessing top level values in
|
88
|
+
# {https://dart.dev/tools/pub/dependencies dependency requirements},
|
89
|
+
# if {#requirements} type is {Hash}, i.e. path, git etc.
|
90
|
+
#
|
91
|
+
# @param [Symbol] m
|
92
|
+
# top level key value to access, i.e. path, git etc.
|
93
|
+
#
|
94
|
+
# @return depending on accessed value type in {#requirements}.
|
95
|
+
#
|
96
|
+
# @raise [NoMethodError] if no method or custom attribute exists by
|
97
|
+
# the attribute name in {#requirements} or {#requirements}
|
98
|
+
# is not a {Hash}.
|
99
|
+
#
|
85
100
|
def method_missing(m, *args, &block)
|
86
101
|
if requirements.is_a?(Hash) && requirements.include?(m.to_s)
|
87
102
|
return requirements[m.to_s]
|
@@ -3,6 +3,9 @@ require 'fileutils'
|
|
3
3
|
|
4
4
|
module Flutter
|
5
5
|
module Pub
|
6
|
+
# The Downloader modules name-spaces all the classes and methods
|
7
|
+
# for downloading and caching remote Flutter projects.
|
8
|
+
#
|
6
9
|
module Downloader
|
7
10
|
# Downloads a package from the given `request` to the given `target` location.
|
8
11
|
#
|
@@ -41,7 +41,7 @@ module Flutter
|
|
41
41
|
if SOURCE_KEYS.keys.any? { |key| options.key?(key) }
|
42
42
|
source = DownloaderSource.new(name, options, Pod::Config.instance.podfile_path)
|
43
43
|
source.fetch(Pod::Config.instance.sandbox)
|
44
|
-
path = source.
|
44
|
+
path = source.normalized_pubspec_path
|
45
45
|
elsif options.key?(:path)
|
46
46
|
path = options[:path]
|
47
47
|
else
|
@@ -137,7 +137,7 @@ module Flutter
|
|
137
137
|
# @note If the declared path is expanded only if the represents a path
|
138
138
|
# relative to the file system.
|
139
139
|
#
|
140
|
-
def
|
140
|
+
def normalized_pubspec_path(declared_path)
|
141
141
|
Spec.find_file(name, declared_path)
|
142
142
|
end
|
143
143
|
|
@@ -147,7 +147,7 @@ module Flutter
|
|
147
147
|
# @return [String] The uri of the pubspec appending the name of the file
|
148
148
|
# and expanding it if necessary.
|
149
149
|
#
|
150
|
-
def
|
150
|
+
def normalized_pubspec_path
|
151
151
|
search_path = params[:path].nil? ? target : File.expand_path(params[:path], target)
|
152
152
|
Spec.find_file(name, search_path)
|
153
153
|
end
|
@@ -1,5 +1,8 @@
|
|
1
1
|
require 'cocoapods-embed-flutter/flutter'
|
2
2
|
require 'yaml'
|
3
|
+
require 'open3'
|
4
|
+
require 'concurrent'
|
5
|
+
require 'cocoapods'
|
3
6
|
|
4
7
|
module Flutter
|
5
8
|
module Pub
|
@@ -43,7 +46,8 @@ module Flutter
|
|
43
46
|
|
44
47
|
if File.basename(path) == Pub::SPEC_FILE
|
45
48
|
return path
|
46
|
-
elsif Dir.exists?(File.expand_path(name, path)) &&
|
49
|
+
elsif Dir.exists?(File.expand_path(name, path)) &&
|
50
|
+
File.exists?(File.expand_path(Pub::SPEC_FILE, File.expand_path(name, path)))
|
47
51
|
return File.expand_path(Pub::SPEC_FILE, File.expand_path(name, path))
|
48
52
|
elsif File.exists?(File.expand_path(Pub::SPEC_FILE, path))
|
49
53
|
return File.expand_path(Pub::SPEC_FILE, path)
|
@@ -88,7 +92,7 @@ module Flutter
|
|
88
92
|
end
|
89
93
|
|
90
94
|
# @return [String] the path to the flutter project
|
91
|
-
#
|
95
|
+
# dependencies cache file.
|
92
96
|
#
|
93
97
|
def package_cache_path
|
94
98
|
File.join(project_path, Pub::TOOL_DIR, Pub::CACHE_FILE)
|
@@ -101,7 +105,7 @@ module Flutter
|
|
101
105
|
end
|
102
106
|
|
103
107
|
# @return [Array<Dependency>] the list of all the projects this
|
104
|
-
#
|
108
|
+
# specification depends upon and are included in app release.
|
105
109
|
#
|
106
110
|
def dependencies
|
107
111
|
return [] unless @data.include?('dependencies')
|
@@ -123,37 +127,66 @@ module Flutter
|
|
123
127
|
dependencies + dev_dependencies
|
124
128
|
end
|
125
129
|
|
126
|
-
#
|
127
|
-
# has all its dependencies installed.
|
130
|
+
# Runs `flutter pub get` on project directory concurrently.
|
128
131
|
#
|
129
|
-
|
130
|
-
|
132
|
+
# @return [Concurrent::Promises::Future, Nil]
|
133
|
+
# {Nil} if `pub get` running/completed, otherwise
|
134
|
+
# runs `flutter pub get` task in background
|
135
|
+
# and returns its future.
|
136
|
+
#
|
137
|
+
def pub_get
|
138
|
+
future = @@current_pubgets[self]
|
139
|
+
return nil if !future.nil?
|
140
|
+
future = Concurrent::Promises.future do
|
141
|
+
stdout, stderr, status = Open3.capture3('flutter pub get', :chdir => self.project_path)
|
142
|
+
:result
|
143
|
+
end
|
144
|
+
@@current_pubgets[self] = future
|
145
|
+
return Concurrent::Promises.zip(future, *all_dependencies.map(&:install).compact)
|
131
146
|
end
|
132
147
|
|
133
|
-
#
|
148
|
+
# See if two {Spec} instances refer to the same pubspecs.
|
134
149
|
#
|
135
|
-
# @return [
|
150
|
+
# @return [Boolean] whether or not the two {Spec} instances refer to the
|
151
|
+
# same projects.
|
136
152
|
#
|
137
|
-
def
|
138
|
-
|
139
|
-
|
140
|
-
|
153
|
+
def ==(other)
|
154
|
+
self.class === other &&
|
155
|
+
other.defined_in_file == defined_in_file &&
|
156
|
+
other.instance_variable_get(:@data) == @data
|
141
157
|
end
|
142
158
|
|
143
|
-
#
|
144
|
-
#
|
145
|
-
# @return [void]
|
159
|
+
# @return [Fixnum] A hash identical for equals objects.
|
146
160
|
#
|
147
|
-
def
|
148
|
-
|
161
|
+
def hash
|
162
|
+
[defined_in_file, @data].hash
|
149
163
|
end
|
150
164
|
|
165
|
+
alias eql? ==
|
166
|
+
|
167
|
+
# Allows accessing top level values in `pubspec.yaml`,
|
168
|
+
# i.e. name, description, version etc.
|
169
|
+
#
|
170
|
+
# @param [Symbol] m
|
171
|
+
# top level key value to access,
|
172
|
+
# i.e. name, description etc.
|
173
|
+
#
|
174
|
+
# @return depending on accessed value type in `pubspec.yaml`.
|
175
|
+
#
|
176
|
+
# @raise [NoMethodError] if no method or custom attribute exists by
|
177
|
+
# the attribute name in pubspec.
|
178
|
+
#
|
151
179
|
def method_missing(m, *args, &block)
|
152
180
|
if @data.include?(m.to_s)
|
153
181
|
return @data[m.to_s]
|
154
182
|
end
|
155
183
|
super.method_missing(m, *args, &block)
|
156
184
|
end
|
185
|
+
|
186
|
+
private
|
187
|
+
|
188
|
+
# A hash containing all `pub get` promises.
|
189
|
+
@@current_pubgets = {}
|
157
190
|
end
|
158
191
|
end
|
159
192
|
end
|
@@ -112,7 +112,10 @@ module Pod
|
|
112
112
|
#
|
113
113
|
def pub(name = nil, *requirements)
|
114
114
|
pubspec = Flutter::Pub::ExternalSources.fetchWithNameAndOptions(name, requirements)
|
115
|
-
|
115
|
+
Pod::UI.titled_section("Installing flutter dependencies for #{name}...", :verbose_prefix => '-> ') do
|
116
|
+
future = pubspec.pub_get
|
117
|
+
future.value! if !future.nil?
|
118
|
+
end
|
116
119
|
raise StandardError, "Invalid flutter module: '#{name}'." unless File.exists?(pubspec.pod_helper_path)
|
117
120
|
install_flutter_pods_for_pubspec(pubspec)
|
118
121
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-embed-flutter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Soumya Ranjan Mahunt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03
|
11
|
+
date: 2022-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yaml
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: concurrent-ruby
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: bundler
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|