decimal-numbering
Advanced tools
Comparing version 2.0.0 to 2.0.1
38
index.js
// Copyright 2015 Kyle E. Mitchell | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// Licensed under the Apache License, Version 2.0 (the "License"); you | ||
// may not use this file except in compliance with the License. You may | ||
// obtain a copy of the License at | ||
// | ||
@@ -11,21 +11,23 @@ // http://www.apache.org/licenses/LICENSE-2.0 | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | ||
// implied. See the License for the specific language governing | ||
// permissions and limitations under the License. | ||
var alpha = require('lower-alpha') | ||
module.exports = function(numbering, shortForm) { | ||
module.exports = function decimal (numbering, shortForm) { | ||
return ( | ||
( shortForm ? '' : 'Section ' ) + | ||
(shortForm ? '' : 'Section ') + | ||
numbering | ||
.map(function(component) { | ||
var element = component.element | ||
var series = component.series | ||
return ( | ||
series.of > 1 ? | ||
( alpha(series.number) + '-' + element.number ) : | ||
element.number ) }) | ||
.join('.') | ||
.toUpperCase() + | ||
( shortForm ? '.' : '' ) ) } | ||
.map(function (component) { | ||
var element = component.element | ||
var series = component.series | ||
return series.of > 1 | ||
? (alpha(series.number) + '-' + element.number) | ||
: element.number | ||
}) | ||
.join('.') | ||
.toUpperCase() + | ||
(shortForm ? '.' : '') | ||
) | ||
} |
{ | ||
"name": "decimal-numbering", | ||
"description": "number hierarchical document parts like \"Section 1.5.3\"", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"author": "Kyle E. Mitchell <kyle@kemitchell.com> (https://kemitchell.com)", | ||
@@ -11,3 +11,4 @@ "dependencies": { | ||
"defence-cli": "^1.0.1", | ||
"replace-require-self": "^1.0.0" | ||
"replace-require-self": "^1.0.0", | ||
"standard": "^8.0.0-beta.5" | ||
}, | ||
@@ -32,4 +33,4 @@ "files": [ | ||
"scripts": { | ||
"test": "defence README.md | replace-require-self | node" | ||
"lint": "standard" | ||
} | ||
} |
@@ -8,37 +8,67 @@ Exports a single function of an [abstract numbering](https://npmjs.com/package/abstract-numbering) to a string. | ||
assert.deepEqual( | ||
decimal( | ||
[ { series: { number: 1, of: 2 }, | ||
element: { number: 1, of: 1 } } ]), | ||
'Section A-1') | ||
decimal([ | ||
{ | ||
series: {number: 1, of: 2}, | ||
element: {number: 1, of: 1} | ||
} | ||
]), | ||
'Section A-1' | ||
) | ||
assert.deepEqual( | ||
decimal( | ||
[ { series: { number: 28, of: 28 }, | ||
element: { number: 1, of: 1 } } ]), | ||
'Section AB-1') | ||
decimal([ | ||
{ | ||
series: {number: 28, of: 28}, | ||
element: {number: 1, of: 1} | ||
} | ||
]), | ||
'Section AB-1' | ||
) | ||
assert.deepEqual( | ||
decimal( | ||
[ { series: { number: 1, of: 1 }, | ||
element: { number: 1, of: 1 } }, | ||
{ series: { number: 1, of: 1 }, | ||
element: { number: 1, of: 1 } }, | ||
{ series: { number: 1, of: 1 }, | ||
element: { number: 1, of: 1 } }, | ||
{ series: { number: 1, of: 1 }, | ||
element: { number: 1, of: 1 } } ]), | ||
'Section 1.1.1.1') | ||
decimal([ | ||
{ | ||
series: {number: 1, of: 1}, | ||
element: {number: 1, of: 1} | ||
}, | ||
{ | ||
series: {number: 1, of: 1}, | ||
element: {number: 1, of: 1} | ||
}, | ||
{ | ||
series: {number: 1, of: 1}, | ||
element: {number: 1, of: 1} | ||
}, | ||
{ | ||
series: {number: 1, of: 1}, | ||
element: {number: 1, of: 1} | ||
} | ||
]), | ||
'Section 1.1.1.1' | ||
) | ||
assert.deepEqual( | ||
decimal( | ||
[ { series: { number: 1, of: 1 }, | ||
element: { number: 1, of: 1 } }, | ||
{ series: { number: 1, of: 1 }, | ||
element: { number: 1, of: 1 } }, | ||
{ series: { number: 1, of: 1 }, | ||
element: { number: 1, of: 1 } }, | ||
{ series: { number: 1, of: 1 }, | ||
element: { number: 1, of: 1 } } ], | ||
true), | ||
'1.1.1.1.') | ||
[ | ||
{ | ||
series: {number: 1, of: 1}, | ||
element: {number: 1, of: 1} | ||
}, | ||
{ | ||
series: {number: 1, of: 1}, | ||
element: {number: 1, of: 1} | ||
}, | ||
{ | ||
series: {number: 1, of: 1}, | ||
element: {number: 1, of: 1} | ||
}, | ||
{ | ||
series: {number: 1, of: 1}, | ||
element: {number: 1, of: 1} | ||
} | ||
], | ||
true | ||
), | ||
'1.1.1.1.' | ||
) | ||
``` |
14517
30
74
3