{
  "_args": [
    [
      {
        "raw": "printf@^0.2.3",
        "scope": null,
        "escapedName": "printf",
        "name": "printf",
        "rawSpec": "^0.2.3",
        "spec": ">=0.2.3 <0.3.0",
        "type": "range"
      },
      "/home/travis/build/lukesargeant/ember-sparkline/node_modules/testem"
    ]
  ],
  "_from": "printf@>=0.2.3 <0.3.0",
  "_id": "printf@0.2.5",
  "_inCache": true,
  "_location": "/printf",
  "_nodeVersion": "6.0.0",
  "_npmOperationalInternal": {
    "host": "packages-16-east.internal.npmjs.com",
    "tmp": "tmp/printf-0.2.5.tgz_1467888426964_0.21776666096411645"
  },
  "_npmUser": {
    "name": "david",
    "email": "david@adaltas.com"
  },
  "_npmVersion": "3.8.6",
  "_phantomChildren": {},
  "_requested": {
    "raw": "printf@^0.2.3",
    "scope": null,
    "escapedName": "printf",
    "name": "printf",
    "rawSpec": "^0.2.3",
    "spec": ">=0.2.3 <0.3.0",
    "type": "range"
  },
  "_requiredBy": [
    "/testem"
  ],
  "_resolved": "https://registry.npmjs.org/printf/-/printf-0.2.5.tgz",
  "_shasum": "c438ca2ca33e3927671db4ab69c0e52f936a4f0f",
  "_shrinkwrap": null,
  "_spec": "printf@^0.2.3",
  "_where": "/home/travis/build/lukesargeant/ember-sparkline/node_modules/testem",
  "author": {
    "name": "David Worms",
    "email": "david@adaltas.com"
  },
  "bugs": {
    "url": "https://github.com/wdavidw/node-printf/issues"
  },
  "contributors": [
    {
      "name": "David Worms",
      "email": "david@adaltas.com"
    },
    {
      "name": "Aluísio Augusto Silva Gonçalves",
      "email": "aluisio@aasg.name"
    },
    {
      "name": "Xavier Mendez",
      "email": "jmendeth@gmail.com"
    },
    {
      "name": "LLeo",
      "email": "lleoem@gmail.com"
    },
    {
      "name": "Derrell Lipman",
      "email": "https://github.com/derrell"
    }
  ],
  "dependencies": {},
  "description": "Full implementation of the `printf` family in pure JS.",
  "devDependencies": {
    "coffee-script": "1.10.0",
    "mocha": "2.5.3",
    "semver": "5.1.1",
    "should": "9.0.2"
  },
  "directories": {
    "lib": "./lib",
    "test": "./test",
    "doc": "./doc"
  },
  "dist": {
    "shasum": "c438ca2ca33e3927671db4ab69c0e52f936a4f0f",
    "tarball": "https://registry.npmjs.org/printf/-/printf-0.2.5.tgz"
  },
  "engines": {
    "node": ">= 0.9.0"
  },
  "gitHead": "f2a6a6d8a52c8561fca3b2e32844be163b272474",
  "homepage": "http://www.adaltas.com/projects/node-printf",
  "keywords": [
    "printf",
    "formatting",
    "sprintf",
    "format",
    "output",
    "print"
  ],
  "license": "BSD-3-Clause",
  "main": "./lib/printf",
  "maintainers": [
    {
      "name": "David Worms",
      "email": "david@adaltas.com"
    }
  ],
  "name": "printf",
  "optionalDependencies": {},
  "readme": "[![Build Status](https://secure.travis-ci.org/wdavidw/node-printf.png)](http://travis-ci.org/wdavidw/node-printf)\n\n<pre>\n                _       _    __ \n               (_)     | |  / _|\n     _ __  _ __ _ _ __ | |_| |_ \n    | '_ \\| '__| | '_ \\| __|  _|\n    | |_) | |  | | | | | |_| |  \n    | .__/|_|  |_|_| |_|\\__|_|  \n    | |                         \n    |_| \n\n</pre>\n\nA complete implementation of the **`printf` C functions family**\nfor [Node.JS][node], written in pure JavaScript.\n\nThe code is strongly inspired by the one available in the [Dojo Toolkit][dojo].\n\n**Bonus!** You get extra features, like the `%O` converter (which `inspect`s\nthe argument). See [Extra Features](#extra-features) below.\n\n[![NPM](https://nodei.co/npm/printf.png?stars&downloads)](https://nodei.co/npm/printf/) [![NPM](https://nodei.co/npm-dl/printf.png)](https://nodei.co/npm/printf/)\n\nInstalling\n----------\n\nVia [NPM][npm]:\n\n``` bash\n$ npm install printf\n```\n\nUsage\n-----\n\nUse it like you would in C (`printf`/`sprintf`):\n\n``` javascript\nvar printf = require('printf');\nvar result = printf(format, args...);\n```\n\nIt can also output the result for you, as `fprintf`:\n\n``` javascript\nvar printf = require('printf');\nprintf(write_stream, format, args...);\n```\n\nFeatures\n--------\n    \n### Flags\n\n##### ` ` (space)\n\n``` javascript\nassert.eql('  -42', printf('% 5d', -42));\n```\n\n##### `+` (plus)\n\n``` javascript\nassert.eql('  +42', printf('%+5d', 42));\n```\n\n##### `0` (zero)\n\n``` javascript\nassert.eql('00042', printf('%05d', 42));\n```\n\n##### `-` (minus)\n\n``` javascript\nassert.eql('42   ', printf('%-5d', 42));\n```\n\n### Width / precision\n\n``` javascript\nassert.eql('42.90', printf('%.2f', 42.8952));\nassert.eql('042.90', printf('%06.2f', 42.8952));\n```\n\n### Numerical bases\n\n``` javascript\nassert.eql('\\x7f', printf('%c', 0x7f));\nassert.eql('a', printf('%c', 'a'));\nassert.eql('\"', printf('%c', 34));\n```\n\n### Miscellaneous\n\n``` javascript\nassert.eql('10%', printf('%d%%', 10));\nassert.eql('+hello+', printf('+%s+', 'hello'));\nassert.eql('$', printf('%c', 36));\n```\n\nExtra features!\n---------------\n\n### Inspector\n\nThe `%O` converter will call [`util.inspect(...)`][util_inspect] at the argument:\n\n``` javascript\nassert.eql(\"Debug: { hello: 'Node', repeat: false }\",\n  printf('Debug: %O', {hello: 'Node', \"repeat\": false})\n);\nassert.eql(\"Test: { hello: 'Node' }\",\n  printf('%2$s: %1$O', {\"hello\": 'Node'}, 'Test')\n);\n```\n\n**Important:** it's a capital \"O\", *not* a zero!\n\nSpecifying a precision lets you control the depth up to which the object is formatted:\n\n``` javascript\nassert.eql(\"Debug: { depth0: { depth1_: 0, depth1: [Object] } }\",\n  printf('Debug: %.1O', {depth0: {depth1: {depth2: {depth3: true}}, depth1_: 0}})\n);\n```\n\nYou can use the alternative form flag together with `%O` to disable representation of non-enumerable properties (useful for arrays):\n\n``` javascript\nassert.eql(\"With non-enumerable properties: [ 1, 2, 3, 4, 5, [length]: 5 ]\",\n  printf('With non-enumerable properties: %O', [1, 2, 3, 4, 5])\n);\nassert.eql(\"Without non-enumerable properties: [ 1, 2, 3, 4, 5 ]\",\n  printf('Without non-enumerable properties: %#O', [1, 2, 3, 4, 5])\n);\n```\n\n### Argument mapping\n\nIn addition to the old-fashioned `n$`,\nyou can use **hashes** and **property names**!\n\n``` javascript\nassert.eql('Hot Pockets',\n  printf('%(temperature)s %(crevace)ss', {\n    temperature: 'Hot',\n    crevace: 'Pocket'\n  })\n);\nassert.eql('Hot Pockets',\n  printf('%2$s %1$ss', 'Pocket', 'Hot')\n);\n```\n\n### Positionals\n\nLenght and precision can now be variable:\n\n``` javascript\nassert.eql(' foo', printf('%*s', 'foo', 4));\nassert.eql('      3.14', printf('%*.*f', 3.14159265, 10, 2));\nassert.eql('000003.142', printf('%0*.*f', 3.14159265, 10, 3));\nassert.eql('3.1416    ', printf('%-*.*f', 3.14159265, 10, 4));\n```\n\nDevelopment\n-----------\n\nTests are written in [CoffeeScript][coffee] executed with [Mocha][mocha]. To use it, simple run `npm install`, it will install\nMocha and its dependencies in your project's `node_modules` directory followed by `npm test`.\n\nTo run the tests:\n\n```bash\nnpm install\nnpm test\n```\n\nThe test suite is run online with [Travis][travis] against the versions 0.9, 0.10 and 0.11 of \nNode.js.\n\nContributors\n------------\n\n*   David Worms <https://github.com/wdavidw>\n*   Aluísio Augusto Silva Gonçalves <https://github.com/AluisioASG>\n*   Xavier Mendez <https://github.com/jmendeth>\n*   LLeo <https://github.com/lleo>\n*   Derrell Lipman <https://github.com/derrell>\n\n\n[dojo]: http://www.dojotoolkit.org  \"The Dojo Toolkit\"\n[node]: http://nodejs.org \"The Node.JS platform\"\n[npm]:  https://github.com/isaacs/npm \"The Node Package Manager\"\n[util_inspect]: http://nodejs.org/api/util.html#util_util_inspect_object_showhidden_depth_colors \"util.inspect() documentation\"\n[expresso]: http://visionmedia.github.com/expresso \"The Expresso TDD\"\n[travis]: https://travis-ci.org \"Continuous Integration system\"\n[mocha]: http://visionmedia.github.io/mocha \"The Mocha test framework\"\n[coffee]: http://coffeescript.org/\n",
  "readmeFilename": "README.md",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/wdavidw/node-printf.git"
  },
  "scripts": {
    "test": "mocha --compilers coffee:coffee-script/register --reporter dot"
  },
  "version": "0.2.5"
}
