flr 3.1.0 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/CHANGELOG.md +5 -1
- data/Gemfile.lock +1 -1
- data/lib/flr/command.rb +15 -9
- data/lib/flr/util/code_util.rb +97 -3
- data/lib/flr/version.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 316ebc8040b9907879cfd70d48163feb0804aba01ee376b21a7cb2c3dfa84347
|
4
|
+
data.tar.gz: a45282c1106560d8d4b0c7acb35a0f221a2e0e3fe057977aa339d78f80af43f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff1cd35e4be19a8b82af8c27c996ab67e7d37106fd3fcc2f843ea04cb01d89a6b5a65c437308d16cf79d02c9d9b171e6e6d994393ccd05fbf2fdb735b7b9b2c4
|
7
|
+
data.tar.gz: be14c260f62e3421587569ec97f091278e98443474f3e074e7ccb1efcb6ee95d36c6293269c95c593472522859a88b487a43bac23bf77111b29d3f0200189b53
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
+
## 3.2.0
|
2
|
+
|
3
|
+
- Support for nullsafety-feature of Dart 2.12
|
4
|
+
|
1
5
|
## 3.1.0
|
2
6
|
|
3
|
-
- Support for processing(init/generate/monitor) multi projects(the main project and its sub projects in one workspace)
|
7
|
+
- Support for processing (init/generate/monitor) multi projects (the main project and its sub projects in one workspace)
|
4
8
|
|
5
9
|
- Support for auto merging old asset specifications when specifying new assets
|
6
10
|
|
data/Gemfile.lock
CHANGED
data/lib/flr/command.rb
CHANGED
@@ -154,11 +154,21 @@ Flr recommends the following flutter resource structure schemes:
|
|
154
154
|
return r_dart_library_version
|
155
155
|
end
|
156
156
|
|
157
|
-
|
158
|
-
|
157
|
+
flutter_version_with_hotfix_str = flutter_version_result.split(" ")[1]
|
158
|
+
flutter_version_without_hotfix_str = flutter_version_with_hotfix_str.split("+")[0]
|
159
159
|
|
160
|
-
|
160
|
+
dart_version_str = flutter_version_result.split("Dart")[1]
|
161
|
+
dart_version_str.strip!
|
162
|
+
|
163
|
+
puts("the flutter development environment is:")
|
164
|
+
puts(" - Flutter SDK Version: #{flutter_version_with_hotfix_str}")
|
165
|
+
puts(" - Dart SDK Version: #{dart_version_str}")
|
166
|
+
|
167
|
+
if Version.new(flutter_version_with_hotfix_str) >= Version.new("1.10.15")
|
161
168
|
r_dart_library_version = "0.2.1"
|
169
|
+
if Version.new(dart_version_str) >= Version.new("2.12.0")
|
170
|
+
r_dart_library_version = "0.4.0-nullsafety.0"
|
171
|
+
end
|
162
172
|
end
|
163
173
|
|
164
174
|
return r_dart_library_version
|
@@ -297,14 +307,10 @@ Flr recommends the following flutter resource structure schemes:
|
|
297
307
|
#
|
298
308
|
# r_dart_library的依赖声明:
|
299
309
|
# ```yaml
|
300
|
-
# r_dart_library:
|
301
|
-
# git:
|
302
|
-
# url: "https://github.com/YK-Unit/r_dart_library.git"
|
303
|
-
# ref: 0.1.1
|
310
|
+
# r_dart_library: 0.1.1
|
304
311
|
# ```
|
305
312
|
r_dart_library_version = get_r_dart_library_version
|
306
|
-
|
307
|
-
dependencies_config["r_dart_library"] = r_dart_library_config
|
313
|
+
dependencies_config["r_dart_library"] = r_dart_library_version
|
308
314
|
pubspec_config["dependencies"] = dependencies_config
|
309
315
|
|
310
316
|
puts("add flr configuration into pubspec.yaml done!")
|
data/lib/flr/util/code_util.rb
CHANGED
@@ -5,6 +5,36 @@ module Flr
|
|
5
5
|
# 代码生成相关的工具类方法
|
6
6
|
class CodeUtil
|
7
7
|
|
8
|
+
@@should_support_nullsafety = nil
|
9
|
+
|
10
|
+
def self.should_support_nullsafety
|
11
|
+
if @@should_support_nullsafety != nil
|
12
|
+
return @@should_support_nullsafety
|
13
|
+
end
|
14
|
+
|
15
|
+
# $ flutter --version
|
16
|
+
# Flutter 1.12.13+hotfix.5 • channel stable • https://github.com/flutter/flutter.git
|
17
|
+
# Framework • revision 27321ebbad (5 weeks ago) • 2019-12-10 18:15:01 -0800
|
18
|
+
# Engine • revision 2994f7e1e6
|
19
|
+
# Tools • Dart 2.7.0
|
20
|
+
flutter_version_result = `flutter --version`
|
21
|
+
if (flutter_version_result.nil? == true || flutter_version_result.empty? == true)
|
22
|
+
@@should_support_nullsafety = false
|
23
|
+
return @@should_support_nullsafety
|
24
|
+
end
|
25
|
+
|
26
|
+
dart_version_str = flutter_version_result.split("Dart")[1]
|
27
|
+
dart_version_str.strip!
|
28
|
+
|
29
|
+
if Version.new(dart_version_str) >= Version.new("2.12.0")
|
30
|
+
@@should_support_nullsafety = true
|
31
|
+
return @@should_support_nullsafety
|
32
|
+
end
|
33
|
+
|
34
|
+
@@should_support_nullsafety = false
|
35
|
+
return @@should_support_nullsafety
|
36
|
+
end
|
37
|
+
|
8
38
|
# generate_R_class(package_name) -> string
|
9
39
|
#
|
10
40
|
# 根据模板生成 R class 的代码
|
@@ -66,6 +96,58 @@ class R {
|
|
66
96
|
/// - fileBasename:example.png
|
67
97
|
/// - fileBasenameNoExtension:example
|
68
98
|
/// - fileExtname:.png
|
99
|
+
CODE
|
100
|
+
|
101
|
+
if should_support_nullsafety
|
102
|
+
code += <<-CODE
|
103
|
+
class AssetResource {
|
104
|
+
/// Creates an object to hold the asset resource’s metadata.
|
105
|
+
const AssetResource(this.assetName, {this.packageName});
|
106
|
+
|
107
|
+
/// The name of the main asset from the set of asset resources to choose from.
|
108
|
+
final String assetName;
|
109
|
+
|
110
|
+
/// The name of the package from which the asset resource is included.
|
111
|
+
final String? packageName;
|
112
|
+
|
113
|
+
/// The name used to generate the key to obtain the asset resource. For local assets
|
114
|
+
/// this is [assetName], and for assets from packages the [assetName] is
|
115
|
+
/// prefixed 'packages/<package_name>/'.
|
116
|
+
String get keyName => packageName == null ? assetName : "packages/$packageName/$assetName";
|
117
|
+
|
118
|
+
/// The file basename of the asset resource.
|
119
|
+
String get fileBasename {
|
120
|
+
final basename = path.basename(assetName);
|
121
|
+
return basename;
|
122
|
+
}
|
123
|
+
|
124
|
+
/// The no extension file basename of the asset resource.
|
125
|
+
String get fileBasenameNoExtension {
|
126
|
+
final basenameWithoutExtension = path.basenameWithoutExtension(assetName);
|
127
|
+
return basenameWithoutExtension;
|
128
|
+
}
|
129
|
+
|
130
|
+
/// The file extension name of the asset resource.
|
131
|
+
String get fileExtname {
|
132
|
+
final extension = path.extension(assetName);
|
133
|
+
return extension;
|
134
|
+
}
|
135
|
+
|
136
|
+
/// The directory path name of the asset resource.
|
137
|
+
String get fileDirname {
|
138
|
+
var dirname = assetName;
|
139
|
+
if (packageName != null) {
|
140
|
+
final packageStr = "packages/$packageName/";
|
141
|
+
dirname = dirname.replaceAll(packageStr, "");
|
142
|
+
}
|
143
|
+
final filenameStr = "$fileBasename/";
|
144
|
+
dirname = dirname.replaceAll(filenameStr, "");
|
145
|
+
return dirname;
|
146
|
+
}
|
147
|
+
}
|
148
|
+
CODE
|
149
|
+
else
|
150
|
+
code += <<-CODE
|
69
151
|
class AssetResource {
|
70
152
|
/// Creates an object to hold the asset resource’s metadata.
|
71
153
|
const AssetResource(this.assetName, {this.packageName}) : assert(assetName != null);
|
@@ -111,7 +193,8 @@ class AssetResource {
|
|
111
193
|
return dirname;
|
112
194
|
}
|
113
195
|
}
|
114
|
-
|
196
|
+
CODE
|
197
|
+
end
|
115
198
|
|
116
199
|
return code
|
117
200
|
end
|
@@ -426,14 +509,25 @@ class _R_Image {
|
|
426
509
|
asset_id = svg_image_asset_id_dict[image_asset]
|
427
510
|
asset_comment = generate_asset_comment(image_asset, package_name)
|
428
511
|
|
429
|
-
|
512
|
+
if should_support_nullsafety
|
513
|
+
g_Asset_method_code = <<-CODE
|
514
|
+
/// #{asset_comment}
|
515
|
+
// ignore: non_constant_identifier_names
|
516
|
+
AssetSvg #{asset_id}({required double width, required double height}) {
|
517
|
+
final imageProvider = AssetSvg(asset.#{asset_id}.keyName, width: width, height: height);
|
518
|
+
return imageProvider;
|
519
|
+
}
|
520
|
+
CODE
|
521
|
+
else
|
522
|
+
g_Asset_method_code = <<-CODE
|
430
523
|
/// #{asset_comment}
|
431
524
|
// ignore: non_constant_identifier_names
|
432
525
|
AssetSvg #{asset_id}({@required double width, @required double height}) {
|
433
526
|
final imageProvider = AssetSvg(asset.#{asset_id}.keyName, width: width, height: height);
|
434
527
|
return imageProvider;
|
435
528
|
}
|
436
|
-
|
529
|
+
CODE
|
530
|
+
end
|
437
531
|
|
438
532
|
all_g_Asset_method_code += g_Asset_method_code
|
439
533
|
end
|
data/lib/flr/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- York
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -124,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
requirements: []
|
127
|
-
rubygems_version: 3.
|
127
|
+
rubygems_version: 3.2.13
|
128
128
|
signing_key:
|
129
129
|
specification_version: 4
|
130
130
|
summary: 'Flr(Flutter-R): A Flutter Resource Manager CLI TooL.'
|