Skip to content

Commit eb395be

Browse files
committed
Instantiate the pad calculator selector outside the calculator
1 parent d238908 commit eb395be

5 files changed

Lines changed: 18 additions & 6 deletions

File tree

src/extension/extension.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { TrimmerTransformer } from '../modelFactory/transformers/trimmerTransfor
1414
import { BorderTransformer } from '../modelFactory/transformers/borderTransformer';
1515
import { SelectionInterpreter } from '../modelFactory/selectionInterpreter';
1616
import { SeparatorPadCalculator } from '../padCalculation/separatorPadCalculator';
17+
import { ColumnBasedPadCalculatorSelector } from '../padCalculation/columnBasedPadCalculatorSelector';
1718

1819
// This method is called when the extension is activated.
1920
// The extension is activated the very first time the command is executed.
@@ -29,7 +30,10 @@ export function activate(context: vscode.ExtensionContext): void {
2930
),
3031
new TableValidator(new SelectionInterpreter()),
3132
new TableViewModelFactory(
32-
new RowViewModelFactory(new ContentPadCalculator(), new SeparatorPadCalculator())
33+
new RowViewModelFactory(
34+
new ContentPadCalculator(new ColumnBasedPadCalculatorSelector()),
35+
new SeparatorPadCalculator(new ColumnBasedPadCalculatorSelector())
36+
)
3337
),
3438
new TableStringWriter(),
3539
[ new VsWindowLogger(), new ConsoleLogger() ])

src/padCalculation/contentPadCalculator.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ import { ColumnBasedPadCalculatorSelector } from "./columnBasedPadCalculatorSele
44

55
export class ContentPadCalculator implements PadCalculator {
66

7+
constructor(private _padCalculatorSelector: ColumnBasedPadCalculatorSelector) { }
8+
79
public getLeftPadding(paddingChar: string, table: Table, row: number, column: number): string {
8-
return new ColumnBasedPadCalculatorSelector().select(table, column).getLeftPadding(paddingChar, table, table.rows[row][column]);
10+
return this._padCalculatorSelector.select(table, column).getLeftPadding(paddingChar, table, table.rows[row][column]);
911
}
1012

1113
public getRightPadding(paddingChar: string, table: Table, row: number, column: number): string {
12-
return new ColumnBasedPadCalculatorSelector().select(table, column).getRightPadding(paddingChar, table, row, column);
14+
return this._padCalculatorSelector.select(table, column).getRightPadding(paddingChar, table, row, column);
1315
}
1416
}

test/systemTests/tableRangePrettyfierFactory.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { TrimmerTransformer } from '../../src/modelFactory/transformers/trimmerT
1818
import { BorderTransformer } from '../../src/modelFactory/transformers/borderTransformer';
1919
import { SelectionInterpreter } from '../../src/modelFactory/selectionInterpreter';
2020
import { SeparatorPadCalculator } from '../../src/padCalculation/separatorPadCalculator';
21+
import { ColumnBasedPadCalculatorSelector } from '../../src/padCalculation/columnBasedPadCalculatorSelector';
2122

2223
export class PrettyfierFromFile {
2324
private readonly _logger: ILogger;
@@ -59,7 +60,10 @@ export class PrettyfierFromFile {
5960
new TrimmerTransformer(new BorderTransformer(null))
6061
),
6162
new TableValidator(new SelectionInterpreter()),
62-
new TableViewModelFactory(new RowViewModelFactory(new ContentPadCalculator(), new SeparatorPadCalculator())),
63+
new TableViewModelFactory(new RowViewModelFactory(
64+
new ContentPadCalculator(new ColumnBasedPadCalculatorSelector()),
65+
new SeparatorPadCalculator(new ColumnBasedPadCalculatorSelector())
66+
)),
6367
new TableStringWriter(),
6468
[ this._logger ]
6569
);

test/unitTests/padCalculation/contentPadCalculator.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { Table } from '../../../src/models/table';
55
import { Alignment } from '../../../src/models/alignment';
66
import { Cell } from '../../../src/models/cell';
77
import { PadCalculator } from '../../../src/padCalculation/padCalculator';
8+
import { ColumnBasedPadCalculatorSelector } from '../../../src/padCalculation/columnBasedPadCalculatorSelector';
89

910
suite("ContentPadCalculator tests", () => {
1011

@@ -338,6 +339,6 @@ suite("ContentPadCalculator tests", () => {
338339
}
339340

340341
function createCalculator(): PadCalculator {
341-
return new ContentPadCalculator();
342+
return new ContentPadCalculator(new ColumnBasedPadCalculatorSelector());
342343
}
343344
});

test/unitTests/padCalculation/separatorPadCalculator.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { Alignment } from '../../../src/models/alignment';
55
import { Cell } from '../../../src/models/cell';
66
import { PadCalculator } from '../../../src/padCalculation/padCalculator';
77
import { SeparatorPadCalculator } from '../../../src/padCalculation/separatorPadCalculator';
8+
import { ColumnBasedPadCalculatorSelector } from '../../../src/padCalculation/columnBasedPadCalculatorSelector';
89

910
suite("SeparatorPadCalculator tests", () => {
1011

@@ -149,6 +150,6 @@ suite("SeparatorPadCalculator tests", () => {
149150
}
150151

151152
function createCalculator(): PadCalculator {
152-
return new SeparatorPadCalculator();
153+
return new SeparatorPadCalculator(new ColumnBasedPadCalculatorSelector());
153154
}
154155
});

0 commit comments

Comments
 (0)