Skip to content

Commit 3e08486

Browse files
committed
Adjust format
1 parent 8bc71cb commit 3e08486

File tree

3 files changed

+39
-57
lines changed

3 files changed

+39
-57
lines changed

CHANGELOG.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,13 @@
5252

5353
- The build tool now has a new `gleam deps outdated` command that shows outdated
5454
versions for dependencies. For example:
55-
56-
```bash
55+
56+
```sh
5757
$ gleam deps outdated
58-
Package Current Latest
59-
wibble v1.4.0 v1.4.1
60-
wobble v1.0.1 v2.3.0
58+
Package Current Latest
59+
------- ------- ------
60+
wibble 1.4.0 1.4.1
61+
wobble 1.0.1 2.3.0
6162
```
6263

6364
([Vladislav Shakitskiy](https://github.com/vshakitskiy))

compiler-cli/src/dependencies.rs

Lines changed: 26 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -411,41 +411,28 @@ fn format_versions_and_extract_longest_parts(
411411
versions: dependency::PackageVersionDiffs,
412412
) -> (
413413
impl Iterator<Item = (String, String, String)>,
414-
(usize, usize, usize),
414+
(usize, usize),
415415
) {
416416
let versions = versions
417417
.iter()
418418
.map(|(name, (v1, v2))| (name.to_string(), v1.to_string(), v2.to_string()))
419419
.sorted();
420420

421-
let longest_parts = versions.clone().fold(
422-
(0, 0, 0),
423-
|(max_name, max_current, max_latest), (name, current, latest)| {
424-
(
425-
max_name.max(name.len()),
426-
max_current.max(current.len()),
427-
max_latest.max(latest.len()),
428-
)
429-
},
430-
);
421+
let longest_parts =
422+
versions
423+
.clone()
424+
.fold((0, 0), |(max_name, max_current), (name, current, _)| {
425+
(max_name.max(name.len()), max_current.max(current.len()))
426+
});
431427

432428
(versions, longest_parts)
433429
}
434430

435431
fn pretty_print_major_versions_available(versions: dependency::PackageVersionDiffs) -> String {
436-
let total_lines = versions.len() + 3;
437-
let (
438-
versions,
439-
(longest_package_name_length, longest_current_version_length, longest_major_version_length),
440-
) = format_versions_and_extract_longest_parts(versions);
441-
442-
let mut output_string = String::with_capacity(
443-
(longest_package_name_length
444-
+ longest_current_version_length
445-
+ longest_major_version_length
446-
+ 5)
447-
* total_lines,
448-
);
432+
let (versions, (longest_package_name_length, longest_current_version_length)) =
433+
format_versions_and_extract_longest_parts(versions);
434+
435+
let mut output_string = String::new();
449436

450437
output_string.push_str("\nThe following dependencies have new major versions available:\n\n");
451438
for (name, v1, v2) in versions {
@@ -472,29 +459,15 @@ fn pretty_print_major_versions_available(versions: dependency::PackageVersionDif
472459
}
473460

474461
fn pretty_print_version_updates(versions: dependency::PackageVersionDiffs) -> String {
475-
let total_lines = versions.len() + 1;
476-
let (
477-
versions,
478-
(
479-
longest_package_name_length,
480-
longest_current_version_length,
481-
longest_latest_version_length,
482-
),
483-
) = format_versions_and_extract_longest_parts(versions);
462+
let (versions, (longest_package_name_length, longest_current_version_length)) =
463+
format_versions_and_extract_longest_parts(versions);
484464

485465
let longest_package_name_length = longest_package_name_length.max(7);
486-
let longest_current_version_length = (longest_current_version_length + 1).max(7);
487-
let longest_latest_version_length = (longest_latest_version_length + 1).max(6);
488-
489-
let mut output_string = String::with_capacity(
490-
(longest_package_name_length
491-
+ longest_current_version_length
492-
+ longest_latest_version_length
493-
+ 3)
494-
* total_lines,
495-
);
466+
let longest_current_version_length = longest_current_version_length.max(8);
467+
468+
let mut output_string = String::new();
496469

497-
let name_padding = " ".repeat(longest_package_name_length - 7);
470+
let name_padding = " ".repeat(longest_package_name_length - 6);
498471
let current_version_padding = " ".repeat(longest_current_version_length - 7);
499472

500473
output_string.push_str(
@@ -503,24 +476,29 @@ fn pretty_print_version_updates(versions: dependency::PackageVersionDiffs) -> St
503476
&name_padding,
504477
" Current",
505478
&current_version_padding,
506-
" Latest\n",
479+
" Latest\n",
480+
"-------",
481+
&name_padding,
482+
" -------",
483+
&current_version_padding,
484+
" ------\n",
507485
]
508486
.concat(),
509487
);
510488

511489
for (name, v1, v2) in versions {
512490
let name_padding = " ".repeat(longest_package_name_length - name.len());
513491
let current_version_padding =
514-
" ".repeat(longest_current_version_length - 1 - v1.to_string().len());
492+
" ".repeat(longest_current_version_length - v1.to_string().len());
515493

516494
output_string.push_str(
517495
&[
518496
&name,
519497
&name_padding,
520-
" v",
498+
" ",
521499
&v1.to_string(),
522500
&current_version_padding,
523-
" v",
501+
" ",
524502
&v2.to_string(),
525503
"\n",
526504
]
Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
---
22
source: compiler-cli/src/dependencies/tests.rs
3+
assertion_line: 1373
34
expression: output
5+
snapshot_kind: text
46
---
5-
Package Current Latest
6-
gleam_stdlib v0.45.0 v0.46.0
7-
very_long_package_name v12.12.12 v120.12.12
8-
wisp v2.1.0 v2.1.1
7+
Package Current Latest
8+
------- ------- ------
9+
gleam_stdlib 0.45.0 0.46.0
10+
very_long_package_name 12.12.12 120.12.12
11+
wisp 2.1.0 2.1.1

0 commit comments

Comments
 (0)