Sha256: 045e8171e95e1f46daa0001b09dc7334929bd3bbaa87e2d092ad895eb1d3ada7

Contents?: true

Size: 881 Bytes

Versions: 41

Compression:

Stored size: 881 Bytes

Contents

var utils = require('../utils')
  , nodes = require('../nodes')
  , Compiler = require('../visitor/compiler');

/**
 * Return a `Literal` with the given `fmt`, and
 * variable number of arguments.
 *
 * @param {String} fmt
 * @param {Node} ...
 * @return {Literal}
 * @api public
 */

(module.exports = function s(fmt){
  fmt = utils.unwrap(fmt).nodes[0];
  utils.assertString(fmt);
  var self = this
    , str = fmt.string
    , args = arguments
    , i = 1;

  // format
  str = str.replace(/%(s|d)/g, function(_, specifier){
    var arg = args[i++] || nodes.null;
    switch (specifier) {
      case 's':
        return new Compiler(arg, self.options).compile();
      case 'd':
        arg = utils.unwrap(arg).first;
        if ('unit' != arg.nodeName) throw new Error('%d requires a unit');
        return arg.val;
    }
  });

  return new nodes.Literal(str);
}).raw = true;

Version data entries

41 entries across 22 versions & 3 rubygems

Version Path
epuber-stylus-source-0.56.0 vendor/lib/functions/s.js
epuber-stylus-source-0.54.8 vendor/lib/functions/s.js
ela-4.1.6 node_modules/nib/node_modules/stylus/lib/functions/s.js
ela-4.1.6 node_modules/stylus/lib/functions/s.js
ela-4.1.5 node_modules/nib/node_modules/stylus/lib/functions/s.js
ela-4.1.5 node_modules/stylus/lib/functions/s.js
ela-4.1.4 node_modules/nib/node_modules/stylus/lib/functions/s.js
ela-4.1.4 node_modules/stylus/lib/functions/s.js
ela-4.1.3 node_modules/stylus/lib/functions/s.js
ela-4.1.3 node_modules/nib/node_modules/stylus/lib/functions/s.js
ela-4.1.2 node_modules/stylus/lib/functions/s.js
ela-4.1.2 node_modules/nib/node_modules/stylus/lib/functions/s.js
ela-4.1.1 node_modules/nib/node_modules/stylus/lib/functions/s.js
ela-4.1.1 node_modules/stylus/lib/functions/s.js
ela-4.1.0 node_modules/nib/node_modules/stylus/lib/functions/s.js
ela-4.1.0 node_modules/stylus/lib/functions/s.js
ela-4.0.0 node_modules/stylus/lib/functions/s.js
ela-4.0.0 node_modules/nib/node_modules/stylus/lib/functions/s.js
ela-3.4.3 node_modules/nib/node_modules/stylus/lib/functions/s.js
ela-3.4.3 node_modules/stylus/lib/functions/s.js