Skip to content

Commit

Permalink
Change remove excess Cube.create method
Browse files Browse the repository at this point in the history
  • Loading branch information
feonit committed Jan 7, 2019
1 parent 0c556f4 commit 8c86720
Show file tree
Hide file tree
Showing 25 changed files with 60 additions and 134 deletions.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ let dimensionHierarchies = [
];

// We send it all to the constructor
let cube = Cube.create(dimensionHierarchies);
let cube = new Cube({dimensionHierarchies});
cube.addFacts(facts);

```
Expand Down Expand Up @@ -457,7 +457,7 @@ let facts = [
{ id: 1, product: 'TV', mark: 'Sony', country: 'China', count: 2 },
{ id: 1, product: 'TV', mark: 'Samsung', country: 'Niderland', count: 3 }
];
let cube = Cube.create();
let cube = new Cube();
cube.addFacts(facts);
cube.addDimensionHierarchy({
dimensionTable: {
Expand Down Expand Up @@ -507,7 +507,7 @@ let facts = [
{ id: 1, region: 'North', product: 'Product 1', value: 10 },
{ id: 2, region: 'South', product: 'Product 2', value: 20 }
];
let cube = Cube.create(dimensionHierarchies);
let cube = new Cube({dimensionHierarchies});
cube.addFacts(facts);
```
Expand Down Expand Up @@ -582,7 +582,7 @@ let dimensionHierarchies = [
}
}
]
let cube = Cube.create(dimensionHierarchies)
let cube = new Cube({dimensionHierarchies})
cube.addFacts(facts);
let members = cube.getDimensionMembers('user')
```
Expand Down Expand Up @@ -615,7 +615,7 @@ let dimensionHierarchies = [
]
}
];
let cube = Cube.create(dimensionHierarchies);
let cube = new Cube({dimensionHierarchies});
cube.addFacts(facts);
```
Expand Down Expand Up @@ -657,7 +657,7 @@ let dimensionHierarchies = [
}
}
];
let cube = Cube.create(dimensionHierarchies)
let cube = new Cube({dimensionHierarchies})
cube.addDimensionMember('user')
```
### Custom facts
Expand All @@ -679,7 +679,7 @@ let dimensionHierarchies = [
let options = {
factPrimaryKey: 'saleId'
}
let cube = Cube.create(dimensionHierarchies, options)
let cube = new Cube({dimensionHierarchies, ...options})
cube.addFacts(facts);
```
Expand Down Expand Up @@ -711,7 +711,7 @@ let options = {
isOpen: false
}
}
let cube = Cube.create(dimensionHierarchies, options);
let cube = new Cube({dimensionHierarchies, ...options});
cube.addFacts(facts);
cube.fillEmptyCells();
cube.addDimensionMember('x', { x: 3 })
Expand Down
2 changes: 1 addition & 1 deletion spec/data/products.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ const dimensionHierarchies = [
];

