summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@atos.net>2019-04-25 09:52:53 +0200
committerMatthias Beyer <matthias.beyer@atos.net>2019-04-25 09:56:25 +0200
commit66c91849ebd5e4b1161704a79527f3145b03208f (patch)
tree6afd5b688982d81f181231b1402fc24114f606dc
parent524336a3335aaf49274a3bc4a177990c791a75c7 (diff)
Refactor: Add helper function for constructing table object
-rw-r--r--src/frontend/table.rs41
1 files changed, 9 insertions, 32 deletions
diff --git a/src/frontend/table.rs b/src/frontend/table.rs
index ba5c21d..2440161 100644
--- a/src/frontend/table.rs
+++ b/src/frontend/table.rs
@@ -20,10 +20,8 @@ impl TableFrontend {
pub fn new(stdout: Stdout) -> Self {
TableFrontend(stdout)
}
-}
-impl Frontend for TableFrontend {
- fn list_packages(&self, packages: Vec<Package>) -> Result<()> {
+ fn mktable(&self) -> Table {
let mut table = Table::new();
let format = format::FormatBuilder::new()
.column_separator('|')
@@ -35,9 +33,14 @@ impl Frontend for TableFrontend {
.padding(1, 1)
.build();
table.set_format(format);
-
table.set_titles(row!["Name", "Version", "Repo", "Status", "URL"]);
+ table
+ }
+}
+impl Frontend for TableFrontend {
+ fn list_packages(&self, packages: Vec<Package>) -> Result<()> {
+ let mut table = self.mktable();
packages.iter().for_each(|package| {
let status = if let Some(stat) = package.status() {
format!("{}", stat)
@@ -65,20 +68,7 @@ impl Frontend for TableFrontend {
}
fn list_problems(&self, problems: Vec<Problem>) -> Result<()> {
- let mut table = Table::new();
- let format = format::FormatBuilder::new()
- .column_separator('|')
- .borders('|')
- .separators(
- &[format::LinePosition::Title, format::LinePosition::Top, format::LinePosition::Bottom],
- format::LineSeparator::new('-', '+', '+', '+')
- )
- .padding(1, 1)
- .build();
- table.set_format(format);
-
- table.set_titles(row!["Repo", "Name", "EffName", "Maintainer", "Description"]);
-
+ let mut table = self.mktable();
problems.iter().for_each(|problem| {
trace!("Adding row for: {:?}", problem);
table.add_row(row![
@@ -97,20 +87,7 @@ impl Frontend for TableFrontend {
}
fn compare_packages(&self, packages: Vec<ComparePackage>, backend: &Backend, filter_repos: Vec<Repo>) -> Result<()> {
- let mut table = Table::new();
- let format = format::FormatBuilder::new()
- .column_separator('|')
- .borders('|')
- .separators(
- &[format::LinePosition::Title, format::LinePosition::Top, format::LinePosition::Bottom],
- format::LineSeparator::new('-', '+', '+', '+')
- )
- .padding(1, 1)
- .build();
- table.set_format(format);
-
- table.set_titles(row!["Name", "Local Version", "Repo", "Upstream Version"]);
-
+ let mut table = self.mktable();
for package in packages {
backend
.project(package.name().deref())?