Comparing version 1.5.0 to 1.5.1
@@ -1,2 +0,2 @@ | ||
/*! Case - v1.5.0 - 2017-03-09 | ||
/*! Case - v1.5.1 - 2017-03-22 | ||
* Copyright (c) 2017 Nathan Bubna; Licensed MIT, GPL */ | ||
@@ -49,11 +49,14 @@ (function() { | ||
fill: function(s, fill, deapostrophe) { | ||
if (s) { | ||
s = fill == null ? s : s.replace(re.fill, function(m, next) { | ||
if (fill != null) { | ||
s = s.replace(re.fill, function(m, next) { | ||
return next ? fill + next : ''; | ||
}); | ||
return deapostrophe ? _.deapostrophe(s) : s; | ||
} | ||
if (deapostrophe) { | ||
s = _.deapostrophe(s); | ||
} | ||
return s; | ||
}, | ||
prep: function(s, fill, pascal, upper) { | ||
if (!s){ return s || ''; } | ||
s = s == null ? '' : s + '';// force to string | ||
if (!upper && re.upper.test(s)) { | ||
@@ -60,0 +63,0 @@ s = _.low.call(s); |
@@ -1,5 +0,5 @@ | ||
/*! Case - v1.5.0 - 2017-03-09 | ||
/*! Case - v1.5.1 - 2017-03-22 | ||
* Copyright (c) 2017 Nathan Bubna; Licensed MIT, GPL */ | ||
(function(){"use strict";var a=function(a,b){return b=b||"",a.replace(/(^|-)/g,"$1\\u"+b).replace(/,/g,"\\u"+b)},b=a("20-26,28-2F,3A-40,5B-60,7B-7E,A0-BF,D7,F7","00"),c="a-z"+a("DF-F6,F8-FF","00"),d="A-Z"+a("C0-D6,D8-DE","00"),e="A|An|And|As|At|But|By|En|For|If|In|Of|On|Or|The|To|Vs?\\.?|Via",f=function(a,f,g,h){return a=a||b,f=f||c,g=g||d,h=h||e,{capitalize:new RegExp("(^|["+a+"])(["+f+"])","g"),pascal:new RegExp("(^|["+a+"])+(["+f+g+"])","g"),fill:new RegExp("["+a+"]+(.|$)","g"),sentence:new RegExp('(^\\s*|[\\?\\!\\.]+"?\\s+"?|,\\s+")(['+f+"])","g"),improper:new RegExp("\\b("+h+")\\b","g"),relax:new RegExp("([^"+g+"])(["+g+"]*)(["+g+"])(?=["+f+"]|$)","g"),upper:new RegExp("^[^"+f+"]+$"),hole:/[^\s]\s[^\s]/,apostrophe:/'/g,room:new RegExp("["+a+"]")}},g=f(),h={re:g,unicodes:a,regexps:f,types:[],up:String.prototype.toUpperCase,low:String.prototype.toLowerCase,cap:function(a){return h.up.call(a.charAt(0))+a.slice(1)},decap:function(a){return h.low.call(a.charAt(0))+a.slice(1)},deapostrophe:function(a){return a.replace(g.apostrophe,"")},fill:function(a,b,c){return a?(a=null==b?a:a.replace(g.fill,function(a,c){return c?b+c:""}),c?h.deapostrophe(a):a):void 0},prep:function(a,b,c,d){if(!a)return a||"";if(!d&&g.upper.test(a)&&(a=h.low.call(a)),!b&&!g.hole.test(a)){var e=h.fill(a," ");g.hole.test(e)&&(a=e)}return c||g.room.test(a)||(a=a.replace(g.relax,h.relax)),a},relax:function(a,b,c,d){return b+" "+(c?c+" ":"")+d}},i={_:h,of:function(a){for(var b=0,c=h.types.length;c>b;b++)if(i[h.types[b]](a)===a)return h.types[b]},flip:function(a){return a.replace(/\w/g,function(a){return(a==h.up.call(a)?h.low:h.up).call(a)})},random:function(a){return a.replace(/\w/g,function(a){return(Math.round(Math.random())?h.up:h.low).call(a)})},type:function(a,b){i[a]=b,h.types.push(a)}},j={lower:function(a,b,c){return h.fill(h.low.call(h.prep(a,b)),b,c)},snake:function(a){return i.lower(a,"_",!0)},constant:function(a){return i.upper(a,"_",!0)},camel:function(a){return h.decap(i.pascal(a))},kebab:function(a){return i.lower(a,"-",!0)},header:function(a){return i.capital(a,"-",!0)},upper:function(a,b,c){return h.fill(h.up.call(h.prep(a,b,!1,!0)),b,c)},capital:function(a,b,c){return h.fill(h.prep(a).replace(g.capitalize,function(a,b,c){return b+h.up.call(c)}),b,c)},pascal:function(a){return h.fill(h.prep(a,!1,!0).replace(g.pascal,function(a,b,c){return h.up.call(c)}),"",!0)},title:function(a){return i.capital(a).replace(g.improper,function(a,b,c,d){return c>0&&c<d.lastIndexOf(" ")?h.low.call(a):a})},sentence:function(a,b){return a=i.lower(a).replace(g.sentence,function(a,b,c){return b+h.up.call(c)}),b&&b.forEach(function(b){a=a.replace(new RegExp("\\b"+i.lower(b)+"\\b","g"),h.cap)}),a}};j.squish=j.pascal;for(var k in j)i.type(k,j[k]);var l="function"==typeof l?l:function(){};l("object"==typeof module&&module.exports?module.exports=i:this.Case=i)}).call(this); | ||
(function(){"use strict";var a=function(a,b){return b=b||"",a.replace(/(^|-)/g,"$1\\u"+b).replace(/,/g,"\\u"+b)},b=a("20-26,28-2F,3A-40,5B-60,7B-7E,A0-BF,D7,F7","00"),c="a-z"+a("DF-F6,F8-FF","00"),d="A-Z"+a("C0-D6,D8-DE","00"),e="A|An|And|As|At|But|By|En|For|If|In|Of|On|Or|The|To|Vs?\\.?|Via",f=function(a,f,g,h){return a=a||b,f=f||c,g=g||d,h=h||e,{capitalize:new RegExp("(^|["+a+"])(["+f+"])","g"),pascal:new RegExp("(^|["+a+"])+(["+f+g+"])","g"),fill:new RegExp("["+a+"]+(.|$)","g"),sentence:new RegExp('(^\\s*|[\\?\\!\\.]+"?\\s+"?|,\\s+")(['+f+"])","g"),improper:new RegExp("\\b("+h+")\\b","g"),relax:new RegExp("([^"+g+"])(["+g+"]*)(["+g+"])(?=["+f+"]|$)","g"),upper:new RegExp("^[^"+f+"]+$"),hole:/[^\s]\s[^\s]/,apostrophe:/'/g,room:new RegExp("["+a+"]")}},g=f(),h={re:g,unicodes:a,regexps:f,types:[],up:String.prototype.toUpperCase,low:String.prototype.toLowerCase,cap:function(a){return h.up.call(a.charAt(0))+a.slice(1)},decap:function(a){return h.low.call(a.charAt(0))+a.slice(1)},deapostrophe:function(a){return a.replace(g.apostrophe,"")},fill:function(a,b,c){return null!=b&&(a=a.replace(g.fill,function(a,c){return c?b+c:""})),c&&(a=h.deapostrophe(a)),a},prep:function(a,b,c,d){if(a=null==a?"":a+"",!d&&g.upper.test(a)&&(a=h.low.call(a)),!b&&!g.hole.test(a)){var e=h.fill(a," ");g.hole.test(e)&&(a=e)}return c||g.room.test(a)||(a=a.replace(g.relax,h.relax)),a},relax:function(a,b,c,d){return b+" "+(c?c+" ":"")+d}},i={_:h,of:function(a){for(var b=0,c=h.types.length;c>b;b++)if(i[h.types[b]](a)===a)return h.types[b]},flip:function(a){return a.replace(/\w/g,function(a){return(a==h.up.call(a)?h.low:h.up).call(a)})},random:function(a){return a.replace(/\w/g,function(a){return(Math.round(Math.random())?h.up:h.low).call(a)})},type:function(a,b){i[a]=b,h.types.push(a)}},j={lower:function(a,b,c){return h.fill(h.low.call(h.prep(a,b)),b,c)},snake:function(a){return i.lower(a,"_",!0)},constant:function(a){return i.upper(a,"_",!0)},camel:function(a){return h.decap(i.pascal(a))},kebab:function(a){return i.lower(a,"-",!0)},header:function(a){return i.capital(a,"-",!0)},upper:function(a,b,c){return h.fill(h.up.call(h.prep(a,b,!1,!0)),b,c)},capital:function(a,b,c){return h.fill(h.prep(a).replace(g.capitalize,function(a,b,c){return b+h.up.call(c)}),b,c)},pascal:function(a){return h.fill(h.prep(a,!1,!0).replace(g.pascal,function(a,b,c){return h.up.call(c)}),"",!0)},title:function(a){return i.capital(a).replace(g.improper,function(a,b,c,d){return c>0&&c<d.lastIndexOf(" ")?h.low.call(a):a})},sentence:function(a,b){return a=i.lower(a).replace(g.sentence,function(a,b,c){return b+h.up.call(c)}),b&&b.forEach(function(b){a=a.replace(new RegExp("\\b"+i.lower(b)+"\\b","g"),h.cap)}),a}};j.squish=j.pascal;for(var k in j)i.type(k,j[k]);var l="function"==typeof l?l:function(){};l("object"==typeof module&&module.exports?module.exports=i:this.Case=i)}).call(this); | ||
//# sourceMappingURL=Case.min.js.map |
@@ -1,2 +0,2 @@ | ||
/*! Case - v1.5.0 - 2017-03-09 | ||
/*! Case - v1.5.1 - 2017-03-22 | ||
* Copyright (c) 2017 Nathan Bubna; Licensed MIT, GPL */ | ||
@@ -49,11 +49,14 @@ (function() { | ||
fill: function(s, fill, deapostrophe) { | ||
if (s) { | ||
s = fill == null ? s : s.replace(re.fill, function(m, next) { | ||
if (fill != null) { | ||
s = s.replace(re.fill, function(m, next) { | ||
return next ? fill + next : ''; | ||
}); | ||
return deapostrophe ? _.deapostrophe(s) : s; | ||
} | ||
if (deapostrophe) { | ||
s = _.deapostrophe(s); | ||
} | ||
return s; | ||
}, | ||
prep: function(s, fill, pascal, upper) { | ||
if (!s){ return s || ''; } | ||
s = s == null ? '' : s + '';// force to string | ||
if (!upper && re.upper.test(s)) { | ||
@@ -60,0 +63,0 @@ s = _.low.call(s); |
@@ -1,5 +0,5 @@ | ||
/*! Case - v1.5.0 - 2017-03-09 | ||
/*! Case - v1.5.1 - 2017-03-22 | ||
* Copyright (c) 2017 Nathan Bubna; Licensed MIT, GPL */ | ||
(function(){"use strict";var a=function(a,b){return b=b||"",a.replace(/(^|-)/g,"$1\\u"+b).replace(/,/g,"\\u"+b)},b=a("20-26,28-2F,3A-40,5B-60,7B-7E,A0-BF,D7,F7","00"),c="a-z"+a("DF-F6,F8-FF","00"),d="A-Z"+a("C0-D6,D8-DE","00"),e="A|An|And|As|At|But|By|En|For|If|In|Of|On|Or|The|To|Vs?\\.?|Via",f=function(a,f,g,h){return a=a||b,f=f||c,g=g||d,h=h||e,{capitalize:new RegExp("(^|["+a+"])(["+f+"])","g"),pascal:new RegExp("(^|["+a+"])+(["+f+g+"])","g"),fill:new RegExp("["+a+"]+(.|$)","g"),sentence:new RegExp('(^\\s*|[\\?\\!\\.]+"?\\s+"?|,\\s+")(['+f+"])","g"),improper:new RegExp("\\b("+h+")\\b","g"),relax:new RegExp("([^"+g+"])(["+g+"]*)(["+g+"])(?=["+f+"]|$)","g"),upper:new RegExp("^[^"+f+"]+$"),hole:/[^\s]\s[^\s]/,apostrophe:/'/g,room:new RegExp("["+a+"]")}},g=f(),h={re:g,unicodes:a,regexps:f,types:[],up:String.prototype.toUpperCase,low:String.prototype.toLowerCase,cap:function(a){return h.up.call(a.charAt(0))+a.slice(1)},decap:function(a){return h.low.call(a.charAt(0))+a.slice(1)},deapostrophe:function(a){return a.replace(g.apostrophe,"")},fill:function(a,b,c){return a?(a=null==b?a:a.replace(g.fill,function(a,c){return c?b+c:""}),c?h.deapostrophe(a):a):void 0},prep:function(a,b,c,d){if(!a)return a||"";if(!d&&g.upper.test(a)&&(a=h.low.call(a)),!b&&!g.hole.test(a)){var e=h.fill(a," ");g.hole.test(e)&&(a=e)}return c||g.room.test(a)||(a=a.replace(g.relax,h.relax)),a},relax:function(a,b,c,d){return b+" "+(c?c+" ":"")+d}},i={_:h,of:function(a){for(var b=0,c=h.types.length;c>b;b++)if(i[h.types[b]](a)===a)return h.types[b]},flip:function(a){return a.replace(/\w/g,function(a){return(a==h.up.call(a)?h.low:h.up).call(a)})},random:function(a){return a.replace(/\w/g,function(a){return(Math.round(Math.random())?h.up:h.low).call(a)})},type:function(a,b){i[a]=b,h.types.push(a)}},j={lower:function(a,b,c){return h.fill(h.low.call(h.prep(a,b)),b,c)},snake:function(a){return i.lower(a,"_",!0)},constant:function(a){return i.upper(a,"_",!0)},camel:function(a){return h.decap(i.pascal(a))},kebab:function(a){return i.lower(a,"-",!0)},header:function(a){return i.capital(a,"-",!0)},upper:function(a,b,c){return h.fill(h.up.call(h.prep(a,b,!1,!0)),b,c)},capital:function(a,b,c){return h.fill(h.prep(a).replace(g.capitalize,function(a,b,c){return b+h.up.call(c)}),b,c)},pascal:function(a){return h.fill(h.prep(a,!1,!0).replace(g.pascal,function(a,b,c){return h.up.call(c)}),"",!0)},title:function(a){return i.capital(a).replace(g.improper,function(a,b,c,d){return c>0&&c<d.lastIndexOf(" ")?h.low.call(a):a})},sentence:function(a,b){return a=i.lower(a).replace(g.sentence,function(a,b,c){return b+h.up.call(c)}),b&&b.forEach(function(b){a=a.replace(new RegExp("\\b"+i.lower(b)+"\\b","g"),h.cap)}),a}};j.squish=j.pascal;for(var k in j)i.type(k,j[k]);var l="function"==typeof l?l:function(){};l("object"==typeof module&&module.exports?module.exports=i:this.Case=i)}).call(this),function(a,b){function c(c){var d="to"+b.cap(c)+"Case";String.prototype[d]=function(){return a[c](this)}}for(var d=0,e=b.types.length;e>d;d++)c(b.types[d]);var f=a.type;a.type=function(a,b){f(a,b),c(a)}}(Case,Case._); | ||
(function(){"use strict";var a=function(a,b){return b=b||"",a.replace(/(^|-)/g,"$1\\u"+b).replace(/,/g,"\\u"+b)},b=a("20-26,28-2F,3A-40,5B-60,7B-7E,A0-BF,D7,F7","00"),c="a-z"+a("DF-F6,F8-FF","00"),d="A-Z"+a("C0-D6,D8-DE","00"),e="A|An|And|As|At|But|By|En|For|If|In|Of|On|Or|The|To|Vs?\\.?|Via",f=function(a,f,g,h){return a=a||b,f=f||c,g=g||d,h=h||e,{capitalize:new RegExp("(^|["+a+"])(["+f+"])","g"),pascal:new RegExp("(^|["+a+"])+(["+f+g+"])","g"),fill:new RegExp("["+a+"]+(.|$)","g"),sentence:new RegExp('(^\\s*|[\\?\\!\\.]+"?\\s+"?|,\\s+")(['+f+"])","g"),improper:new RegExp("\\b("+h+")\\b","g"),relax:new RegExp("([^"+g+"])(["+g+"]*)(["+g+"])(?=["+f+"]|$)","g"),upper:new RegExp("^[^"+f+"]+$"),hole:/[^\s]\s[^\s]/,apostrophe:/'/g,room:new RegExp("["+a+"]")}},g=f(),h={re:g,unicodes:a,regexps:f,types:[],up:String.prototype.toUpperCase,low:String.prototype.toLowerCase,cap:function(a){return h.up.call(a.charAt(0))+a.slice(1)},decap:function(a){return h.low.call(a.charAt(0))+a.slice(1)},deapostrophe:function(a){return a.replace(g.apostrophe,"")},fill:function(a,b,c){return null!=b&&(a=a.replace(g.fill,function(a,c){return c?b+c:""})),c&&(a=h.deapostrophe(a)),a},prep:function(a,b,c,d){if(a=null==a?"":a+"",!d&&g.upper.test(a)&&(a=h.low.call(a)),!b&&!g.hole.test(a)){var e=h.fill(a," ");g.hole.test(e)&&(a=e)}return c||g.room.test(a)||(a=a.replace(g.relax,h.relax)),a},relax:function(a,b,c,d){return b+" "+(c?c+" ":"")+d}},i={_:h,of:function(a){for(var b=0,c=h.types.length;c>b;b++)if(i[h.types[b]](a)===a)return h.types[b]},flip:function(a){return a.replace(/\w/g,function(a){return(a==h.up.call(a)?h.low:h.up).call(a)})},random:function(a){return a.replace(/\w/g,function(a){return(Math.round(Math.random())?h.up:h.low).call(a)})},type:function(a,b){i[a]=b,h.types.push(a)}},j={lower:function(a,b,c){return h.fill(h.low.call(h.prep(a,b)),b,c)},snake:function(a){return i.lower(a,"_",!0)},constant:function(a){return i.upper(a,"_",!0)},camel:function(a){return h.decap(i.pascal(a))},kebab:function(a){return i.lower(a,"-",!0)},header:function(a){return i.capital(a,"-",!0)},upper:function(a,b,c){return h.fill(h.up.call(h.prep(a,b,!1,!0)),b,c)},capital:function(a,b,c){return h.fill(h.prep(a).replace(g.capitalize,function(a,b,c){return b+h.up.call(c)}),b,c)},pascal:function(a){return h.fill(h.prep(a,!1,!0).replace(g.pascal,function(a,b,c){return h.up.call(c)}),"",!0)},title:function(a){return i.capital(a).replace(g.improper,function(a,b,c,d){return c>0&&c<d.lastIndexOf(" ")?h.low.call(a):a})},sentence:function(a,b){return a=i.lower(a).replace(g.sentence,function(a,b,c){return b+h.up.call(c)}),b&&b.forEach(function(b){a=a.replace(new RegExp("\\b"+i.lower(b)+"\\b","g"),h.cap)}),a}};j.squish=j.pascal;for(var k in j)i.type(k,j[k]);var l="function"==typeof l?l:function(){};l("object"==typeof module&&module.exports?module.exports=i:this.Case=i)}).call(this),function(a,b){function c(c){var d="to"+b.cap(c)+"Case";String.prototype[d]=function(){return a[c](this)}}for(var d=0,e=b.types.length;e>d;d++)c(b.types[d]);var f=a.type;a.type=function(a,b){f(a,b),c(a)}}(Case,Case._); | ||
//# sourceMappingURL=Case.plus.min.js.map |
@@ -19,3 +19,3 @@ { | ||
], | ||
"version": "1.5.0", | ||
"version": "1.5.1", | ||
"author": { | ||
@@ -66,5 +66,6 @@ "name": "Nathan Bubna", | ||
"grunt-contrib-watch": "~0.5.3", | ||
"grunt-notify": "~0.2.4" | ||
"grunt-notify": "~0.2.4", | ||
"grunt-nuget": "~0.2.0" | ||
}, | ||
"typings": "case.d.ts" | ||
} |
115
README.md
### Case: An extensible utility to convert, identify, and flip string case. | ||
Download: [Case.min.js][prod] or [Case.js][dev] [![Build Status](https://travis-ci.org/nbubna/Case.png?branch=master)](https://travis-ci.org/nbubna/Case) | ||
Download: [Case.min.js][min] or [Case.js][full] | ||
[NPM][npm]: `npm install case` (little 'c' due to NPM restrictions) | ||
Bower: `bower install Case` (note the big 'C') | ||
[NPM][npm]: `npm install case` (little 'c' due to NPM restrictions) | ||
[Component][component]: `component install nbubna/Case` | ||
[NuGet][]: `Install-Package Case` | ||
[prod]: https://raw.github.com/nbubna/Case/master/dist/Case.min.js | ||
[dev]: https://raw.github.com/nbubna/Case/master/dist/Case.js | ||
[![Build Status](https://travis-ci.org/nbubna/Case.png?branch=master)](https://travis-ci.org/nbubna/Case) | ||
[![npm version](https://badge.fury.io/js/case.svg)](https://badge.fury.io/js/store) | ||
[![npm](https://img.shields.io/npm/dm/case.svg?maxAge=2592000)](https://www.npmjs.com/package/case) | ||
[NuGet]: http://nuget.org/packages/Case/ | ||
[min]: https://raw.github.com/nbubna/Case/master/dist/Case.min.js | ||
[full]: https://raw.github.com/nbubna/Case/master/dist/Case.js | ||
[npm]: https://npmjs.org/package/case | ||
@@ -17,24 +24,40 @@ [component]: https://github.com/componentjs/guide | ||
### Foundations | ||
```javascript | ||
Case.upper('foo_bar') -> 'FOO BAR' | ||
Case.lower('fooBar') -> 'foo bar' | ||
Case.snake('Foo bar!') -> 'foo_bar' | ||
Case.pascal('foo.bar') -> 'FooBar' | ||
Case.camel('foo, bar') -> 'fooBar' | ||
Case.kebab('Foo? Bar.') -> 'foo-bar' | ||
Case.header('fooBar=') -> 'Foo-Bar' | ||
Case.constant('Foo-Bar') -> 'FOO_BAR' | ||
Case.upper('foo_bar') -> 'FOO BAR' | ||
Case.lower('fooBar') -> 'foo bar' | ||
Case.capital('foo_v_bar') -> 'Foo V Bar' | ||
``` | ||
### Code Helpers | ||
```javascript | ||
Case.snake('Foo bar!') -> 'foo_bar' | ||
Case.pascal('foo.bar') -> 'FooBar' | ||
Case.camel('foo, bar') -> 'fooBar' | ||
Case.kebab('Foo? Bar.') -> 'foo-bar' | ||
Case.header('fooBar=') -> 'Foo-Bar' | ||
Case.constant('Foo-Bar') -> 'FOO_BAR' | ||
``` | ||
### UI Helpers | ||
```javascript | ||
Case.title('foo v. bar') -> 'Foo v. Bar' | ||
Case.capital('foo_v_bar') -> 'Foo V Bar' | ||
Case.sentence('"foo!" said bar', ['Bar']) -> '"Foo!" said Bar' | ||
Case.lower('FOO-BAR', '.') -> 'foo.bar' | ||
Case.upper('Foo? Bar.', '-') -> 'FOO-BAR' | ||
Case.capital('fooBar', ' + ') -> 'Foo + Bar' | ||
``` | ||
`sentence(str, names)` accepts an array of proper names that should be capitalized, | ||
`Case.sentence(str, names)` accepts an array of proper names that should be capitalized, | ||
regardless of location in the sentence. This function is specialized, but useful | ||
when dealing with input generated with capslock on (i.e. everything my grandma types). | ||
`upper(str, fill)`, `lower(str, fill)`, and `capital(str, fill)` accept an optional "fill" value | ||
### Custom Casing | ||
```javascript | ||
Case.lower('FOO-BAR', '.') -> 'foo.bar' | ||
Case.upper('Foo? Bar.', '__') -> 'FOO__BAR' | ||
Case.capital('fooBar', ' + ') -> 'Foo + Bar' | ||
Case.lower("Don't keep 'em!", "/", true) -> 'dont/keep/em' | ||
Case.capital("'ello, world.", null, true) -> 'Ello, World.' | ||
``` | ||
`Case.upper`, `Case.lower`, and `Case.capital` accept an optional "fill" value | ||
that will replace any characters which are not letters and numbers. All three also accept | ||
@@ -45,9 +68,16 @@ a third optional boolean argument indicating if apostrophes are to be stripped out or left in. | ||
There are four additional functions: | ||
* `of(str)`: identifies the case of a string, returns undefined if it doesn't match a known type | ||
* `flip(str)`: reverses the case of letters, no other changes | ||
* `random(str)`: randomizes the case of letters, no other changes | ||
* `type(name, fn)`: extends Case with a new case type | ||
### Extending Case | ||
```javascript | ||
Case.type('bang', function(s) { | ||
return Case.upper(s, '!')+'!'; | ||
}); | ||
Case.bang('bang') -> 'BANG!' | ||
Case.of('TEST!THIS!') -> 'bang' | ||
``` | ||
`Case.type(name, fn)`: extends Case, creating a new function on `Case` and adding `Case.of` support automatically. | ||
### Utilities | ||
```javascript | ||
Case.of('foo') -> 'lower' | ||
@@ -62,27 +92,22 @@ Case.of('foo_bar') -> 'snake' | ||
Case.random('Hello!') -> 'hElLO!' | ||
Case.type('bang', function(s) { | ||
return Case.upper(s, '!')+'!'; | ||
}); | ||
Case.bang('bang') -> 'BANG!' | ||
Case.of('TEST!THIS!') -> 'bang' | ||
``` | ||
* `Case.of(str)`: identifies the case of a string, returns undefined if it doesn't match a known type | ||
* `Case.flip(str)`: reverses the case of letters, no other changes | ||
* `Case.random(str)`: randomizes the case of letters, no other changes | ||
Registering functions via `type()` means `Case.of` supports them automatically. | ||
## Release History | ||
* 2013-06-10 v1.0.0 (public, initial) | ||
* 2013-06-20 v1.0.1 (regex improvements) | ||
* 2013-08-23 v1.0.3 (better support for Node, Component and AMD) | ||
* 2014-10-24 v1.1.2 (regexps used are now extensible and support more latin diacritics) | ||
* 2015-01-27 v1.2.0 (deprecate squish in favor of pascal) | ||
* 2015-01-28 v1.2.1 (fix UMD regression) | ||
* 2015-10-27 v1.3.0 (Case.kebab and Case.random) | ||
* 2015-12-02 v1.3.2 (fix title case when small word is first or last) | ||
* 2016-02-01 v1.3.3 (Case.of('foo') to return lower, not snake) | ||
* 2016-02-07 v1.4.0 (fix apostrophe handling) | ||
* 2016-02-08 v1.4.1 (fix swallowed prefix/suffix on lone words) | ||
* 2016-11-11 v1.4.2 (add typings for TypeScript support) | ||
* 2017-03-09 v1.5.0 (add Header-Case and expose noApostrophes option for upper/lower/capital fns) | ||
* 2013-06-10 [v1.0.0][] (public, initial) | ||
* 2013-06-20 [v1.0.1][] (regex improvements) | ||
* 2013-08-23 [v1.0.3][] (better support for Node, Component and AMD) | ||
* 2014-10-24 [v1.1.2][] (regexps used are now extensible and support more latin diacritics) | ||
* 2015-01-27 [v1.2.0][] (deprecate squish in favor of pascal) | ||
* 2015-01-28 [v1.2.1][] (fix UMD regression) | ||
* 2015-10-27 [v1.3.0][] (Case.kebab and Case.random) | ||
* 2015-12-02 [v1.3.2][] (fix title case when small word is first or last) | ||
* 2016-02-01 [v1.3.3][] (Case.of('foo') to return lower, not snake) | ||
* 2016-02-07 [v1.4.0][] (fix apostrophe handling) | ||
* 2016-02-08 [v1.4.1][] (fix swallowed prefix/suffix on lone words) | ||
* 2016-11-11 [v1.4.2][] (add typings for TypeScript support) | ||
* 2017-03-09 [v1.5.0][] (add Header-Case and expose noApostrophes option for upper/lower/capital fns) | ||
@@ -89,0 +114,0 @@ [v1.0.0]: https://github.com/nbubna/store/tree/1.0.0 |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
35246
386
124
12