export function createProductCube() {
const cube = Cube.create(dimensionHierarchies);
const cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);
return cube;
}
4 changes: 3 additions & 1 deletion src/Cube.defaultFactOptions.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,7 @@ export default () => {
&& typeof cube.defaultFactOptions === 'object'
).toBe(true)
});
xit('add inevitability of defaultFactOptions property')
xit('add inevitability for defaultFactOptions property', () => {

})
};
8 changes: 4 additions & 4 deletions src/Cube.factPrimaryKey.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export default () => {
{ id: 1, direction: 'left', date: '01' },
{ id: 2, direction: 'right', date: '02' },
];
cube = Cube.create(dimensionHierarchies, options);
cube = new Cube({dimensionHierarchies, ...options});
cube.addFacts(factTable);
expect(cube.factPrimaryKey === 'id').toBe(true);
});
Expand All @@ -40,7 +40,7 @@ export default () => {
{ direction: 'left', date: '01' },
{ direction: 'right', date: '02' },
];
cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);
}).toThrow();
});
Expand All @@ -52,7 +52,7 @@ export default () => {
{ direction: 'right', date: '02' },
];
try {
cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);
} catch (error) {
err = error
Expand All @@ -68,7 +68,7 @@ export default () => {
options = {
factPrimaryKey: 'factId'
};
cube = Cube.create(dimensionHierarchies, options);
cube = new Cube({dimensionHierarchies, ...options});
cube.addFacts(factTable);
expect(cube.getCells()[0]["factId"]).toBeDefined();
isEqualObjects(cube.getFacts(), factTable);
Expand Down
28 changes: 0 additions & 28 deletions src/Cube.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import DimensionHierarchy from './DimensionHierarchy.js'
import DimensionTable from './DimensionTable.js'
import {
InsufficientRollupData,
CreateInstanceException
} from './errors.js';
import SnowflakeBuilder from './SnowflakeBuilder.js'
import console from './console.js'
Expand Down Expand Up @@ -79,33 +78,6 @@ class Cube {
// console.warn('Fact table has residuals', residuals)
// }
}
/**
* @public
* Fabric method for creating cube from facts and dimensionHierarchiesData data
* analogy to the construction of such a call:
* (new Cube(dimensionHierarchiesData)).addFacts(factTable)
*
* @param {Object[]} dimensionHierarchies
* @param {Object} options
* @return {Cube}
* @throw {TypeError}
* */
static create(dimensionHierarchies = [], options) {
if (!Array.isArray(dimensionHierarchies)){
throw TypeError("The first argument must be an array")
}

if (!(Cube.isPrototypeOf(this) || Cube === this)) {
throw new CreateInstanceException()
}

const cube = new this({
...options,
dimensionHierarchies: dimensionHierarchies,
});

return cube;
}
/**
* is the act of picking a rectangular subset of a cube by choosing a single value
* for one of its dimensions, creating a new cube with one fewer dimension.
Expand Down
4 changes: 2 additions & 2 deletions src/Cube.prototype.addDimensionHierarchy.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export default () => {
{ id: 1, x_id: 1 },
{ id: 2, x_id: 2 }
];
cube = Cube.create();
cube = new Cube();
cube.addFacts(facts);

addDimensionHierarchy = () => {
Expand Down Expand Up @@ -58,7 +58,7 @@ export default () => {
{ id: 1, x_id: 1 },
{ id: 2, x_id: 2 }
];
cube = Cube.create();
cube = new Cube();
cube.addFacts(facts);

addDimensionHierarchy = () => {
Expand Down
6 changes: 3 additions & 3 deletions src/Cube.prototype.addDimensionMember.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export default () => {
{ id: 1, x: 0, xx: 0, xxx: 0 , xxxx: 0, z: 0 },
];

cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);

});
Expand Down Expand Up @@ -137,7 +137,7 @@ export default () => {
}
];

cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);
});

Expand Down Expand Up @@ -244,7 +244,7 @@ export default () => {
{ id: 4, product: 'telephone', category: 'electronic', money: '15$', year: '2018', month: 'january', day: 3 }
];

cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);
// todo need fill before add, because actually getFacts method invoke fill method inside, need some to do with this
cube.fillEmptyCells();
Expand Down
2 changes: 1 addition & 1 deletion src/Cube.prototype.addEmptyCells.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export default () => {
}
}
];
cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);
});

Expand Down
8 changes: 4 additions & 4 deletions src/Cube.prototype.createEmptyCells.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export default () => {
{ dimensionTable: { dimension: 'y', keyProps: ['y'] }},
{ dimensionTable: { dimension: 'z', keyProps: ['z'] }}
];
cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);
});

Expand Down Expand Up @@ -91,7 +91,7 @@ export default () => {
isOpen: expectedValue
}
};
const cube = Cube.create(dimensionHierarchies, options);
const cube = new Cube({dimensionHierarchies, ...options});
cube.addFacts(factTable);
const emptyCells = cube.createEmptyCells();

Expand Down Expand Up @@ -128,7 +128,7 @@ export default () => {
}
};
const expectedCountValue = 100;
const cube = Cube.create(dimensionHierarchies, options);
const cube = new Cube({dimensionHierarchies, ...options});
cube.addFacts(factTable);
const emptyCells = cube.createEmptyCells({count: expectedCountValue});
emptyCells.forEach(emptyCell => {
Expand Down Expand Up @@ -164,7 +164,7 @@ export default () => {
}
}
const expectedValue = 'some value';
const cube = Cube.create(dimensionHierarchies, options);
const cube = new Cube({dimensionHierarchies, ...options});
cube.addFacts(factTable);
const emptyCells = cube.createEmptyCells({ x_id: expectedValue });
emptyCells.forEach(emptyCell => {
Expand Down
2 changes: 1 addition & 1 deletion src/Cube.prototype.dice.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export default () => {
},
}
];
cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(facts);
});
it('should define dice', () => {
Expand Down
4 changes: 2 additions & 2 deletions src/Cube.prototype.drillUpAndDown.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,15 @@ export default () => {
});

it('drillUp ', () => {
cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(facts);
expect(debug = cube.dimensionHierarchies[0].activeDimension === 'name');
cube.drillUp('humans', 'group');
expect(debug = cube.dimensionHierarchies[0].activeDimension === 'group').toBe(true)
});
it('drillDown', () => {
dimensionHierarchies[0].activeDimension = 'group';
cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(facts);
expect(debug = cube.dimensionHierarchies[0].activeDimension === 'group');
cube.drillDown('humans', 'name');
Expand Down
10 changes: 5 additions & 5 deletions src/Cube.prototype.fillEmptyCells.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export default () => {
});

it('should normalize count of cells for non-normalized data', () => {
let cube = Cube.create(dimensionHierarchies);
let cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);
expect(debug = Cube.cartesian(cube).length).toBe(8);
expect(debug = cube.getFacts().length).toBe(5);
Expand All @@ -36,7 +36,7 @@ export default () => {
});

it('should normalize count of cells for non-normalized data with default props', () => {
let cube = Cube.create(dimensionHierarchies);
let cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);

cube.fillEmptyCells({ is: false });
Expand Down Expand Up @@ -92,7 +92,7 @@ export default () => {
{ id: 2, humans: 5, city: 'Paris', nationality: 'French', country: 'France', planet: 'Earth' },
];

const cube = Cube.create(dimensionHierarchies);
const cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);

expect(debug = Cube.cartesian(cube).length).toBe(4);
Expand All @@ -109,7 +109,7 @@ export default () => {
{ id: 3, humans: 1, city: 'Paris', nationality: 'French', country: 'France', planet: 'Mars' },
];

const cube = Cube.create(dimensionHierarchies);
const cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);

expect(debug = Cube.cartesian(cube).length).toBe(6);
Expand Down Expand Up @@ -139,7 +139,7 @@ export default () => {
{ id: 1, x: 0, y: 1, xy: true },
{ id: 2, x: 1, y: 0, xy: true }
];
const cube = Cube.create(dimensionHierarchies);
const cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);

cube.fillEmptyCells({ xy: false });
Expand Down
2 changes: 1 addition & 1 deletion src/Cube.prototype.getEmptyCells.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export default () => {
}
}
];
cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);
});

Expand Down
5 changes: 3 additions & 2 deletions src/Cube.prototype.removeDimensionHierarchy.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,15 @@ export default () => {
{ id: 1, x_id: 1 },
{ id: 2, x_id: 2 }
];
cube = Cube.create([
const dimensionHierarchies = [
{
dimensionTable: {
dimension: 'x',
keyProps: ['x']
}
}
]);
];
cube = new Cube({dimensionHierarchies});
cube.addFacts(facts);
removeDimensionHierarchy = () => {
cube.removeDimensionHierarchy(cube.dimensionHierarchies[0]);
Expand Down
2 changes: 1 addition & 1 deletion src/Cube.prototype.removeDimensionMember.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export default () => {
]
}
];
cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(factTable);
});

Expand Down
2 changes: 1 addition & 1 deletion src/Cube.prototype.slice.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export default () => {
},
}
];
cube = Cube.create(dimensionHierarchies);
cube = new Cube({dimensionHierarchies});
cube.addFacts(facts);
});
it('should define slice', () => {
Expand Down
Loading

0 comments on commit 8c86720

Please sign in to comment.