123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- /*
- * Underscore.string
- * (c) 2010 Esa-Matti Suuronen <esa-matti aet suuronen dot org>
- * Underscore.string is freely distributable under the terms of the MIT license.
- * Documentation: https://github.com/epeli/underscore.string
- * Some code is borrowed from MooTools and Alexandru Marasteanu.
- * Version '3.3.4'
- * @preserve
- */
- 'use strict';
- function s(value) {
- /* jshint validthis: true */
- if (!(this instanceof s)) return new s(value);
- this._wrapped = value;
- }
- s.VERSION = '3.3.4';
- s.isBlank = require('./isBlank');
- s.stripTags = require('./stripTags');
- s.capitalize = require('./capitalize');
- s.decapitalize = require('./decapitalize');
- s.chop = require('./chop');
- s.trim = require('./trim');
- s.clean = require('./clean');
- s.cleanDiacritics = require('./cleanDiacritics');
- s.count = require('./count');
- s.chars = require('./chars');
- s.swapCase = require('./swapCase');
- s.escapeHTML = require('./escapeHTML');
- s.unescapeHTML = require('./unescapeHTML');
- s.splice = require('./splice');
- s.insert = require('./insert');
- s.replaceAll = require('./replaceAll');
- s.include = require('./include');
- s.join = require('./join');
- s.lines = require('./lines');
- s.dedent = require('./dedent');
- s.reverse = require('./reverse');
- s.startsWith = require('./startsWith');
- s.endsWith = require('./endsWith');
- s.pred = require('./pred');
- s.succ = require('./succ');
- s.titleize = require('./titleize');
- s.camelize = require('./camelize');
- s.underscored = require('./underscored');
- s.dasherize = require('./dasherize');
- s.classify = require('./classify');
- s.humanize = require('./humanize');
- s.ltrim = require('./ltrim');
- s.rtrim = require('./rtrim');
- s.truncate = require('./truncate');
- s.prune = require('./prune');
- s.words = require('./words');
- s.pad = require('./pad');
- s.lpad = require('./lpad');
- s.rpad = require('./rpad');
- s.lrpad = require('./lrpad');
- s.sprintf = require('./sprintf');
- s.vsprintf = require('./vsprintf');
- s.toNumber = require('./toNumber');
- s.numberFormat = require('./numberFormat');
- s.strRight = require('./strRight');
- s.strRightBack = require('./strRightBack');
- s.strLeft = require('./strLeft');
- s.strLeftBack = require('./strLeftBack');
- s.toSentence = require('./toSentence');
- s.toSentenceSerial = require('./toSentenceSerial');
- s.slugify = require('./slugify');
- s.surround = require('./surround');
- s.quote = require('./quote');
- s.unquote = require('./unquote');
- s.repeat = require('./repeat');
- s.naturalCmp = require('./naturalCmp');
- s.levenshtein = require('./levenshtein');
- s.toBoolean = require('./toBoolean');
- s.exports = require('./exports');
- s.escapeRegExp = require('./helper/escapeRegExp');
- s.wrap = require('./wrap');
- s.map = require('./map');
- // Aliases
- s.strip = s.trim;
- s.lstrip = s.ltrim;
- s.rstrip = s.rtrim;
- s.center = s.lrpad;
- s.rjust = s.lpad;
- s.ljust = s.rpad;
- s.contains = s.include;
- s.q = s.quote;
- s.toBool = s.toBoolean;
- s.camelcase = s.camelize;
- s.mapChars = s.map;
- // Implement chaining
- s.prototype = {
- value: function value() {
- return this._wrapped;
- }
- };
- function fn2method(key, fn) {
- if (typeof fn !== 'function') return;
- s.prototype[key] = function() {
- var args = [this._wrapped].concat(Array.prototype.slice.call(arguments));
- var res = fn.apply(null, args);
- // if the result is non-string stop the chain and return the value
- return typeof res === 'string' ? new s(res) : res;
- };
- }
- // Copy functions to instance methods for chaining
- for (var key in s) fn2method(key, s[key]);
- fn2method('tap', function tap(string, fn) {
- return fn(string);
- });
- function prototype2method(methodName) {
- fn2method(methodName, function(context) {
- var args = Array.prototype.slice.call(arguments, 1);
- return String.prototype[methodName].apply(context, args);
- });
- }
- var prototypeMethods = [
- 'toUpperCase',
- 'toLowerCase',
- 'split',
- 'replace',
- 'slice',
- 'substring',
- 'substr',
- 'concat'
- ];
- for (var method in prototypeMethods) prototype2method(prototypeMethods[method]);
- module.exports = s;
|