Skip to content

Commit

Permalink
fixed formatting issue for negatives numbers with decimals
Browse files Browse the repository at this point in the history
  • Loading branch information
paulyoder committed Oct 17, 2014
1 parent 8214ba3 commit d74370f
Show file tree
Hide file tree
Showing 10 changed files with 46 additions and 9 deletions.
5 changes: 5 additions & 0 deletions CHANGLOG.md
@@ -1,5 +1,10 @@
# Changelog

### 1.5.3

* Bug Fixes
* Fixed a bug where `-1.2` was being formatted as `-1-1.2`

### 1.5.2

* Bug Fixes
Expand Down
7 changes: 6 additions & 1 deletion Gruntfile.coffee
Expand Up @@ -17,6 +17,11 @@ module.exports = (grunt) ->
build:
src: 'src/fcsaNumber.js'
dest: 'src/fcsaNumber.min.js'
file_append:
default_options:
files:
'src/fcsaNumber.js':
prepend: '/*! <%= pkg.name %> (version <%= pkg.version %>) <%= grunt.template.today("yyyy-mm-dd") %> */\n'
copy:
web_angular:
src: 'bower_components/angular/angular.js'
Expand Down Expand Up @@ -62,5 +67,5 @@ module.exports = (grunt) ->

require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks)

grunt.registerTask 'default', ['coffee', 'uglify', 'copy:web_angular', 'copy:web_fcsaNumber']
grunt.registerTask 'default', ['coffee', 'uglify', 'file_append', 'copy:web_angular', 'copy:web_fcsaNumber']
grunt.registerTask 'e2e', ['default', 'express', 'shell:protractor']
2 changes: 1 addition & 1 deletion bower.json
@@ -1,6 +1,6 @@
{
"name": "angular-fcsa-number",
"version": "1.5.2",
"version": "1.5.3",
"authors": [
"Paul Yoder <paulyoder@gmail.com>"
],
Expand Down
3 changes: 2 additions & 1 deletion e2e/web/public/fcsaNumber.js
@@ -1,3 +1,4 @@
/*! angular-fcsa-number (version 1.5.3) 2014-10-17 */
(function() {
var fcsaNumberModule,
__hasProp = {}.hasOwnProperty;
Expand Down Expand Up @@ -97,7 +98,7 @@
};
addCommasToInteger = function(val) {
var commas, decimals, wholeNumbers;
decimals = val.indexOf('.') == -1 ? '' : val.replace(/^\d+(?=\.)/, '');
decimals = val.indexOf('.') == -1 ? '' : val.replace(/^-?\d+(?=\.)/, '');
wholeNumbers = val.replace(/(\.\d+)$/, '');
commas = wholeNumbers.replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
return "" + commas + decimals;
Expand Down
5 changes: 3 additions & 2 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "angular-fcsa-number",
"version": "1.5.2",
"version": "1.5.3",
"description": "An Angular directive that validates numbers and adds commas for the thousands separator.",
"author": "https://github.com/FCSAmericaDev/fcsa-number/graphs/contributors",
"license": "MIT",
Expand All @@ -19,7 +19,8 @@
"grunt-contrib-copy": "~0.5",
"express": "~4.x",
"grunt-express-server": "~0.4.17",
"grunt-shell": "~0.7.0"
"grunt-shell": "~0.7.0",
"grunt-file-append": "0.0.5"
},
"scripts": {
"test": "grunt --verbose"
Expand Down
2 changes: 1 addition & 1 deletion src/fcsaNumber.coffee
Expand Up @@ -66,7 +66,7 @@ fcsaNumberModule.directive 'fcsaNumber',
true

addCommasToInteger = (val) ->
decimals = `val.indexOf('.') == -1 ? '' : val.replace(/^\d+(?=\.)/, '')`
decimals = `val.indexOf('.') == -1 ? '' : val.replace(/^-?\d+(?=\.)/, '')`
wholeNumbers = val.replace /(\.\d+)$/, ''
commas = wholeNumbers.replace /(\d)(?=(\d{3})+(?!\d))/g, '$1,'
"#{commas}#{decimals}"
Expand Down
3 changes: 2 additions & 1 deletion src/fcsaNumber.js
@@ -1,3 +1,4 @@
/*! angular-fcsa-number (version 1.5.3) 2014-10-17 */
(function() {
var fcsaNumberModule,
__hasProp = {}.hasOwnProperty;
Expand Down Expand Up @@ -97,7 +98,7 @@
};
addCommasToInteger = function(val) {
var commas, decimals, wholeNumbers;
decimals = val.indexOf('.') == -1 ? '' : val.replace(/^\d+(?=\.)/, '');
decimals = val.indexOf('.') == -1 ? '' : val.replace(/^-?\d+(?=\.)/, '');
wholeNumbers = val.replace(/(\.\d+)$/, '');
commas = wholeNumbers.replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
return "" + commas + decimals;
Expand Down
4 changes: 2 additions & 2 deletions src/fcsaNumber.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions test/fcsaNumber.spec.coffee
Expand Up @@ -43,6 +43,17 @@ describe 'fcsaNumber', ->
angular.element(el).triggerHandler 'blur'
expect(el.value).toBe '1,000'

describe 'with negative decimal number', ->
it 'correctly formats it', ->
$scope.model.number = -1000.2
el = $compile("<input type='text' name='number' ng-model='model.number' fcsa-number />")($scope)
el = el[0]
$scope.$digest()
angular.element(document.body).append el
angular.element(el).triggerHandler 'focus'
angular.element(el).triggerHandler 'blur'
expect(el.value).toBe '-1,000.2'

describe 'when more than 3 decimals', ->
it 'does not add commas to the decimals', ->
$scope.model.number = 1234.5678
Expand Down
13 changes: 13 additions & 0 deletions test/fcsaNumber.spec.js
Expand Up @@ -51,6 +51,19 @@
angular.element(el).triggerHandler('blur');
return expect(el.value).toBe('1,000');
});
describe('with negative decimal number', function() {
return it('correctly formats it', function() {
var el;
$scope.model.number = -1000.2;
el = $compile("<input type='text' name='number' ng-model='model.number' fcsa-number />")($scope);
el = el[0];
$scope.$digest();
angular.element(document.body).append(el);
angular.element(el).triggerHandler('focus');
angular.element(el).triggerHandler('blur');
return expect(el.value).toBe('-1,000.2');
});
});
return describe('when more than 3 decimals', function() {
return it('does not add commas to the decimals', function() {
var el;
Expand Down

0 comments on commit d74370f

Please sign in to comment.