cocoapods-embed-flutter 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +7 -6
- data/CHANGELOG.md +8 -1
- data/Gemfile.lock +1 -1
- data/cocoapods-embed-flutter.gemspec +11 -1
- data/example/ios_app/Gemfile.lock +1 -1
- data/lib/cocoapods-embed-flutter/flutter/dependency.rb +2 -2
- data/lib/cocoapods-embed-flutter/flutter/downloader.rb +3 -4
- data/lib/cocoapods-embed-flutter/flutter/external_sources.rb +29 -11
- data/lib/cocoapods-embed-flutter/flutter/pubspec.rb +3 -10
- data/lib/cocoapods-embed-flutter/flutter.rb +30 -0
- data/lib/cocoapods-embed-flutter/gem_version.rb +6 -1
- data/lib/cocoapods-embed-flutter/src/pub.rb +20 -2
- data/lib/cocoapods-embed-flutter.rb +1 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 471eb33cb4b395feb321e162537e6f2bc5edd026ce7460842c446fd22f6daecc
|
4
|
+
data.tar.gz: 4f12be7ae404447c898e4602cd7ce70191c7e18c55fa62308ccfaf3ffc2b23c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70cabc00a991ab2d31a09428bdf14a9f1d6f2a3640065ca56f36ed630ff867228c666767de4300a1dc4d0679b65556beff82bc314728cb468d5432a6e75ab1e2
|
7
|
+
data.tar.gz: 1715cc8592d8fe62f4e99314c98c18f2430647a1403a39dea6df732e17248e2a677ceae42f65a2c24f3d179aba86a69b6f72dc6c775fa82e270cf529be20a162
|
data/.github/workflows/main.yml
CHANGED
@@ -10,6 +10,11 @@ on:
|
|
10
10
|
paths-ignore:
|
11
11
|
- '*.md'
|
12
12
|
workflow_dispatch:
|
13
|
+
inputs:
|
14
|
+
release:
|
15
|
+
description: Create release
|
16
|
+
required: false
|
17
|
+
type: boolean
|
13
18
|
|
14
19
|
env:
|
15
20
|
RUBY_VER: 2.6
|
@@ -62,7 +67,7 @@ jobs:
|
|
62
67
|
|
63
68
|
cd:
|
64
69
|
name: Build and Publish
|
65
|
-
if: (github.event_name == 'push' || github.event_name == 'workflow_dispatch'
|
70
|
+
if: (github.event_name == 'push' && needs.ci.outputs.release) || (github.event_name == 'workflow_dispatch' && github.event.inputs.release)
|
66
71
|
needs: ci
|
67
72
|
runs-on: ubuntu-latest
|
68
73
|
|
@@ -118,7 +123,7 @@ jobs:
|
|
118
123
|
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
|
119
124
|
env:
|
120
125
|
GITHUB_TOKEN: ${{ github.token }}
|
121
|
-
OWNER: ${{ github.
|
126
|
+
OWNER: ${{ github.repository_owner }}
|
122
127
|
|
123
128
|
- name: Publish to RubyGems
|
124
129
|
if: steps.conventional_changelog.outputs.skipped == 'false'
|
@@ -139,7 +144,3 @@ jobs:
|
|
139
144
|
tag: ${{ steps.conventional_changelog.outputs.tag }}
|
140
145
|
body: ${{ steps.conventional_changelog.outputs.changelog }}
|
141
146
|
artifacts: '*.gem'
|
142
|
-
|
143
|
-
- name: Publish to cocoapods plugins
|
144
|
-
if: steps.conventional_changelog.outputs.skipped == 'false'
|
145
|
-
run: bundle exec rake publish
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,11 @@
|
|
1
|
-
|
1
|
+
### [0.5.1](https://github.com/DartBuild/cocoapods-embed-flutter/compare/v0.5.0...v0.5.1) (2022-03-11)
|
2
|
+
|
3
|
+
|
4
|
+
### 📚 Documentation
|
5
|
+
|
6
|
+
* add code documentation ([87c06fd](https://github.com/DartBuild/cocoapods-embed-flutter/commit/87c06fd45d3c63a94cda6ce3ae00a200f412bb2a))
|
7
|
+
|
8
|
+
## [0.5.0](https://github.com/DartBuild/cocoapods-embed-flutter/compare/3358c2b251f51154010990b95b7eaa741049d707...v0.5.0) (2022-03-11)
|
2
9
|
|
3
10
|
|
4
11
|
### 🚀 Features
|
data/Gemfile.lock
CHANGED
@@ -4,6 +4,9 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'cocoapods-embed-flutter/gem_version.rb'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
+
repo = 'DartBuild/cocoapods-embed-flutter'
|
8
|
+
repo_url = "https://github.com/#{repo}"
|
9
|
+
|
7
10
|
spec.name = 'cocoapods-embed-flutter'
|
8
11
|
spec.version = CocoapodsEmbedFlutter::VERSION
|
9
12
|
spec.authors = ['Soumya Ranjan Mahunt']
|
@@ -13,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
13
16
|
Straight forward way of declaring flutter modules as dependency for targets,
|
14
17
|
just like cocoapods does with pods.
|
15
18
|
DESC
|
16
|
-
spec.homepage =
|
19
|
+
spec.homepage = repo_url
|
17
20
|
spec.license = 'MIT'
|
18
21
|
|
19
22
|
spec.files = `git ls-files`.split($/)
|
@@ -27,4 +30,11 @@ Gem::Specification.new do |spec|
|
|
27
30
|
|
28
31
|
spec.add_development_dependency 'bundler'
|
29
32
|
spec.add_development_dependency 'rake'
|
33
|
+
|
34
|
+
spec.metadata = {
|
35
|
+
'bug_tracker_uri' => "#{repo_url}/issues",
|
36
|
+
'changelog_uri' => "#{repo_url}/blob/main/CHANGELOG.md",
|
37
|
+
'source_code_uri' => repo_url,
|
38
|
+
'github_repo' => "git@github.com:#{repo}.git"
|
39
|
+
}
|
30
40
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'cocoapods-embed-flutter/flutter
|
1
|
+
require 'cocoapods-embed-flutter/flutter'
|
2
2
|
|
3
3
|
module Flutter
|
4
4
|
module Pub
|
@@ -76,7 +76,7 @@ module Flutter
|
|
76
76
|
|
77
77
|
# Install this dependency for the parent project.
|
78
78
|
#
|
79
|
-
# @return void
|
79
|
+
# @return [void]
|
80
80
|
#
|
81
81
|
def install
|
82
82
|
spec.setup if local?
|
@@ -9,17 +9,16 @@ module Flutter
|
|
9
9
|
# @return [Response] The download response for this download.
|
10
10
|
#
|
11
11
|
# @param [Request] request
|
12
|
-
# the request that describes
|
12
|
+
# the request that describes the flutter project download.
|
13
13
|
#
|
14
14
|
# @param [Pathname,Nil] target
|
15
|
-
# the location to which
|
16
|
-
# then the pod will only be cached.
|
15
|
+
# the location to which the flutter project should be downloaded.
|
17
16
|
#
|
18
17
|
# @param [Boolean] can_cache
|
19
18
|
# whether caching is allowed.
|
20
19
|
#
|
21
20
|
# @param [Pathname,Nil] cache_path
|
22
|
-
# the path used to cache
|
21
|
+
# the path used to cache flutter project downloads.
|
23
22
|
#
|
24
23
|
# @todo Implement caching for remote sources.
|
25
24
|
#
|
@@ -1,11 +1,16 @@
|
|
1
1
|
# Similar to:
|
2
2
|
# https://github.com/CocoaPods/CocoaPods/blob/master/lib/cocoapods/external_sources/abstract_external_source.rb
|
3
|
-
require 'cocoapods-embed-flutter/flutter
|
3
|
+
require 'cocoapods-embed-flutter/flutter'
|
4
4
|
require 'cocoapods'
|
5
5
|
|
6
6
|
module Flutter
|
7
7
|
module Pub
|
8
|
+
# The ExternalSources modules name-spaces all the classes
|
9
|
+
# for accessing remote Flutter projects.
|
10
|
+
#
|
8
11
|
module ExternalSources
|
12
|
+
# The keys accepted by the hash of the source attribute.
|
13
|
+
#
|
9
14
|
SOURCE_KEYS = {
|
10
15
|
:git => [:tag, :branch, :commit, :submodules].freeze,
|
11
16
|
:svn => [:folder, :tag, :revision].freeze,
|
@@ -97,11 +102,9 @@ module Flutter
|
|
97
102
|
|
98
103
|
public
|
99
104
|
|
100
|
-
# @!group Subclasses hooks
|
101
|
-
|
102
105
|
# Fetches the external source from the remote according to the params.
|
103
106
|
#
|
104
|
-
# @param [Sandbox] sandbox
|
107
|
+
# @param [Pod::Sandbox] sandbox
|
105
108
|
# the sandbox where the specification should be stored.
|
106
109
|
#
|
107
110
|
# @return [void]
|
@@ -138,6 +141,12 @@ module Flutter
|
|
138
141
|
Spec.find_file(name, declared_path)
|
139
142
|
end
|
140
143
|
|
144
|
+
# Return the normalized path for a pubspec assuming sandbox
|
145
|
+
# pod folder as location.
|
146
|
+
#
|
147
|
+
# @return [String] The uri of the pubspec appending the name of the file
|
148
|
+
# and expanding it if necessary.
|
149
|
+
#
|
141
150
|
def normalized_pupspec_path
|
142
151
|
Spec.find_file(name, target)
|
143
152
|
end
|
@@ -146,21 +155,24 @@ module Flutter
|
|
146
155
|
|
147
156
|
# @! Subclasses helpers
|
148
157
|
|
149
|
-
# Pre-downloads a
|
150
|
-
# the sandbox.
|
158
|
+
# Pre-downloads a flutter project passing the options to the downloader
|
159
|
+
# and informing the sandbox.
|
151
160
|
#
|
152
|
-
# @param [Sandbox] sandbox
|
153
|
-
# The sandbox where the
|
161
|
+
# @param [Pod::Sandbox] sandbox
|
162
|
+
# The sandbox where the flutter project should be downloaded.
|
154
163
|
#
|
155
|
-
# @note To prevent a double download of the repository the
|
156
|
-
# marked as pre-downloaded indicating to the installer that only
|
164
|
+
# @note To prevent a double download of the repository the flutter project
|
165
|
+
# is marked as pre-downloaded indicating to the installer that only
|
157
166
|
# clean operations are needed.
|
158
167
|
#
|
159
168
|
# @todo The downloader configuration is the same of the
|
160
|
-
# #{PodSourceInstaller}
|
169
|
+
# #{Pod::Installer::PodSourceInstaller}
|
170
|
+
# and it needs to be kept in sync.
|
161
171
|
#
|
162
172
|
# @return [void]
|
163
173
|
#
|
174
|
+
# @todo Implement caching for remote sources.
|
175
|
+
#
|
164
176
|
def pre_download(sandbox)
|
165
177
|
title = "Pre-downloading: `#{name}` #{description}"
|
166
178
|
Pod::UI.titled_section(title, :verbose_prefix => '-> ') do
|
@@ -185,6 +197,9 @@ module Flutter
|
|
185
197
|
end
|
186
198
|
end
|
187
199
|
|
200
|
+
# @return [Pod::Downloader::Request] the request to remote
|
201
|
+
# flutter project source.
|
202
|
+
#
|
188
203
|
def download_request
|
189
204
|
Pod::Downloader::Request.new(
|
190
205
|
:name => name,
|
@@ -192,6 +207,9 @@ module Flutter
|
|
192
207
|
)
|
193
208
|
end
|
194
209
|
|
210
|
+
# @return [String] the path where this flutter project
|
211
|
+
# will be downloaded relative paths.
|
212
|
+
#
|
195
213
|
def target
|
196
214
|
return Pod::Config.instance.sandbox.pod_dir(name)
|
197
215
|
end
|
@@ -1,15 +1,8 @@
|
|
1
|
-
require 'cocoapods-embed-flutter/flutter
|
1
|
+
require 'cocoapods-embed-flutter/flutter'
|
2
2
|
require 'yaml'
|
3
3
|
|
4
4
|
module Flutter
|
5
|
-
NAME = 'flutter'.freeze
|
6
|
-
DIR_NAME = 'Flutter'.freeze
|
7
|
-
|
8
5
|
module Pub
|
9
|
-
SPEC_FILE = 'pubspec.yaml'.freeze
|
10
|
-
TOOL_DIR = '.dart_tool'.freeze
|
11
|
-
CACHE_FILE = 'package_config.json'.freeze
|
12
|
-
|
13
6
|
# The Specification provides a DSL to describe a flutter project.
|
14
7
|
# A project is defined as a library originating from a source.
|
15
8
|
# A specification can support detailed attributes for modules of code
|
@@ -139,7 +132,7 @@ module Flutter
|
|
139
132
|
|
140
133
|
# Sets up the project installing all specified dependencies.
|
141
134
|
#
|
142
|
-
# @return void
|
135
|
+
# @return [void]
|
143
136
|
#
|
144
137
|
def setup
|
145
138
|
return if setup?
|
@@ -149,7 +142,7 @@ module Flutter
|
|
149
142
|
|
150
143
|
# Runs `flutter pub get` on project directory.
|
151
144
|
#
|
152
|
-
# @return void
|
145
|
+
# @return [void]
|
153
146
|
#
|
154
147
|
def pup_get
|
155
148
|
Dir.chdir(project_path) { |path| system('flutter pub get', exception: true) }
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# The Flutter modules name-spaces all the classes for Flutter.
|
2
|
+
#
|
3
|
+
module Flutter
|
4
|
+
# The flutter command name.
|
5
|
+
#
|
6
|
+
NAME = 'flutter'.freeze
|
7
|
+
# The directory name for flutter specific
|
8
|
+
# files in a flutter project.
|
9
|
+
#
|
10
|
+
DIR_NAME = 'Flutter'.freeze
|
11
|
+
# The Pub modules name-spaces all the classes for Flutter Pub.
|
12
|
+
#
|
13
|
+
module Pub
|
14
|
+
# The file name for flutter specification declaration.
|
15
|
+
#
|
16
|
+
SPEC_FILE = 'pubspec.yaml'.freeze
|
17
|
+
# The folder name containing flutter dependencies cache files.
|
18
|
+
#
|
19
|
+
TOOL_DIR = '.dart_tool'.freeze
|
20
|
+
# The cache file name for flutter projects.
|
21
|
+
#
|
22
|
+
CACHE_FILE = 'package_config.json'.freeze
|
23
|
+
|
24
|
+
require 'cocoapods-embed-flutter/flutter/downloader'
|
25
|
+
require 'cocoapods-embed-flutter/flutter/external_sources'
|
26
|
+
|
27
|
+
autoload :Dependency, 'cocoapods-embed-flutter/flutter/dependency'
|
28
|
+
autoload :Spec, 'cocoapods-embed-flutter/flutter/pubspec'
|
29
|
+
end
|
30
|
+
end
|
@@ -1,8 +1,18 @@
|
|
1
1
|
require 'cocoapods-embed-flutter/gem_version'
|
2
|
-
require 'cocoapods-embed-flutter/flutter
|
3
|
-
require 'cocoapods-embed-flutter/flutter/external_sources'
|
2
|
+
require 'cocoapods-embed-flutter/flutter'
|
4
3
|
|
4
|
+
# The Pod modules name-spaces all the classes and methods
|
5
|
+
# providing flutter specific functionality to podfile.
|
6
|
+
#
|
5
7
|
module Pod
|
8
|
+
# The Podfile is a specification that describes the dependencies of the
|
9
|
+
# targets of an Xcode project.
|
10
|
+
#
|
11
|
+
# It supports its own DSL and is stored in a file named `Podfile`.
|
12
|
+
#
|
13
|
+
# The Podfile creates a hierarchy of target definitions that store the
|
14
|
+
# information necessary to generate the CocoaPods libraries.
|
15
|
+
#
|
6
16
|
class Podfile
|
7
17
|
# The Podfile is a specification that describes the dependencies of the
|
8
18
|
# targets of one or more Xcode projects. With Embed Flutter
|
@@ -104,6 +114,14 @@ module Pod
|
|
104
114
|
install_flutter_pods_for_pubspec(pubspec)
|
105
115
|
end
|
106
116
|
|
117
|
+
# Integrates flutter module provided in `pubspec`
|
118
|
+
# to an Xcode project target.
|
119
|
+
#
|
120
|
+
# @param [Flutter::Pub::Spec] pubspec
|
121
|
+
# the flutter module project specification.
|
122
|
+
#
|
123
|
+
# @return [void]
|
124
|
+
#
|
107
125
|
def install_flutter_pods_for_pubspec(pubspec)
|
108
126
|
raise ArgumentError, "Invalid `pubspec` argument." unless pubspec.is_a?(Flutter::Pub::Spec)
|
109
127
|
load pubspec.pod_helper_path
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-embed-flutter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Soumya Ranjan Mahunt
|
@@ -124,6 +124,7 @@ files:
|
|
124
124
|
- example/ios_app/ios_app/Preview Content/Preview Assets.xcassets/Contents.json
|
125
125
|
- example/ios_app/ios_app/ios_appApp.swift
|
126
126
|
- lib/cocoapods-embed-flutter.rb
|
127
|
+
- lib/cocoapods-embed-flutter/flutter.rb
|
127
128
|
- lib/cocoapods-embed-flutter/flutter/dependency.rb
|
128
129
|
- lib/cocoapods-embed-flutter/flutter/downloader.rb
|
129
130
|
- lib/cocoapods-embed-flutter/flutter/external_sources.rb
|
@@ -139,7 +140,11 @@ files:
|
|
139
140
|
homepage: https://github.com/DartBuild/cocoapods-embed-flutter
|
140
141
|
licenses:
|
141
142
|
- MIT
|
142
|
-
metadata:
|
143
|
+
metadata:
|
144
|
+
bug_tracker_uri: https://github.com/DartBuild/cocoapods-embed-flutter/issues
|
145
|
+
changelog_uri: https://github.com/DartBuild/cocoapods-embed-flutter/blob/main/CHANGELOG.md
|
146
|
+
source_code_uri: https://github.com/DartBuild/cocoapods-embed-flutter
|
147
|
+
github_repo: git@github.com:DartBuild/cocoapods-embed-flutter.git
|
143
148
|
post_install_message:
|
144
149
|
rdoc_options: []
|
145
150
|
require_paths:
|