apparel-sorter
Advanced tools
Comparing version
@@ -136,2 +136,5 @@ /* | ||
.map(getIndex)[0] || 0; | ||
} | ||
} | ||
exports.sort = exports.sortSizes; | ||
exports.index = exports.sizeIndex; |
{ | ||
"name": "apparel-sorter", | ||
"version": "0.1.4", | ||
"version": "0.2.0", | ||
"description": "ApparelSorter.js is a set of functions written in JavaScript that provide sorting for apparel sizes such as XS, S, M, L. It can also sort numeric sizes such as 12, 14, 16W, 18W, etc.", | ||
@@ -12,3 +12,3 @@ "scripts": { | ||
}, | ||
"author": "Grant Copley <grant@clocktowerlogic.com> (http://clocktowerlogic.com)", | ||
"author": "Grant Copley <gcopley@gmail.com>", | ||
"license": "bsd", | ||
@@ -15,0 +15,0 @@ "devDependencies": { |
@@ -12,8 +12,8 @@ # ApparelSorter.js | ||
```javascript | ||
var apparelSorter = require('apparel-sorter'); | ||
var sorted = apparelSorter.sortSizes(["XL", "L", "S", "M", "XS"]); // returns ["XS","S","M","L","XL"] | ||
var sorter = require('apparel-sorter'); | ||
var sizes = sorter.sort(["XL", "L", "S", "M", "XS"]); // returns ["XS","S","M","L","XL"] | ||
``` | ||
You can also return the sort index. The sort index could then, for example, be stored in a database for easy sorting in SQL. | ||
```javascript | ||
var sizeIndex = apparelSorter.sizeIndex("XS"); // returns a number | ||
var index = sorter.index("XS"); // returns a number | ||
``` | ||
@@ -20,0 +20,0 @@ |
var apparelSorter = require('../lib/ApparelSorter.js'); | ||
var assert = require('assert'); | ||
describe("sortSizes() functionality", function() { | ||
describe("sort() functionality", function() { | ||
it("should sort standard abbreviated sizes", function() { | ||
var sizes = ["XL", "L", "S", "M", "XS","3XL","1XL","2XL"]; | ||
assert.deepEqual(["XS","S","M","L","XL","1XL","2XL","3XL"], apparelSorter.sortSizes(sizes)); | ||
assert.deepEqual(["XS","S","M","L","XL","1XL","2XL","3XL"], apparelSorter.sort(sizes)); | ||
}); | ||
@@ -13,5 +13,5 @@ | ||
var sizes = ["3XL","1XL","XXL"]; | ||
assert.deepEqual(["1XL", "XXL", "3XL"], apparelSorter.sortSizes(sizes)); | ||
assert.deepEqual(["1XL", "XXL", "3XL"], apparelSorter.sort(sizes)); | ||
var sizes = ["3XL","1XL","2XL"]; | ||
assert.deepEqual(["1XL", "2XL", "3XL"], apparelSorter.sortSizes(sizes)); | ||
assert.deepEqual(["1XL", "2XL", "3XL"], apparelSorter.sort(sizes)); | ||
}); | ||
@@ -21,3 +21,3 @@ | ||
var sizes = ["6X","5X","9XL","3XL", "2X","1X","18X","13X"]; | ||
assert.deepEqual(["1X","2X","3XL","5X","6X","9XL","13X","18X"], apparelSorter.sortSizes(sizes)); | ||
assert.deepEqual(["1X","2X","3XL","5X","6X","9XL","13X","18X"], apparelSorter.sort(sizes)); | ||
}); | ||
@@ -27,3 +27,3 @@ | ||
var sizes = ["L/XL","XS/S","S/M"]; | ||
assert.deepEqual(["XS/S","S/M","L/XL"], apparelSorter.sortSizes(sizes)); | ||
assert.deepEqual(["XS/S","S/M","L/XL"], apparelSorter.sort(sizes)); | ||
}); | ||
@@ -33,3 +33,3 @@ | ||
var sizes = ["18W", "16", "14", "12", "10", "8", "6", "4", "2", "0"]; | ||
assert.deepEqual(["0","2","4","6","8","10","12","14","16","18W"], apparelSorter.sortSizes(sizes)); | ||
assert.deepEqual(["0","2","4","6","8","10","12","14","16","18W"], apparelSorter.sort(sizes)); | ||
}); | ||
@@ -39,12 +39,30 @@ | ||
var sizes = ["LS", "SS"]; | ||
assert.deepEqual(["SS","LS"], apparelSorter.sortSizes(sizes)); | ||
assert.deepEqual(["SS","LS"], apparelSorter.sort(sizes)); | ||
var sizes = ["Long Sleeve", "Short Sleeve"]; | ||
assert.deepEqual(["Short Sleeve","Long Sleeve"], apparelSorter.sortSizes(sizes)); | ||
assert.deepEqual(["Short Sleeve","Long Sleeve"], apparelSorter.sort(sizes)); | ||
}); | ||
it("calling sortSizes() function instead of sort() should still work", function() { | ||
var sizes = ["3XL","1XL","XXL"]; | ||
assert.deepEqual(["1XL", "XXL", "3XL"], apparelSorter.sortSizes(sizes)); | ||
var sizes = ["3XL","1XL","2XL"]; | ||
assert.deepEqual(["1XL", "2XL", "3XL"], apparelSorter.sortSizes(sizes)); | ||
}); | ||
}); | ||
describe("sizeIndex() functionality", function() { | ||
describe("index() functionality", function() { | ||
it("should return a numeric value for various sizes", function() { | ||
assert(apparelSorter.index("XS") > 0); | ||
assert(apparelSorter.index("Small") > 0); | ||
assert(apparelSorter.index("Large") > 0); | ||
}); | ||
it("should return zero for unknown size", function() { | ||
assert(apparelSorter.index("UnknownSize") == 0); | ||
assert(apparelSorter.index("This is a very large unknown size") == 0); | ||
}); | ||
it("calling sizeIndex() function instead of index() should still work", function() { | ||
assert(apparelSorter.sizeIndex("XS") > 0); | ||
@@ -55,7 +73,2 @@ assert(apparelSorter.sizeIndex("Small") > 0); | ||
it("should return zero for unknown size", function() { | ||
assert(apparelSorter.sizeIndex("UnknownSize") == 0); | ||
assert(apparelSorter.sizeIndex("This is a very large unknown size") == 0); | ||
}); | ||
}); |
10022
5.73%178
7.88%