/*
Specifies a new acronym. An acronym must be specified as it will appear in a camelized string.  An underscore
string that contains the acronym will retain the acronym when passed to %camelize%, %humanize%, or %titleize%.
A camelized string that contains the acronym will maintain the acronym when titleized or humanized, and will
convert the acronym into a non-delimited single lowercase word when passed to String#underscore.

Examples:
String.Inflector.acronym('HTML')
'html'.titleize()     -> 'HTML'
'html'.camelize()     -> 'HTML'
'MyHTML'.underscore() -> 'my_html'

The acronym, however, must occur as a delimited unit and not be part of another word for conversions to recognize it:

String.Inflector.acronym('HTTP')
'my_http_delimited'.camelize() -> 'MyHTTPDelimited'
'https'.camelize()             -> 'Https', not 'HTTPs'
'HTTPS'.underscore()           -> 'http_s', not 'https'

String.Inflector.acronym('HTTPS')
'https'.camelize()   -> 'HTTPS'
'HTTPS'.underscore() -> 'https'

Note: Acronyms that are passed to %pluralize% will no longer be recognized, since the acronym will not occur as
a delimited unit in the pluralized result. To work around this, you must specify the pluralized form as an
acronym as well:

String.Inflector.acronym('API')
'api'.pluralize().camelize() -> 'Apis'

String.Inflector.acronym('APIs')
'api'.pluralize().camelize() -> 'APIs'

%acronym% may be used to specify any word that contains an acronym or otherwise needs to maintain a non-standard
capitalization. The only restriction is that the word must begin with a capital letter.

Examples:
String.Inflector.acronym('RESTful')
'RESTful'.underscore()           -> 'restful'
'RESTfulController'.underscore() -> 'restful_controller'
'RESTfulController'.titleize()   -> 'RESTful Controller'
'restful'.camelize()             -> 'RESTful'
'restful_controller'.camelize()  -> 'RESTfulController'

String.Inflector.acronym('McDonald')
'McDonald'.underscore() -> 'mcdonald'
'mcdonald'.camelize()   -> 'McDonald'
function(word) {
      acronyms[word.toLowerCase()] = word;
      var all = object.keys(acronyms).map(function(key) {
        return acronyms[key];
      });
      Inflector.acronymRegExp = regexp(all.join('|'), 'g');
    }