code: function() {
        return this
          .replace(/[-\s]+/g, '_')
          .replace(string.Inflector && string.Inflector.acronymRegExp, function(acronym, index) {
            return (index > 0 ? '_' : '') + acronym.toLowerCase();
          })
          .replace(/([A-Z\d]+)([A-Z][a-z])/g,'$1_$2')
          .replace(/([a-z\d])([A-Z])/g,'$1_$2')
          .toLowerCase();
      }
docs: *
  @method underscore()
  @returns String
  @short Converts hyphens and camel casing to underscores.
  @example
  
  'a-farewell-to-arms'.underscore() -> 'a_farewell_to_arms'
  'capsLock'.underscore()           -> 'caps_lock'
  
  *