JSCS Cleanup-style guide cleanup for filters.js

Use angular's isString function rather than using a typeof comparison.
Separate filter registrations from filter module declaration. Use $inject to
inject i18n dependency.

Change-Id: I269bc571119acfbe1f153109a63f77cd8c519873
Partially-Implements: blueprint jscs-cleanup
This commit is contained in:
cbeasley 2015-07-08 15:29:17 -07:00
parent a336dbd707
commit c33d9d83f5
2 changed files with 58 additions and 28 deletions

View File

@ -16,14 +16,16 @@
(function () {
'use strict';
/**
* @ngdoc overview
* @name horizon.framework.util.filters
* @description
* horizon.framework.util.filters provides common filters to be used within Horizon.
*
*/
angular.module('horizon.framework.util.filters', ['horizon.framework.util.i18n'])
angular
.module('horizon.framework.util.filters')
.filter('yesno', yesNoFilter)
.filter('gb', gbFilter)
.filter('mb', mbFilter)
.filter('title', titleFilter)
.filter('noUnderscore', noUnderscoreFilter)
.filter('decode', decodeFilter)
.filter('bytes', bytesFilter)
.filter('itemCount', itemCountFilter);
/**
* @ngdoc filter
@ -32,11 +34,12 @@
* Evaluates given input for standard truthiness and returns translation
* of 'Yes' and 'No' for true/false respectively.
*/
.filter('yesno', ['horizon.framework.util.i18n.gettext', function (gettext) {
yesNoFilter.$inject = ['horizon.framework.util.i18n.gettext'];
function yesNoFilter(gettext) {
return function (input) {
return (input ? gettext("Yes") : gettext("No"));
};
}])
}
/**
* @ngdoc filter
@ -45,7 +48,7 @@
* Expects numeric value and suffixes translated 'GB' with spacing.
* Returns empty string if input is not a number or is null.
*/
.filter('gb', function () {
function gbFilter() {
return function (input) {
if (isNaN(input) || null === input) {
return '';
@ -53,7 +56,7 @@
return interpolate(gettext("%s GB"), [input.toString()]);
}
};
})
}
/**
* @ngdoc filter
@ -62,7 +65,7 @@
* Expects numeric value and suffixes translated 'MB' with spacing.
* Returns empty string if input is not a number or is null.
*/
.filter('mb', function () {
function mbFilter() {
return function (input) {
if (isNaN(input) || null === input) {
return '';
@ -70,7 +73,7 @@
return interpolate(gettext("%s MB"), [input.toString()]);
}
};
})
}
/**
* @ngdoc filter
@ -78,16 +81,16 @@
* @description
* Capitalizes leading characters of individual words.
*/
.filter('title', function () {
function titleFilter() {
return function (input) {
if (typeof input !== 'string') {
if (!angular.isString(input)) {
return input;
}
return input.replace(/(?:^|\s)\S/g, function (a) {
return a.toUpperCase();
});
};
})
}
/**
* @ngdoc filter
@ -95,14 +98,14 @@
* @description
* Replaces all underscores with spaces.
*/
.filter('noUnderscore', function () {
function noUnderscoreFilter() {
return function (input) {
if (typeof input !== 'string') {
if (!angular.isString(input)) {
return input;
}
return input.replace(/_/g, ' ');
};
})
}
/**
* @ngdoc filter
@ -112,12 +115,12 @@
* in given mapping, return key. This is useful when translations for
* codes are present.
*/
.filter('decode', function () {
function decodeFilter() {
return function (input, mapping) {
var val = mapping[input];
return angular.isDefined(val) ? val : input;
};
})
}
/**
* @ngdoc filter
@ -126,7 +129,7 @@
* Returns a human-readable approximation of the input of bytes,
* converted to a useful unit of measure. Uses 1024-based notation.
*/
.filter('bytes', function () {
function bytesFilter() {
return function (input) {
var kb = 1024;
var mb = kb * 1024;
@ -146,7 +149,7 @@
return interpolate(gettext("%s bytes"), [Math.floor(input)]);
}
};
})
}
/**
* @ngdoc filter
@ -155,7 +158,7 @@
* Displays translated count in table footer.
* Takes only finite numbers.
*/
.filter('itemCount', function () {
function itemCountFilter() {
return function (input) {
var isNumeric = (input !== null && isFinite(input));
var number = isNumeric ? Math.round(input) : 0;
@ -163,6 +166,5 @@
var format = ngettext('Displaying %s item', 'Displaying %s items', count);
return interpolate(format, [count]);
};
});
}());
}
})();

View File

@ -0,0 +1,28 @@
/*
* (c) Copyright 2015 Hewlett-Packard Development Company, L.P.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* 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.
*/
(function () {
'use strict';
/**
* @ngdoc overview
* @name horizon.framework.util.filters
* @description
* horizon.framework.util.filters provides common filters to be used within Horizon.
*
*/
angular
.module('horizon.framework.util.filters', ['horizon.framework.util.i18n']);
})();