require "txtspk/version" module Txtspk module CoreExtensions module String def to_txtspk Txtspk::convert(self) end end end end class String include Txtspk::CoreExtensions::String end module Txtspk CONTRACTIONS = { '\1n\'t' => ['(are|can|could|did|does|do|had|ought|has|should|have|is|were|might|must|will|would) not', '(can)not', '(sha)ll not'], '\1\'d' => ['(it|i|she|he|who|they|we|you) (had|would)'], '\1\'ll' => ['(i|she|he|they|what|who|you) (will|shall)'], '\1\'s' => ['(it|he|she|that|there|what|where|who) (is|has)', '(let) us'], '\1\'m' => ['(i) am'], '\1\'ve' => ['(i|they|we|what|who|you) have'], '\1\'re' => ['(they|we|what|who|you) are'] } ABBREVIATIONS = { '0' => ['zero'], '1' => ['one'], '10Q' => ['thank you'], '121' => ['one to one'], '1337' => ['leet', 'elite'], '1457' => ['last'], '1CE' => ['once'], '2' => ['two', 'to', 'too'], '26Y4U' => ['too sexy for you'], '2BONO' => ['to be or not to be'], '2DAY' => ['today'], '2MOR' => ['tomorrow'], '2n8' => ['two and eight'], '3' => ['three'], '4' => ['for', 'four'], '411' => ['info'], '4EVER' => ['forever'], '4FRNFR' => ['for( ever)? and ever'], '5' => ['five'], '6' => ['six'], '7' => ['seven'], '7K' => ['sick'], '8' => ['eight'], '9' => ['nine'], ':)s' => ['smiles'], '@TEOTD' => ['At The End Of The Day'], 'A3' => ['Anytime, Anywhere, Anyplace'], 'A41A14A' => ['All For One And One For All'], 'AAAAA' => ['American Association Against Acronym Abuse'], 'AAF' => ['As A Friend'], 'AAK' => ['Asleep At Keyboard'], 'AAMOF' => ['As a matter of fact'], 'AAMOI' => ['As A Matter Of Interest'], 'AAR' => ['At Any Rate'], 'AAR8' => ['At Any Rate'], 'AAS' => ['Alive And Smiling'], 'AATK' => ['Always At The Keyboard'], 'AAYF' => ['As Always, Your Friend'], 'AB' => ['Ass Backwards'], 'ABITHIWT' => ['A bird In The Hand Is Worth Two In The Bush'], 'ABRS' => ['Abbreviations'], 'ABT2' => ['About To'], 'ACD' => ['Alt Control Delete'], 'ACE' => ['Access Control Entry'], 'ACK' => ['Acknowledgement'], 'ADAD' => ['Another Day Another Dollar'], 'ADBB' => ['All Done Bye Bye'], 'ADIH' => ['Another Day In Hell'], 'ADIP' => ['Another Day In Paradise'], 'ADN' => ['Any day now'], 'ADN' => ['Any day now'], 'ADR' => ['Address'], 'AEAP' => ['As Early As Possible'], 'AFAGAY' => ['A Friend As Good As You'], 'AFAHMASP' => ['A Fool And His Money Are Soon Parted'], 'AFAIC' => ['As far as I\'m concerned'], 'AFAICS' => ['As Far As I Can See'], 'AFAICT' => ['As far as I can tell'], 'AFAIK' => ['As Far As I Know'], 'AFAIU' => ['As Far As I Understand'], 'AFAIUI' => ['As Far As I Understand It'], 'AFAP' => ['As Far As Possible'], 'AFC' => ['Away From Computer'], 'AFDN' => ['Any Fucking Day Now'], 'AFIAA' => ['As Far As I Am Aware'], 'AFINIAFI' => ['A Friend In Need Is A Friend Indeed'], 'AFK' => ['Away From Keyboard'], 'AFU' => ['All fucked up'], 'AFZ' => ['Acronym free zone'], 'AGKWE' => ['And God Knows What Else'], 'AIAMU' => ['And I\'m a monkey\'s uncle'], 'AIH' => ['As It Happens'], 'AIMB' => ['As I Mentioned Before'], 'AIMP' => ['Always In My Prayers'], 'AISE' => ['As I Said Earlier'], 'AISI' => ['As I see it'], 'AKA' => ['Also Known As'], 'ALAP' => ['As Late As Possible'], 'ALOL' => ['Actually Laughing Out Loud'], 'ALTG' => ['Act Locally, Think Globally'], 'AMAP' => ['As Many As Possible'], 'AMBW' => ['All my best wishes'], 'AMF' => [' Adios, motherfucker!'], 'AML' => ['All My Love'], 'ANFAWFOW' => ['And now for a word from our web sponsor'], 'ANFSCD' => ['And Now For Something Completely Different'], 'AOAS' => ['All of a sudden'], 'AOB' => ['Abuse Of Bandwidth'], 'AOL' => ['Army of lamers'], 'AP' => ['Apple pie'], 'ASAFP' => ['As Soon As "Friggin" Possible'], 'ASAP' => ['As Soon As Possible'], 'ASL' => ['Age, Sex, Location?'], 'ASLMH' => ['Age/Sex/Location/Music/Hobbies?'], 'ATK' => ['At The Keyboard'], 'ATM' => ['At The Moment'], 'ATST' => ['At the same time'], 'ATW' => ['All the Web or Around the Web'], 'AWGTHTGT' => ['Are we going to have to go through this again?'], 'AWOL' => ['Absent Without Leave'], 'AYK' => ['As You Know'], 'AYSOS' => ['Are You Stupid Or Something?'], 'AYTMTB' => ['And you\'re telling me this because?'], 'B' => ['be'], 'B4' => ['Before'], 'B4N' => ['Bye For Now'], 'B4U' => ['Before You'], 'B4YKI' => ['Before You Know It'], 'BAG' => ['Bursting A Gut'], 'BAK' => ['Back At Keyboard'], 'BAU' => ['Business As Usual'], 'BB' => ['Bathroom break'], 'BB4N' => ['Bye-Bye for Now'], 'BBBG' => ['Bye Bye Be Good'], 'BBFBBM' => ['Body by Fisher, brains by Mattel'], 'BBFN' => ['Bye-Bye for Now'], 'BBIAB' => ['Be back in a bit'], 'BBIAF' => ['Be back in a few'], 'BBIAS' => ['Be Back In A Sec'], 'BBIAW' => ['Be Back In A While'], 'BBL' => ['Be Back Later'], 'BBN' => ['Bye, Bye Now'], 'BBS' => ['Be Back Soon'], 'BBSD' => ['Be Back Soon Darling'], 'BBSL' => ['Be Back Sooner or Later'], 'BBT' => ['Be Back Tomorrow'], 'BC' => ['Because'], 'BCBS' => ['Big company, big school'], 'BCNU' => ['be seeing you'], 'BCOZ' => ['Because'], 'BD' => ['Big Deal'], 'BDC' => ['Big dumb company or Big dot com'], 'BDN' => ['Big damn number'], 'BEOS' => ['Nudge'], 'BF' => ['Boyfriend'], 'BFD' => ['Big fucking deal'], 'BFF' => ['Best Friends Forever'], 'BFN' => ['Bye For Now'], 'BG' => ['Big grin'], 'BHOF' => ['Bald headed old fart'], 'BIF' => ['Basis in fact or before I forget'], 'BIOYN' => ['Blow it Out Your Nose'], 'BITD' => ['Back in the day'], 'BITMT' => ['But in the meantime'], 'BKA' => ['Better Known As'], 'BM' => ['Byte me'], 'BMOTA' => ['Byte me on the ass'], 'BMW' => ['Be My Wife'], 'BNF' => ['Big name fan'], 'BO' => ['buzz off'], 'BOHICA' => ['Bend over, here it comes again'], 'BOT' => ['Back on topic'], 'BR' => ['Bathroom'], 'BRB' => ['Be Right Back'], 'BRT' => ['Be Right There'], 'BS' => ['Big Smile'], 'BSF' => ['But Seriously, Folks'], 'BT' => ['Byte This'], 'BTA' => ['But then again or Before the attacks'], 'BTDT' => ['been there done that'], 'BTDTGTS' => ['Been There, Done That, Got The T-shirt'], 'BTHOOM' => ['Beats The Heck Out Of Me'], 'BTOBS' => ['Be there or be square'], 'BTSOOM' => ['Beats the shit out of me'], 'BTW' => ['By The Way'], 'BTWBO' => ['Be there with bells on'], 'bugly' => ['Butt Ugly'], 'BW' => ['Best Wishes'], 'BWDIK' => ['But what do I know?'], 'BWO' => ['Black, white or other'], 'BYKT' => ['But you Knew That'], 'BYORL' => ['Bring your own rocket launcher'], 'C' => ['see'], 'C4N' => ['Ciao for now'], 'CB' => ['Chat brat'], 'CFD' => ['Call for discussion'], 'CFV' => ['Call for vote'], 'CIAO' => ['Goodbye (in Italian)'], 'CID' => ['consider it done'], 'CIS' => ['CompuServe Information Service'], 'CMF' => ['Count my fingers'], 'CNP' => ['Continued in my next post'], 'COB' => ['Close Of Business'], 'CofS' => ['Church of Scientology'], 'COZ' => ['because'], 'CP' => ['Sleepy'], 'CP' => ['Cross post'], 'CRAFT' => ['Can\'t remember a fucking thing'], 'CRAP' => ['Cheap, redundant assorted products'], 'CT' => ['City'], 'CTC' => ['Choking the chicken'], 'CTN' => ['Can\'t Talk Now'], 'CU' => ['See You'], 'CUL' => ['See You Later'], 'CUL8ER' => ['See You Later'], 'CUL8R' => ['See You Later'], 'CUL8TR' => ['See you later'], 'CUNS' => ['See You In School!'], 'CUZ' => ['Because'], 'CWOT' => ['Complete Waste Of Time'], 'CWYL' => ['Chat with you later'], 'CY' => ['Calm Yourself'], 'CYA' => ['See Ya'], 'CYL' => ['See You Later'], 'CYT' => ['See You Tomorrow'], 'DA' => ['the'], 'DAMIFINO' => ['Damn, if I know'], 'DARFC' => ['Ducking And Running For Cover'], 'DBAU' => ['Doing business as usual'], 'DD' => ['Due diligence'], 'DDD' => ['Direct distance dial'], 'DF' => ['Dear Friend'], 'DH' => ['Dear Hubby or Husband'], 'DIKU' => ['Do I Know You'], 'DILLIGAD' => ['Do I look like I give a damn?'], 'DILLIGAF' => ['Do I look like I give a fuck?'], 'DILLIGAS' => ['Do I look like I give a shit?'], 'DINK' => ['Double Income No Kids'], 'DIY' => ['Do it yourself'], 'DL' => ['Download'], 'DNC' => ['Does Not Compute'], 'DND' => ['Do Not Disturb'], 'DUST' => ['Did You See That?'], 'DWL' => ['Dying with laughter'], 'DWYM' => ['Does what you mean'], 'DXNRY' => ['Dictionary'], 'DYLM' => ['do you like me'], 'DYOFDW' => ['Do Your Own Fucking Dirty Work'], 'DYSTSOTT' => ['Did you see the size of that thing?'], 'E123' => ['Easy as One, Two, Three'], 'EAK' => ['Eating at Keyboard'], 'EG' => ['Evil grin'], 'EL' => ['Evil Laugh'], 'EM' => ['Excuse Me?'], 'EMFJI' => ['Excuse me for jumping in'], 'EOD' => ['End of discussion'], 'EOM' => ['End of message'], 'EOT' => ['End of transmission'], 'ESO' => ['Equipment smarter than operator'], 'EULA' => ['End-User License Agreement'], 'EWI' => ['E-mailing while intoxicated'], 'EZ' => ['easy'], 'F2F' => ['Flesh to flesh or Face to face'], 'F2T' => ['free to talk'], 'FAB' => ['Features, attributes, benefits'], 'FAI' => ['Frequently argued issue'], 'FAQ' => ['Frequently Asked Questions'], 'FAQL' => ['Frequently Asked Questions List'], 'FAWC' => ['For Anyone Who Cares'], 'FBKS' => ['Failure between keyboard and seat'], 'FBOW' => ['For better or worse'], 'FBUGLY' => ['Fucking Butt Ugly'], 'FC' => ['Fingers Crossed'], 'FE' => ['Fatal error'], 'FF' => ['Friends Forever'], 'FFPN' => ['Fresh fields and pastures new'], 'FISH' => ['First in, Still Here'], 'FITB' => ['Fill in the Blanks'], 'FIWDIM' => ['Fuck It, We\'ll Do It Monday...'], 'FO' => ['fuck off'], 'FOAD' => ['Fuck Off And Die'], 'FOAF' => ['Friend of a friend'], 'FOC' => ['Free of Charge'], 'FOCL' => ['Falling off chair laughing'], 'FOFL' => ['Falling on Floor Laughing'], 'FOTFLOL' => ['falling on the floor, laughing out loud'], 'FRED' => ['fucking ridiculous electronic device'], 'FRM' => ['from'], 'FSCK' => ['File System Check'], 'FTASB' => ['Faster than a speeding bullet'], 'FTBSITTTD' => ['Fuck The Bull Shit It\'s Time To Throw Down'], 'FTFTFWMF' => ['Fuck Them, Fuck Those Fucking Worthless Mother Fuckers'], 'FTITM' => ['First Thing In The Morning'], 'FTL' => ['Faster than light'], 'FTMFW' => ['For The Mother Fucking Win'], 'FTMFWB' => ['For The Mutha Fuckin Win Bitches'], 'FTTB' => ['For the time being'], 'FTTYYGTS' => ['Fart That Tells You You Got To Shit'], 'FTW' => ['For The Win'], 'FUBAB' => ['fucked up beyond all belief'], 'FUBAR' => ['fucked up beyond all reason / recognition / repair'], 'FUBB' => ['Fucked Up Beyond Belief'], 'FUBIO' => ['Fuck You Buddy I\'m Out'], 'FUD' => ['Fear, Uncertainty and Doubt'], 'FWD' => ['Forward'], 'FWIW' => ['For What It\'s Worth'], 'FYA' => ['For your amusement'], 'FYI' => ['For Your Information'], 'FYIFV' => ['fuck you, I\'m fully vested'], 'FYIV' => ['fuck you, I\'m vested'], 'FYM' => ['For your misinformation'], 'FYYSOS' => ['Fuck you, you sack of shit'], 'G' => ['Grin'], 'G2G' => ['Got to Go'], 'G9' => ['Genius'], 'GA' => ['Go ahead'], 'GAL' => ['Get A Life'], 'GALGAL' => ['Give A Little Get A Little'], 'GBH' => ['Great Big Hug'], 'GBTW' => ['Get back to work'], 'GDR' => ['Grinning, Ducking and Running'], 'GF' => ['Girlfirend'], 'GFC' => ['Going for coffee'], 'GFETE' => ['Grinning from ear to ear'], 'GFN' => ['Gone for now'], 'GG' => ['Good Game'], 'GGN' => ['Gotta Go Now'], 'GHP' => ['Good hand partner (for online card games)'], 'GIGO' => ['Garbage in, garbage out'], 'GJIAGDVYCN' => ['Go jump in a god damn volcano, you fucking cave newt'], 'GL' => ['Good luck'], 'GLLA' => ['Great lovers love alike'], 'GLYASDI' => ['God loves you and so do I'], 'GMBO' => ['Giggling my butt off'], 'GMTA' => ['Great Minds Think Alike'], 'GMTFT' => ['Great minds think for themselves'], 'GNBLFY' => ['Got nothing but love for you'], 'GR8' => ['Great!'], 'GRD' => ['Grinning, running and ducking'], 'GRMBL' => ['Grumble'], 'GRRRR' => ['Growling'], 'GSOAS' => ['Go sit on a snake'], 'GSOH' => ['Good Sense Of Humour (or Good Salary, Own Home)'], 'GTG' => ['got to go'], 'GTGB' => ['Got to go, bye'], 'GTGP' => ['Got to go pee'], 'GTH' => ['Go To Hell'], 'GTSY' => ['Glad to see ya'], 'GYPO' => ['Get your pants off'], 'H8' => ['hate'], 'HAB' => ['Hot Asian babe'], 'HACK' => ['To use something not in its intended manner.'], 'HAGD' => ['Have a Great Day'], 'HAGN' => ['Have a good night'], 'HAGO' => ['Have a good one'], 'HAK' => ['Hugs and kisses'], 'HAND' => ['have a nice day'], 'HB' => ['Hurry back'], 'hbtu' => ['Happy Birthday To You'], 'HD' => ['Hold'], 'HF' => ['Hello, Friend'], 'HH' => ['Hold Hands'], 'HHIS' => ['Hanging head in shame'], 'HHO12K' => ['Ha ha, only half kidding (HHO1/2K)'], 'HHOJ' => ['Ha-Ha, Only Joking'], 'HHOK' => ['Ha ha, only kidding'], 'HHOS' => ['Ha-Ha, Only Being Serious'], 'HHTYAY' => ['Happy Holidays To You And Yours'], 'HIH' => ['Hope It Helps'], 'HIOOC' => ['Help! I\'m out of coffee'], 'HOAS' => ['Hold On A Sec'], 'HOHA' => ['Hollywood hacker'], 'HOT4U' => ['hot for you'], 'HTH' => ['Hope this helps'], 'HUA' => ['Heads up ace'], 'HUD' => ['How You Doing?'], 'HUGZ' => ['Hugs'], 'HUYA' => ['Head up your ass'], 'HW' => ['Homework'], 'I 1DR' => ['I Wonder'], 'IAC' => ['In any case'], 'IAE' => ['In any event'], 'IAITS' => ['It\'s all in the subject'], 'IANAC' => ['I am not a crook'], 'IANAE' => ['I Am Not an Expert'], 'IANAL' => ['I am not a lawyer'], 'IAT' => ['I Am Tired'], 'IAYL' => ['In A While'], 'IBRB' => ['I Will Be Right Back'], 'IBT' => ['In between technology'], 'IBTD' => ['I beg to differ'], 'IC' => ['I See'], 'ICBW' => ['I Could Be Wrong'], 'ICQ' => ['I Seek you'], 'ID10T' => ['Idiot'], 'IDC' => ['I Don\'t Care'], 'IDK' => ['I Don\'t Know'], 'IDL' => ['Ideal'], 'IDM' => ['It Does Not Matter'], 'IEF' => ['It\'s esther\'s fault'], 'IFAB' => ['I found a bug'], 'IFU' => ['I fucked up'], 'IGGP' => ['I gotta go pee'], 'IGTP' => ['I Get The Point'], 'IHAIM' => ['I Have Another Instant Message'], 'IHNO' => ['I Have No Opinion'], 'IHTFP' => ['I Have Truly Found Paradise'], 'IHTFP' => ['I Hate This Fucking Place'], 'IIIO' => ['Intel inside, idiot outside'], 'IIMAD' => ['If it makes any difference'], 'IIR' => ['If I Remember or If I Recall'], 'IIRC' => ['If I remember correctly'], 'IIWM' => ['If it were me'], 'ILICISCOMK' => ['I laughed, I cried, I spat/spilt coffee/crumbs/coke over my keyboard'], 'ILU' => ['I Love You'], 'ILY' => ['I love you'], 'IM' => ['Instant messaging'], 'IMCO' => ['In my considered opinion'], 'IMHO' => ['In My Honest/Humble Opinion'], 'IMNSHO' => ['in my not so humble opinion'], 'IMO' => ['In My Opinion'], 'IMOW' => ['In My Own Words'], 'IMPE' => ['In my previous/personal experience'], 'IMS' => ['I Am Sorry'], 'IMVHO' => ['In my very humble opinion'], 'INMP' => ['It\'s not my problem'], 'INPO' => ['In no particular order'], 'IOH' => ['I\'m outta here'], 'IOTTMCO' => ['Intuitively obvious to the most casual observer'], 'IOU' => ['I owe you'], 'IOW' => ['In Other Words'], 'IPN' => ['I\'m posting naked'], 'IRC' => ['Internet Relay Chat'], 'IRL' => ['In Real Life'], 'ISS' => ['I said so'], 'ISTM' => ['It Seems to Me'], 'ISTR' => ['I Seem To Remember'], 'ISWYM' => ['I See What You Mean'], 'ITM' => ['In the money'], 'IUM' => ['If You Must'], 'IUSS' => ['If you say so'], 'IYKWIM' => ['If you know what i mean'], 'IYKWIMAI' => ['If You Know What I Mean And I Think You Do'], 'IYO' => ['In your opinion'], 'IYQ' => ['I like you'], 'IYSS' => ['If you say so'], 'IYSWIM' => ['If you see what I mean'], 'JAD' => ['Just Another day'], 'JAFO' => ['Just another fucking onlooker'], 'JAM' => ['Just A Minute'], 'JAS' => ['Just a second'], 'JC' => ['Just checking'], 'JIC' => ['Just in case'], 'JK' => ['Just kidding'], 'JM2C' => ['Just My 2 Cents'], 'JOOTT' => ['Just one of those things'], 'JPYL' => ['Just pulling your leg'], 'JT' => ['Just Teasing'], 'JW' => ['Just wondering (Wondered)'], 'JYYC' => ['Just yanking your chain'], 'K' => ['okay'], 'KBD' => ['Keyboard'], 'KFY' => ['Kiss for you'], 'KHUF' => ['Know How You Feel'], 'KIR' => ['Keep It Real'], 'KISS' => ['Keep It Simple, Stupid'], 'KIT' => ['Keep in touch'], 'KMA' => ['Kiss my ass'], 'KMRIA' => ['Kiss my royal Irish arse'], 'KOK' => ['Knock'], 'KOTC' => ['Kiss on the cheek'], 'KOTL' => ['Kiss on the lips'], 'KWIM' => ['Know what i mean'], 'KYPO' => ['Keep your pants on'], 'L8' => ['late'], 'L8ER' => ['later'], 'L8R' => ['Later'], 'L8RS' => ['Laters'], 'L8TR' => ['Later'], 'LAGNAF' => ['Let\'s all get naked and fuck!'], 'LAQ' => ['Lame ass quote'], 'LD' => ['Long distance'], 'LDR' => ['Long Distance Relationship'], 'LDTTWA' => ['Let\'s do the time warp again'], 'LIFO' => ['Last in, first out'], 'LLTA' => ['Lots and lots of thunderous applause'], 'LMAO' => ['Laugh My Ass Off'], 'LMFAO' => ['Laughing My Fucking Ass Off'], 'LMIRL' => ['Let\'s meet in real life'], 'LMK' => ['Let me know'], 'Lndn' => ['London'], 'LOL' => ['Laugh Out Loud'], 'LOL' => ['Lots Of Love'], 'LOLA' => ['Laugh Out Loud Again'], 'LOOL' => ['Laughing Outragously Out Loud'], 'LOPSOD' => ['Long on promises, short on delivery'], 'LQTM' => ['Laughing Quietly To Myself'], 'LRF' => ['Little rubber feet'], 'LTNS' => ['Long Time No See'], 'LTNT' => ['Long time, no talk'], 'LTR' => ['Long term relationship'], 'LULAB' => ['Love you like a brother'], 'LULAS' => ['Love you like a sister'], 'LV' => ['love'], 'LWR' => ['Launch When Ready'], 'LYL' => ['Love ya lots'], 'LYLAB' => ['Love You Like a Brother'], 'LYLAS' => ['Love you like a sister'], 'M8' => ['Mate'], 'M8 or M8' => ['Mate or Mates'], 'MFD' => ['Multi-Function Device'], 'MfG' => ['Mit freundlichen Gruessen'], 'MHBFY' => ['My Heart Bleeds For You'], 'MIHAP' => ['May I Have Your Attention Please'], 'MKOP' => ['My Kind Of Place'], 'MM' => ['Market Maker'], 'MMFU' => ['my mate fancies you'], 'MMHA2U' => ['My Most Humble Apologies To You'], 'MMS' => ['Multimedia Messaging System'], 'mo' => ['Moment'], 'mofo' => ['Mother Fucker'], 'MOMPL' => ['One Moment Please'], 'MOO' => ['Mud, Object-Oriented'], 'MOOS' => ['Member Of The Opposite Sex'], 'MorF' => ['Male or Female?'], 'MOSS' => ['Member Of The Same Sex'], 'MOTAS' => ['Member Of The Appropriate Sex'], 'MOTD' => ['Message Of The Day'], 'MOTSS' => ['Members Of The Same Sex'], 'MSG' => ['Message'], 'MTBF' => ['Mean Time Between Failure'], 'MTE' => ['My Thoughts Exactly'], 'MTFBWU' => ['may the force be with you'], 'MTFBWY' => ['May The Force Be With You'], 'MUBAR' => ['Messed up Beyond All Recognition'], 'MWBRL' => ['More Will Be Revealed Later'], 'MYOB' => ['Mind your own Business'], 'N00B' => ['Noobie (New Person)'], 'N1' => ['Nice One'], 'N2M' => ['Not To Mention'], 'NA' => ['Not applicable','n/a', 'Not affiliated'], 'NAK' => ['Nursing at keyboard'], 'NALOPKT' => ['Not A Lot of People Know That'], 'NAP' => ['Not a problem'], 'NBD' => ['No big deal'], 'NBIF' => ['No basis in fact'], 'NC' => ['No comment'], 'NCG' => ['New college graduate'], 'NE' => ['any'], 'NE1' => ['Anyone'], 'NE1' => ['anyone'], 'NE1 ER' => ['Anyone Here?'], 'NETHNG' => ['anything'], 'NF' => ['Nucking Futs', 'Fucking Nuts'], 'NFC' => ['No fucking clue'], 'NFI' => ['No fucking idea'], 'NFW' => ['No fucking way'], 'NG' => ['New gme'], 'NIFOC' => ['Nude in front of the computer'], 'NIM' => ['No internal message'], 'NIMBY' => ['Not in my back yard'], 'NIMQ' => ['Not in my queue'], 'NINJA' => ['No Income, No Job, or Assets'], 'NM' => ['NeverMind'], 'NMP' => ['Not my problem'], 'NO1' => ['no one'], 'NOYB' => ['None of your business'], 'NP' => ['no problem'], 'NQOCD' => ['Not quite our class, dear'], 'NRG' => ['Energy'], 'NRN' => ['No Reply Necessary'], 'NSFW' => ['Not Safe For Work'], 'NT' => ['No text'], 'NTK' => ['Nice To Know'], 'NTYMI' => ['Now That You Mention It'], 'NUFF' => ['Enough Said'], 'NVM' => ['Nevermind'], 'NW' => ['No Way!'], 'NYCFS' => ['New York City finger salute'], 'OAUS' => ['On an unrelated subject'], 'OBTW' => ['Oh, by the way'], 'OEM' => ['Original equipment manufacturer'], 'OIC' => ['Oh I See'], 'OK' => ['All Correct'], 'OLL' => ['Online love'], 'OMDB' => ['Over My Dead Body'], 'OMFG' => ['Oh my fucking God'], 'OMG' => ['Oh My God'], 'OMIK' => ['Open mouth, insert keyboard'], 'ONNA' => ['Oh no, not again!'], 'ONNTA' => ['Oh No, Not This Again'], 'OOC' => ['Out of character'], 'OOF' => ['Out Of Facility'], 'OOI' => ['Out Of Interest'], 'OOO' => ['Out of office'], 'OOTB' => ['Out of the box or Out of the blue'], 'OOTC' => ['Obligatory on topic comment'], 'OS' => ['Operating system'], 'OT' => ['Off topic'], 'OTOH' => ['On the other hand'], 'OTP' => ['On the Phone'], 'OTT' => ['Over The Top'], 'OTTOMH' => ['Off the Top of my Head'], 'OUSU' => ['Oh, You Shut Up'], 'OWTTE' => ['Or words to that effect'], 'OZ' => ['Australia'], 'PANS' => ['Pretty awesome new stuff'], 'PAW' => ['parents are watching'], 'PCM' => ['Please call me'], 'PD' => ['Public Domain'], 'PDOMA' => ['Pulled directly out of my ass'], 'PDQ' => ['Pretty Darn Quick'], 'PEBCAK' => ['Problem exists between chair and keyboard'], 'PIMP' => ['Peeing in my pants'], 'PITA' => ['Pain In The Arse'], 'PLS' => ['please'], 'PM' => ['Personal Message'], 'PMFJI' => ['Pardon me for jumping in'], 'PMIGBOM' => ['Put Mind In Gear Before Opening Mouth'], 'PMJI' => ['Pardon My Jumping In'], 'PML' => ['Piss Myself Laughing'], 'PMP' => ['Peeing my pants'], 'PMPF' => ['Piss My Pants Funny'], 'PO' => ['Piss off'], 'POETS' => ['Piss on everyone, tomorrow\'s Saturday'], 'PONA' => ['Person of no account'], 'POOF' => ['Good-bye'], 'POS' => ['Parent over shoulder'], 'POV' => ['Point of view'], 'PPL' => ['People'], 'PRT' => ['Party'], 'PRW' => ['Parents Are Watching'], 'PS' => ['Post Script'], 'PTB' => ['Please Text Back'], 'PU' => ['That Stinks'], 'PZA' => ['Pizza'], 'QL' => ['Quit Laughing!'], 'QS' => ['Quit Scrolling'], 'QT' => ['Cutie'], 'R' => ['are'], 'RAT' => ['Remotely activated trojan'], 'RBAY' => ['Right Back At Ya'], 'RBTL' => ['Read between the lines'], 'RD' => ['Research and development'], 'RE' => ['Regards or Hello Again'], 'REHI' => ['Hello again or Re-hi'], 'RFD' => ['Request For Discussion'], 'RFR' => ['Really fucking rich'], 'RFS' => ['Really fucking soon'], 'RKBA' => ['Right to keep and bear arms'], 'RL' => ['Real life'], 'RLF' => ['Real life friend'], 'RLR' => ['Earlier'], 'RMLB' => ['Read my lips baby'], 'RMMM' => ['Read my mail man!'], 'RN' => ['Right now!'], 'ROFL' => ['Rolling On The Floor Laughing'], 'ROFLMAO' => ['Rolling on the floor laughing my ass off'], 'ROFLOL' => ['Roll On Floor Lauging Out Loud'], 'ROTFL' => ['Rolling on the floor laughing'], 'ROTFLMAO' => ['Roll On The Floor Laughing My Ass Off'], 'ROTFLOL' => ['Rolling On The Floor Laughing Out Loud'], 'ROTM' => ['Right on the money'], 'RPG' => ['Role playing games'], 'RR' => ['Rest and relaxation'], 'RSN' => ['Real soon now'], 'RTBS' => ['Reason to be single'], 'RTDox' => ['Read the documentations'], 'RTFAQ' => ['Read the FAQ File'], 'RTFI' => ['read the fucking instructions'], 'RTFM' => ['read the fucking manual'], 'RTFM' => ['Read the Fucking Manual'], 'RTK' => ['Return to keyboard'], 'RTM' => ['Read the manual'], 'RU' => ['are you'], 'RUMORF' => ['Are You Male Or Female'], 'RUOK' => ['are you okay'], 'RUUP4IT' => ['Are You Up For It'], 'RX' => ['Regards'], 'RYO' => ['Roll your own'], 'S2R' => ['Send To Receive'], 'S4L' => ['Spam For Life'], 'SBIA' => ['Stands Back In Amazement'], 'SBTA' => ['Sorry, Being Thick Again'], 'SCNR' => ['Sorry, Could Not Resist'], 'SED' => ['Said Enough Darling'], 'SETE' => ['Smiling Ear to Ear'], 'SF' => ['Surfer Friendly or Science Fiction'], 'SFAIAA' => ['So Far As I Am Aware'], 'SFETE' => ['Smiling From Ear To Ear'], 'sfw' => ['Safe For Work'], 'SG4IT' => ['Search Google For It'], 'SH' => ['Shit Happens'], 'SITCOMs' => ['Single Income, Two Children, Oppressive Mortgage'], 'SITD' => ['Still In The Dark'], 'SK8' => ['Skate'], 'SLIRK' => ['Smart Little Rich Kid'], 'SMAIM' => ['Send Me An Instant Message'], 'SME' => ['Subject Matter Expert'], 'SMEM' => ['Send Me E-Mail'], 'SMPF' => ['Shit My Pants Funny'], 'SMS' => ['Short Message Service'], 'SNAFU' => ['Situation Normal, All Fucked Up'], 'SNAG' => ['Sensitive New Age Guy'], 'SNERT' => ['Snotty Nosed Egotistical Rotten Teenager'], 'SO' => ['Significant Other'], 'SOHF' => ['Sense Of Humor Failure'], 'SOL' => ['Shit Out of Luck'], 'SOP' => ['Standard Operating Procedure'], 'SorG' => ['Straight or Gay?'], 'SOZ' => ['sorry'], 'SRO' => ['Standing Room Only'], 'SSDD' => ['Same Shit Different Day'], 'SSEWBA' => ['Someday Soon, Everything Will Be Acronyms'], 'STATS' => ['Your sex and age'], 'STFU' => ['Shut The Fuck Up!'], 'STM' => ['Spank The Monkey'], 'STR8' => ['Straight'], 'STYS' => ['Speak To You Soon'], 'SUM1' => ['someone'], 'SUYF' => ['Shut Up You Fool'], 'SWAG' => ['Scientific Wild Ass Guess'], 'SWAK' => ['Sent (or Sealed) With A Kiss'], 'SWALK' => ['Sent with a loving Kiss'], 'SWDYT' => ['So What Do You Think?'], 'SWG' => ['Scientific Wild Guess'], 'SWTDRMZ' => ['Sweet Dreams'], 'SYS' => ['See You Soon'], 'T+' => ['Think positive'], 'TAFN' => ['That\'s all for now'], 'TAH' => ['Take a hike'], 'TARFU' => ['Things are really fucked up'], 'TAS' => ['Taking A Shower'], 'TB' => ['Text Back'], 'TBA' => ['To be advised'], 'TBC' => ['To be continued'], 'tbh' => ['To Be Honest'], 'TCB' => ['The Trouble Came Back!'], 'TDM' => ['Too Darn Many'], 'TDTM' => ['Talk dirty to me'], 'TEOTWAWK' => ['The end of the world as we know it'], 'TFDS' => ['That is For Darn Sure'], 'TFH' => ['Thread from hell'], 'TFN' => ['Thanks for nothing or Till further notice'], 'tfr' => ['Thanks For Reading'], 'TGIF' => ['Thank God it Is Friday'], 'THANQ' => ['thank you'], 'THNX 1.0' => ['Thanks a million'], 'THX' => ['Thank You'], 'THX or T' => ['Thanks'], 'THX, THN' => ['Thanks'], 'THX40' => ['Thanks For Nothing'], 'TIA' => ['Thanks in advance'], 'TIAIL' => ['Think I am in love'], 'TIC' => ['Tongue in cheek'], 'TLA' => ['Three letter acronym'], 'TLGO' => ['The list goes on'], 'TLK2UL' => ['Talk to You Later'], 'TM' => ['Trust me'], 'TMA' => ['Too many acronyms'], 'TMB' => ['Text Me Back'], 'TMFA' => ['Too many fucking acronyms'], 'TMI' => ['Too much information'], 'TMIY' => ['Take me Im yours'], 'TMK' => ['To my knowledge'], 'TMTOWTDI' => ['There\'s more than one way to do it'], 'TNA' => ['Temporarily not available'], 'TNC' => ['Tongue In Cheek'], 'TNTLLAC' => ['Try Not To Look Like A Cock'], 'TNX' => ['Thanks'], 'TOM' => ['Tomorrow'], 'TOS' => ['Terms of service'], 'TOT' => ['Tons of Time'], 'TP' => ['Team Player'], 'TPC' => ['The phone company'], 'TPTB' => ['The powers that be'], 'TSR' => ['Totally stuck in ram'], 'TSWC' => ['Tell someone who cares'], 'TTBOMK' => ['To the best of my knowledge'], 'TTFN' => ['Ta-Ta For Now!'], 'TTG' => ['Time to Go'], 'TTS' => ['Text to Speech'], 'TTT' => ['That\'s the ticket or to the top'], 'TTTT' => ['To Tell The Truth'], 'TTUL' => ['Talk to You Later'], 'TTWIG' => ['That\'s the way it goes'], 'TTYL' => ['Talk To You Later'], 'TTYL8R' => ['Talk to you later'], 'TVN' => ['Thank You Very Much'], 'TW' => ['Team Work'], 'TWIMC' => ['To whom it may concern'], 'TWT' => ['Twat!'], 'TXS' => ['Thanks'], 'TXT BAC' => ['text back'], 'TY' => ['Thank you'], 'TYVM' => ['thank you very much'], 'U' => ['You'], 'U2' => ['You Too'], 'U4E' => ['Yours For Ever'], 'UI!' => ['You Idiot!'], 'UL' => ['You Will?'], 'unPC' => ['unPolitically correct'], 'UR' => ['your'], 'UR' => ['You Are?'], 'URAQT' => ['you are a cutie'], 'URAS' => ['you are a star'], 'URT1' => ['Your are the one'], 'URW' => ['You are welcome'], 'URWS' => ['You Are Wise'], 'URYY4M' => ['You are too wise for me'], 'VBG' => ['Very Big Grin'], 'VBS' => ['Very Big Smile'], 'VC' => ['Venture capital'], 'VEG' => ['Very Evil Grin'], 'VFM' => ['Value for money'], 'VM' => ['Voice mail'], 'VRBS' => ['Virtual reality bullshit'], 'VSF' => ['Very Sad Face'], 'W' => ['with'], 'W8' => ['Wait...'], 'WAD' => ['Without A Doubt'], 'WAG' => ['Wild Ass Guess'], 'WAI' => ['What an idiot'], 'WAMBAM' => ['Web application meets brick and mortar'], 'WAN2' => ['want to'], 'WB' => ['Welcome Back'], 'WBS' => ['Write Back Soon'], 'WC' => ['Who Cares?'], 'WCA' => ['Who cares anyway'], 'WDYS' => ['What did you say?'], 'WDYT' => ['What do you think?'], 'WE' => ['whatever'], 'we' => ['Weekend'], 'WEG' => ['Wicked evil grin'], 'WF' => ['Way Fun'], 'WFM' => ['Works for me'], 'WG' => ['Wicked grin'], 'WGAFF' => ['Who gives a flying fuck'], 'WIIFM' => ['What\'s in it for me?'], 'WIIWD' => ['What it is we do'], 'WISP' => ['Winning Is So Pleasureable'], 'WIT' => ['Wordsmith in training'], 'WITFITS' => ['What in the fuck is this shit'], 'WKND' => ['weekend'], 'WLUMRyMe' => ['Will you marry Me?'], 'WNOHGB' => ['Were No One Has Gone Before'], 'WO' => ['without'], 'WOG' => ['Wise old guy'], 'WOMBAT' => ['Waste of money, brains and time'], 'wrk' => ['Work'], 'WRT' => ['With regard to'], 'WT' => ['Without Thinking'], 'WT' => ['What?'], 'WTB' => ['Want to buy'], 'WTF' => ['What The Fuck'], 'WTFRU' => ['Who the fuck are you?'], 'WTFWT' => ['What the fuck was that?'], 'WTG' => ['Way To Go!'], 'WTGP' => ['Want to go private?'], 'WTH' => ['What The Hell'], 'WTMI' => ['Way too much information'], 'WTTM' => ['Without Thinking To Much'], 'WU' => ['What is Up'], 'WUD' => ['what you doing'], 'WUF' => ['Where Are You From?'], 'WUWH' => ['Wish you were here'], 'WWDWIIWD' => ['When we do what it is we do'], 'WWY' => ['Where Were You?'], 'WYCM' => ['Will You Call Me?'], 'WYGOWM' => ['will you go out with me'], 'WYP' => ['What\'s your problem?'], 'WYRN' => ['What\'s your real name?'], 'WYS' => ['Whatever you say'], 'WYSITWIR' => ['What you see is totally worthless in real life'], 'WYSIWYG' => ['What you see is what you get'], 'WYSLPG' => ['What you see looks pretty good'], 'WYT' => ['Whatever you think'], 'WYWH' => ['Wish You Were Here'], 'XI10' => ['Exciting'], 'XLNT' => ['excellent'], 'XME' => ['Excuuuuse Me'], 'XOXO' => ['Hugs and Kisses'], 'Y' => ['why'], 'YA' => ['Yet another'], 'YA yaya' => ['Yet Another Ya-Ya'], 'YABA' => ['Yet another bloody acronym'], 'YACC' => ['Yet another calendar company'], 'YAFIYGI' => ['You asked for it, you got it'], 'YBS' => ['You\'ll be Sorry'], 'YCT' => ['Your Comment To'], 'YGIAGAM' => ['Your guess is as good as mine'], 'YGWYPF' => ['You get what you pay for'], 'YHM' => ['You have mail'], 'YIC' => ['Yours in Christ'], 'YKW' => ['You Know What?'], 'YM' => ['Young man'], 'YMMV' => ['Your mileage may vary'], 'YNK' => ['You never know'], 'YR' => ['Why Are'], 'YSYD' => ['Yeah, sure you do'], 'YTTT' => ['You telling the truth?'], 'YW' => ['You are Welcome'], 'YYSSW' => ['yeah yeah sure sure whatever'], 'ZZZ' => ['Sleeping, Bored, Tired'] } def self.convert(str) str = transform(str, CONTRACTIONS) str = transform(str, ABBREVIATIONS) str end def self.transform(text, manipulators) manipulators.each do |replacement, regular_expressions| regular_expressions.each do |regex| text.gsub! Regexp.new(/\b#{regex}\b/i), replacement end end text end end