Skip to content

Commit 2cc8929

Browse files
Extension method on String to create PubspecYaml instance from it
1 parent f8fae4b commit 2cc8929

File tree

10 files changed

+64
-55
lines changed

10 files changed

+64
-55
lines changed

dev/ignored_lint_warning_for_generated_code.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
// ignore_for_file: avoid_annotating_with_dynamic
77
// ignore_for_file: avoid_classes_with_only_static_members
88
// ignore_for_file: avoid_equals_and_hash_code_on_mutable_classes
9-
// ignore_for_file: non_constant_identifier_names
9+
// ignore_for_file: implicit_dynamic_parameter
1010
// ignore_for_file: join_return_with_assignment
11+
// ignore_for_file: non_constant_identifier_names
1112
// ignore_for_file: prefer_asserts_with_message
1213
// ignore_for_file: prefer_expression_function_bodies
1314
// ignore_for_file: prefer_single_quotes

example/main.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import 'package:pubspec_yaml/pubspec_yaml.dart';
55
// ignore_for_file: avoid_print
66

77
void main() {
8-
final pubspecYamlContent = File('pubspec.yaml').readAsStringSync();
9-
final pubspecYaml = PubspecYaml.loadFromYamlString(pubspecYamlContent);
8+
final pubspecYaml = File('pubspec.yaml').readAsStringSync().toPubspecYaml();
109

1110
final productionOverrides = pubspecYaml.dependencyOverrides.where(
1211
(override) => pubspecYaml.dependencies.any((

lib/src/git_package_dependency_spec/git_package_dependency_spec.g.dart

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/src/hosted_package_dependency_spec/hosted_package_dependency_spec.g.dart

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/src/package_dependency_spec/package_dependency_spec.g.dart

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/src/path_package_dependency_spec/path_package_dependency_spec.g.dart

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/src/pubspec_yaml.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,12 @@ class PubspecYaml extends $PubspecYaml {
145145
String toYamlString() => _formatToYaml(this);
146146
}
147147

148+
/// Extension class on String to import PubspecYaml from a YAML string
149+
extension PubspecYamlFromYamlString on String {
150+
/// Creates PubspecYaml from a YAML string
151+
PubspecYaml toPubspecYaml() => PubspecYaml.loadFromYamlString(this);
152+
}
153+
148154
// =====================================================================================================================
149155
// Implementation details
150156
// =====================================================================================================================

lib/src/pubspec_yaml.g.dart

Lines changed: 42 additions & 42 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/src/sdk_package_dependency_spec/sdk_package_dependency_spec.g.dart

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/smoke_test.dart

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,13 @@ void main() {
88
final realisticPubspecYaml = File('${gitRepoRoot()}/pubspec.lock').readAsStringSync();
99

1010
group('$PubspecYaml.loadFromYamlString', () {
11-
test('does not crash', () {
12-
PubspecYaml.loadFromYamlString(realisticPubspecYaml);
13-
});
11+
test('does not crash', realisticPubspecYaml.toPubspecYaml);
1412
});
1513

1614
group('$PubspecYaml.toYamlString', () {
1715
test('preserves equivalence', () {
18-
final pubspecYaml = PubspecYaml.loadFromYamlString(realisticPubspecYaml);
19-
expect(PubspecYaml.loadFromYamlString(pubspecYaml.toYamlString()), pubspecYaml);
16+
final pubspecYaml = realisticPubspecYaml.toPubspecYaml();
17+
expect(pubspecYaml.toYamlString().toPubspecYaml(), pubspecYaml);
2018
});
2119
});
2220
});

0 commit comments

Comments
 (0)