Skip to content

Commit

Permalink
Added code climate badge and had to modify some code that, to it, loo…
Browse files Browse the repository at this point in the history
…ked duplicated.
  • Loading branch information
julianjensen committed Jun 29, 2017
1 parent 1041e01 commit 7c9705b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 6 deletions.
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ But better, I think, read on...
[![Codacy Badge][codacy-image]][codacy-url]
[![david-dm][david-dm-image]][david-dm-url]
[![bitHound Code][bithound-image]][bithound-url]
[![Code Climate][codeclimate-image]][codeclimate-url]

## The Problem

Expand Down Expand Up @@ -128,4 +129,7 @@ console.log( `packed letters and numbers only: ${strip.packed_alphanum( simpleSt
[david-dm-url]: https://david-dm.org/julianjensen/yads

[bithound-image]: https://www.bithound.io/github/julianjensen/yads/badges/code.svg
[bithound-url]: https://www.bithound.io/github/julianjensen/yads
[bithound-url]: https://www.bithound.io/github/julianjensen/yads

[codeclimate-image]: https://codeclimate.com/github/julianjensen/yads/badges/gpa.svg
[codeclimate-url]: https://codeclimate.com/github/julianjensen/yads
16 changes: 11 additions & 5 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,15 +100,21 @@ const defaultDiacriticsRemovalMap = [
defaultDiacriticsRemovalMap.forEach( o => [ ...o.letters ].forEach( l => diacriticsMap[ l ] = o.base ) );

const diacritics = {
_slower: str => str.replace( /[\u0300-\u036F]|[\u1AB0-\u1AFF]|[\u1DC0-\u1DFF]|[\u20D0-\u20FF]|[\uFE20-\uFE2F]/g, '' ).replace( /[^\u0000-\u007E]/g, a => diacriticsMap[ a ] || a ),
_faster: str => str.replace( /[^\u0000-\u007E]/g, a => diacriticsMap[ a ] || a ),
precomposed: imStr => ( diacritics.remove_diacritics = str => diacritics._faster( str ) ) && imStr && diacritics._faster( imStr ),
combining: imStr => ( diacritics.remove_diacritics = str => diacritics._slower( str ) ) && imStr && diacritics._slower( imStr ),
remove_diacritics: str => diacritics._slower( str ),
_slower: str => typeof str === 'string' && str.replace( /[\u0300-\u036F]|[\u1AB0-\u1AFF]|[\u1DC0-\u1DFF]|[\u20D0-\u20FF]|[\uFE20-\uFE2F]/g, '' ).replace( /[^\u0000-\u007E]/g, a => diacriticsMap[ a ] || a ),
_faster: str => typeof str === 'string' && str.replace( /[^\u0000-\u007E]/g, a => diacriticsMap[ a ] || a ),
__mode: null,

precomposed: fStr => ( diacritics.__mode = diacritics._faster )( fStr ),
combining: sStr => ( diacritics.__mode = diacritics._slower )( sStr ),

remove_diacritics: str => diacritics.__mode( str ),

letters: str => module.exports.remove_diacritics( str ).replace( /[^a-z ]/gi, '' ),
packed: str => module.exports.remove_diacritics( str ).replace( /[^a-z]/gi, '' ),
alphanum: str => module.exports.remove_diacritics( str ).replace( /[^a-z0-9 ]/gi, '' ),
packed_alphanum: str => module.exports.remove_diacritics( str ).replace( /[^a-z0-9]/gi, '' )
};

diacritics.__mode = diacritics._slower;

module.exports = diacritics;

0 comments on commit 7c9705b

Please sign in to comment.