UNPKG

ember-cli

Version:

Command line tool for developing ambitious ember.js apps

30 lines 9.78 kB
/*! * inflection * Copyright(c) 2011 Ben Lin <ben@dreamerslab.com> * MIT Licensed * * @fileoverview * A port of inflection-js to node.js module. */ (function(a,b){if(typeof define==="function"&&define.amd){define([],b); }else{if(typeof exports==="object"){module.exports=b();}else{a.inflection=b();}}}(this,function(){var d=["access","accommodation","adulthood","advertising","advice","aggression","aid","air","aircraft","alcohol","anger","applause","arithmetic","art","assistance","athletics","attention","bacon","baggage","ballet","beauty","beef","beer","behavior","biology","blood","botany","bread","business","butter","carbon","cardboard","cash","chalk","chaos","chess","crossroads","countryside","damage","dancing","danger","deer","delight","dessert","dignity","dirt","distribution","dust","economics","education","electricity","employment","energy","engineering","enjoyment","entertainment","envy","equipment","ethics","evidence","evolution","failure","faith","fame","fiction","flour","flu","food","freedom","fruit","fuel","fun","furniture","gallows","garbage","garlic","gas","genetics","glass","gold","golf","gossip","grammar","grass","gratitude","grief","ground","guilt","gymnastics","hair","happiness","hardware","harm","hate","hatred","health","heat","height","help","homework","honesty","honey","hospitality","housework","humour","hunger","hydrogen","ice","importance","inflation","information","injustice","innocence","intelligence","iron","irony","jam","jealousy","jelly","jewelry","joy","judo","juice","justice","karate","kindness","knowledge","labour","lack","land","laughter","lava","leather","leisure","lightning","linguine","linguini","linguistics","literature","litter","livestock","logic","loneliness","love","luck","luggage","macaroni","machinery","magic","mail","management","mankind","marble","mathematics","mayonnaise","measles","meat","metal","methane","milk","money","mud","music","mumps","nature","news","nitrogen","nonsense","nurture","nutrition","obedience","obesity","oil","oxygen","paper","passion","pasta","patience","permission","physics","poetry","pollution","poverty","power","pride","production","progress","pronunciation","psychology","publicity","punctuation","quality","quantity","quartz","racism","rain","recreation","relaxation","reliability","research","respect","revenge","rice","rubbish","rum","safety","salad","salt","sand","satire","scenery","seafood","seaside","series","shame","sheep","shopping","silence","sleep","smoke","smoking","snow","soap","software","soil","sorrow","soup","spaghetti","speed","species","spelling","sport","steam","strength","stuff","stupidity","success","sugar","sunshine","symmetry","tea","tennis","thirst","thunder","timber","time","toast","tolerance","trade","traffic","transportation","travel","trust","understanding","underwear","unemployment","unity","usage","validity","veal","vegetation","vegetarianism","vengeance","violence","vision","vitality","warmth","water","wealth","weather","weight","welfare","wheat","whiskey","width","wildlife","wine","wisdom","wood","wool","work","yeast","yoga","zinc","zoology"]; var g=[[new RegExp("^(m)en$","gi")],[new RegExp("(pe)ople$","gi")],[new RegExp("(child)ren$","gi")],[new RegExp("([ti])a$","gi")],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi")],[new RegExp("(hi|ti)ves$","gi")],[new RegExp("(curve)s$","gi")],[new RegExp("([lr])ves$","gi")],[new RegExp("([^fo])ves$","gi")],[new RegExp("([^aeiouy]|qu)ies$","gi")],[new RegExp("(s)eries$","gi")],[new RegExp("(m)ovies$","gi")],[new RegExp("(x|ch|ss|sh)es$","gi")],[new RegExp("([m|l])ice$","gi")],[new RegExp("(bus)es$","gi")],[new RegExp("(o)es$","gi")],[new RegExp("(shoe)s$","gi")],[new RegExp("(cris|ax|test)es$","gi")],[new RegExp("(octop|vir)i$","gi")],[new RegExp("(alias|status)es$","gi")],[new RegExp("^(summons)es$","gi")],[new RegExp("^(ox)en","gi")],[new RegExp("(vert|ind)ices$","gi")],[new RegExp("(matr)ices$","gi")],[new RegExp("^feet$","gi")],[new RegExp("^teeth$","gi")],[new RegExp("^geese$","gi")],[new RegExp("(quiz)zes$","gi")],[new RegExp("^(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("^(summons)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat|volcan)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hi|ti)ve$","gi"),"$1ves"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("^foot$","gi"),"feet"],[new RegExp("^tooth$","gi"),"teeth"],[new RegExp("^goose$","gi"),"geese"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]]; var a=[[new RegExp("^(m)an$","gi")],[new RegExp("(pe)rson$","gi")],[new RegExp("(child)$","gi")],[new RegExp("^(ox)$","gi")],[new RegExp("(ax|test)is$","gi")],[new RegExp("(octop|vir)us$","gi")],[new RegExp("(alias|status)$","gi")],[new RegExp("^(summons)$","gi")],[new RegExp("(bu)s$","gi")],[new RegExp("(buffal|tomat|potat)o$","gi")],[new RegExp("([ti])um$","gi")],[new RegExp("sis$","gi")],[new RegExp("(?:([^f])fe|([lr])f)$","gi")],[new RegExp("(hi|ti)ve$","gi")],[new RegExp("([^aeiouy]|qu)y$","gi")],[new RegExp("(x|ch|ss|sh)$","gi")],[new RegExp("(matr|vert|ind)ix|ex$","gi")],[new RegExp("([m|l])ouse$","gi")],[new RegExp("^foot$","gi")],[new RegExp("^tooth$","gi")],[new RegExp("^goose$","gi")],[new RegExp("(quiz)$","gi")],[new RegExp("^(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hi|ti)ves$","gi"),"$1ve"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(summons)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("^feet$","gi"),"foot"],[new RegExp("^teeth$","gi"),"tooth"],[new RegExp("^geese$","gi"),"goose"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("ss$","gi"),"ss"],[new RegExp("s$","gi"),""]]; var c=["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"];var j=new RegExp("(_ids|_id)$","g"); var f=new RegExp("_","g");var i=new RegExp("[ _]","g");var e=new RegExp("([A-Z])","g");var h=new RegExp("^_");var b={_apply_rules:function(p,o,n,m){if(m){p=m; }else{var q=(b.indexOf(n,p.toLowerCase())>-1);if(!q){var l=0;var k=o.length;for(;l<k;l++){if(p.match(o[l][0])){if(o[l][1]!==undefined){p=p.replace(o[l][0],o[l][1]); }break;}}}}return p;},indexOf:function(k,q,p,l){if(!p){p=-1;}var n=-1;var o=p;var m=k.length;for(;o<m;o++){if(k[o]===q||l&&l(k[o],q)){n=o;break;}}return n; },pluralize:function(l,k){return b._apply_rules(l,g,d,k);},singularize:function(l,k){return b._apply_rules(l,a,d,k);},inflect:function(n,m,l,k){m=parseInt(m,10); if(isNaN(m)){return n;}if(m===0||m>1){return b._apply_rules(n,g,d,k);}else{return b._apply_rules(n,a,d,l);}},camelize:function(t,o){var v=t.split("/"); var r=0;var q=v.length;var u,m,p,n,s;for(;r<q;r++){u=v[r].split("_");p=0;n=u.length;for(;p<n;p++){if(p!==0){u[p]=u[p].toLowerCase();}s=u[p].charAt(0);s=o&&r===0&&p===0?s.toLowerCase():s.toUpperCase(); u[p]=s+u[p].substring(1);}v[r]=u.join("");}return v.join("::");},underscore:function(n,o){if(o&&n===n.toUpperCase()){return n;}var k=n.split("::");var m=0; var l=k.length;for(;m<l;m++){k[m]=k[m].replace(e,"_$1");k[m]=k[m].replace(h,"");}return k.join("/").toLowerCase();},humanize:function(l,k){l=l.toLowerCase(); l=l.replace(j,"");l=l.replace(f," ");if(!k){l=b.capitalize(l);}return l;},capitalize:function(k){k=k.toLowerCase();return k.substring(0,1).toUpperCase()+k.substring(1); },dasherize:function(k){return k.replace(i,"-");},titleize:function(s){s=s.toLowerCase().replace(f," ");var q=s.split(" ");var p=0;var o=q.length;var r,n,m; for(;p<o;p++){r=q[p].split("-");n=0;m=r.length;for(;n<m;n++){if(b.indexOf(c,r[n].toLowerCase())<0){r[n]=b.capitalize(r[n]);}}q[p]=r.join("-");}s=q.join(" "); s=s.substring(0,1).toUpperCase()+s.substring(1);return s;},demodulize:function(l){var k=l.split("::");return k[k.length-1];},tableize:function(k){k=b.underscore(k); k=b.pluralize(k);return k;},classify:function(k){k=b.camelize(k);k=b.singularize(k);return k;},foreign_key:function(l,k){l=b.demodulize(l);l=b.underscore(l)+((k)?(""):("_"))+"id"; return l;},ordinalize:function(s){var q=s.split(" ");var o=0;var n=q.length;for(;o<n;o++){var m=parseInt(q[o],10);if(!isNaN(m)){var r=q[o].substring(q[o].length-2); var p=q[o].substring(q[o].length-1);var l="th";if(r!="11"&&r!="12"&&r!="13"){if(p==="1"){l="st";}else{if(p==="2"){l="nd";}else{if(p==="3"){l="rd";}}}}q[o]+=l; }}return q.join(" ");},transform:function(n,k){var m=0;var l=k.length;for(;m<l;m++){var o=k[m];if(this.hasOwnProperty(o)){n=this[o](n);}}return n;}};b.version="1.5.0"; return b;}));