Skip to content

Commit fbc0c04

Browse files
committed
Fixed a bug where byte filters wasn't parsing string numbers.
1 parent 0292f7d commit fbc0c04

File tree

8 files changed

+42
-18
lines changed

8 files changed

+42
-18
lines changed

CHANGELOG

Lines changed: 0 additions & 2 deletions
This file was deleted.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@ Prints a number in a friendly byte representation<br/>
1717

1818
```html
1919
{{1536 | bytes}}
20+
{{'1536' | bytes}}
2021
{{1536 | bytes:2}}
2122

2223
Result:
2324
1.5 kB
25+
1.5 kB
2426
1.50 kB
2527
```
2628

bower.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-filters",
3-
"version": "1.1.1",
3+
"version": "1.2.0",
44
"main": "./dist/angular-filters.min.js",
55
"description": "Useful filters for AngularJS",
66
"repository": {
@@ -9,7 +9,7 @@
99
},
1010
"dependencies": {
1111
"angular": ">=1.3.x",
12-
"angular-mocks": "~1.3.7"
12+
"angular-mocks": ">=1.3.x"
1313
},
1414
"ignore": [
1515
"node_modules"

dist/angular-filters.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* Useful filters for AngularJS
3-
* @version v1.1.1 - 2014-11-18 * @link https://github.com/niemyjski/angular-filters
3+
* @version v1.2.0 - 2015-01-30 * @link https://github.com/exceptionless/angular-filters
44
* @author Blake Niemyjski <[email protected]>
55
* @license MIT License, http://www.opensource.org/licenses/MIT
66
*/(function () {
@@ -15,11 +15,13 @@
1515
angular.module('angular-filters')
1616
.filter('bytes', [function () {
1717
return function(bytes, precision) {
18-
if (bytes === 0) {
19-
return '0 B';
18+
if (typeof bytes !== 'number') {
19+
bytes = parseFloat(bytes);
2020
}
2121

22-
if (isNaN(parseFloat(bytes)) || !isFinite(bytes)) {
22+
if (bytes === 0) {
23+
return '0 B';
24+
} else if (isNaN(bytes) || !isFinite(bytes)) {
2325
return '-';
2426
}
2527

@@ -28,7 +30,11 @@
2830
bytes = -bytes;
2931
}
3032

31-
if (typeof precision === 'undefined') {
33+
if (typeof precision !== 'number') {
34+
precision = parseFloat(precision);
35+
}
36+
37+
if (isNaN(precision) || !isFinite(precision)) {
3238
precision = 1;
3339
}
3440

dist/angular-filters.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
22
"name": "angular-filters",
33
"description": "Useful filters for AngularJS",
4-
"version": "1.1.1",
4+
"version": "1.2.0",
55
"filename": "angular-filters.min.js",
66
"main": "./dist/angular-filters.min.js",
7-
"homepage": "https://github.com/niemyjski/angular-filters",
7+
"homepage": "https://github.com/exceptionless/angular-filters",
88
"author": "Blake Niemyjski <[email protected]>",
99
"repository": {
1010
"type": "git",
11-
"url": "git://github.com/niemyjski/angular-filters.git"
11+
"url": "git://github.com/exceptionless/angular-filters.git"
1212
},
1313
"engines": {
1414
"node": ">= 0.9"

src/bytes/bytes-filter-spec.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,18 @@ describe('Filter: bytes', function() {
1717
expect(byte(size, 2)).toBe('1.50 kB');
1818
});
1919

20+
it('should parse string numbers into byte', function () {
21+
expect(byte('0', 0)).toBe('0 B');
22+
expect(byte('10', 0)).toBe('10 B');
23+
24+
var size = 1024 + 512;
25+
expect(byte(size, '2')).toBe('1.50 kB');
26+
});
27+
28+
it('should recognize zero byte', function () {
29+
expect(byte(0, 0)).toBe('0 B');
30+
});
31+
2032
it('should recognize negative byte', function () {
2133
expect(byte(-1, 0)).toBe('-1 B');
2234
});

src/bytes/bytes-filter.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@
44
angular.module('angular-filters')
55
.filter('bytes', [function () {
66
return function(bytes, precision) {
7-
if (bytes === 0) {
8-
return '0 B';
7+
if (typeof bytes !== 'number') {
8+
bytes = parseFloat(bytes);
99
}
1010

11-
if (isNaN(parseFloat(bytes)) || !isFinite(bytes)) {
11+
if (bytes === 0) {
12+
return '0 B';
13+
} else if (isNaN(bytes) || !isFinite(bytes)) {
1214
return '-';
1315
}
1416

@@ -17,7 +19,11 @@
1719
bytes = -bytes;
1820
}
1921

20-
if (typeof precision === 'undefined') {
22+
if (typeof precision !== 'number') {
23+
precision = parseFloat(precision);
24+
}
25+
26+
if (isNaN(precision) || !isFinite(precision)) {
2127
precision = 1;
2228
}
2329

0 commit comments

Comments
 (0)