{"_id":"handlebars-helper","_rev":"42-06f88893b709cb53a26b88358e1b5f4a","name":"handlebars-helper","description":"A collection of helpers for quick and tasty Handlebars templates","dist-tags":{"latest":"0.0.12"},"versions":{"0.0.1":{"name":"handlebars-helper","version":"0.0.1","description":"A collection of helpers for quick and tasty Handlebars templates","main":"index.js","scripts":{"test":"node test"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"keywords":["Handlebars","helpers"],"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"license":"MIT","bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"devDependencies":{"grunt":"~0.4.1","grunt-browserify":"~1.2.4","grunt-contrib-uglify":"~0.2.4","handlebars":"~1.0.12","tape":"~1.1.1"},"dependencies":{"strftime":"~0.6.2"},"_id":"handlebars-helper@0.0.1","dist":{"shasum":"4e3562ca7bda67b107f0e4d662c6c492815b169b","tarball":"https://registry.npmjs.org/handlebars-helper/-/handlebars-helper-0.0.1.tgz","integrity":"sha512-rInh0ba4k635Rjk2tNH2aOjdtGXu7uMYInU1LWIU0PjQHn6/SPcBizQFkBz1q4/uBjwFh3DmDpblNqBDVgR+GA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCq0aNX0d1qz4p3QN4ZQHmmdPUt55BDp3rwXD5X5PqVVAIhAIEmZEQZMMy98YK+oL46LnoM15H+IOan4B7KjXBLlUqg"}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"sparkart","email":"tim@sparkart.com"},"maintainers":[{"name":"sparkart","email":"tim@sparkart.com"}],"directories":{}},"0.0.2":{"name":"handlebars-helper","version":"0.0.2","description":"A collection of helpers for quick and tasty Handlebars templates","main":"index.js","scripts":{"test":"node test"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"keywords":["Handlebars","helpers"],"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"license":"MIT","bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"devDependencies":{"grunt":"~0.4.1","grunt-browserify":"~1.2.4","grunt-contrib-uglify":"~0.2.4","handlebars":"~1.0.12","tape":"~1.1.1"},"dependencies":{"strftime":"~0.6.2"},"testling":{"files":"test/index.js","browsers":["ie/6..latest","ff/20..latest","chrome/25..latest","safari/4.0..latest","opera/11.0..latest"]},"_id":"handlebars-helper@0.0.2","dist":{"shasum":"57c1bc3893f166edc26a67a6b6dc17c36e192b21","tarball":"https://registry.npmjs.org/handlebars-helper/-/handlebars-helper-0.0.2.tgz","integrity":"sha512-2YX488eExZe8I9b5gvSFg2goNbKfHopOu20WPF9ieMg2LNPtHfCjaf2lzNDgEQSaYP32vES8kGV8TG31lPr4GQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClK9AlsTi5Ww61hVZn3V9MUiJN7kBWYCnH8cue9whlmgIhAMVLLCMy9KC7B/Q9m2vklffPzA/iddcZKaWSizM48ILV"}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"sparkart","email":"tim@sparkart.com"},"maintainers":[{"name":"sparkart","email":"tim@sparkart.com"}],"directories":{}},"0.0.3":{"name":"handlebars-helper","version":"0.0.3","description":"A collection of helpers for quick and tasty Handlebars templates","main":"index.js","scripts":{"test":"node test"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"keywords":["Handlebars","helpers"],"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"license":"MIT","bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"devDependencies":{"grunt":"~0.4.1","grunt-browserify":"~1.2.4","grunt-contrib-uglify":"~0.2.4","handlebars":"~1.0.12","tape":"~1.1.1"},"dependencies":{"strftime":"~0.6.2"},"testling":{"files":"test/index.js","browsers":["ie/6..latest","ff/20..latest","chrome/25..latest","safari/4.0..latest","opera/11.0..latest"]},"_id":"handlebars-helper@0.0.3","dist":{"shasum":"b16c95bbe6f0e0afe1d6457356bdf56fcc33d553","tarball":"https://registry.npmjs.org/handlebars-helper/-/handlebars-helper-0.0.3.tgz","integrity":"sha512-s2d3jxosTcIyhEQwWKieTP0JYN/zYJ3RF5kE7adqfIsn+PGfe07G34tFbgurJOG8aMYiXOhbCdrAHuVvcahgAA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdujplIYAwudBn6gI96uWbl35XBJ3SvnLxYEvlWhONlQIgQGlS3wCrqCdPIPSistTmi7vW6KmzvRkuV+pNRO/F2Hs="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"sparkart","email":"tim@sparkart.com"},"maintainers":[{"name":"sparkart","email":"tim@sparkart.com"}],"directories":{}},"0.0.4":{"name":"handlebars-helper","version":"0.0.4","description":"A collection of helpers for quick and tasty Handlebars templates","main":"index.js","scripts":{"test":"node test"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"keywords":["Handlebars","helpers"],"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"license":"MIT","bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"devDependencies":{"grunt":"~0.4.1","grunt-browserify":"~1.2.4","grunt-contrib-uglify":"~0.2.4","handlebars":"~1.0.12","tape":"~1.1.1"},"dependencies":{"strftime":"~0.7.0"},"testling":{"files":"test/index.js","browsers":["ie/6..latest","ff/20..latest","chrome/25..latest","safari/4.0..latest","opera/11.0..latest"]},"_id":"handlebars-helper@0.0.4","dist":{"shasum":"6bb26dfe53fbb33586f250348693ac79d04c06cc","tarball":"https://registry.npmjs.org/handlebars-helper/-/handlebars-helper-0.0.4.tgz","integrity":"sha512-bdEg2RSK7e7Ys0gnSQAfDVNm5HUgOTdG4KdHI0T25l+JgBdQyHt6AwE4m8rx4raonXAgYTI6XOLXot/UHt995g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHj1iz4LYF/JIJ2PbjNE5QX/x/L7dLwU1jR2ypJdFiqkAiBuCt0/wN+h427RdtwWKBTzH9K4sIdmIM9wAJz7nCITBw=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"sparkart","email":"tim@sparkart.com"},"maintainers":[{"name":"sparkart","email":"tim@sparkart.com"}],"directories":{}},"0.0.5":{"name":"handlebars-helper","version":"0.0.5","description":"A collection of helpers for quick and tasty Handlebars templates","main":"index.js","scripts":{"test":"node test"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"keywords":["Handlebars","helpers"],"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"license":"MIT","bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"devDependencies":{"grunt":"~0.4.1","grunt-browserify":"~1.2.4","grunt-contrib-uglify":"~0.2.4","handlebars":"~1.0.12","tape":"~1.1.1"},"dependencies":{"strftime":"~0.7.0"},"testling":{"files":"test/index.js","browsers":["ie/6..latest","ff/20..latest","chrome/25..latest","safari/4.0..latest","opera/11.0..latest"]},"_id":"handlebars-helper@0.0.5","dist":{"shasum":"f37248edde6fe2d601d5c11ee2aa6e36e753a4c5","tarball":"https://registry.npmjs.org/handlebars-helper/-/handlebars-helper-0.0.5.tgz","integrity":"sha512-Db7dWY6ISK26K3OQ6qYuz/XxxcirFnGMc/kL0cgqM6FcTgD3QKCifBuYFk7qt6RrCsyTMC8yVtBTCpUdCQ1Jtw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEVlY3e7mCo05KFuTFHb6v8g7KeK7nptZZxiCqQNGE1dAiA1oDr9yxqAycaHKzlIV4BId7FHUFth1TbFoMAUj8RmGA=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"sparkart","email":"tim@sparkart.com"},"maintainers":[{"name":"sparkart","email":"tim@sparkart.com"}],"directories":{}},"0.0.6":{"name":"handlebars-helper","version":"0.0.6","description":"A collection of helpers for quick and tasty Handlebars templates","main":"index.js","scripts":{"test":"node test"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"keywords":["Handlebars","helpers"],"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"license":"MIT","bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"devDependencies":{"grunt":"~0.4.1","grunt-browserify":"~1.2.4","grunt-contrib-uglify":"~0.2.4","handlebars":"~1.0.12","tape":"~1.1.1"},"dependencies":{"strftime":"~0.7.0"},"testling":{"files":"test/index.js","browsers":["iexplore/6..latest","firefox/20..latest","chrome/25..latest","safari/4.0..latest","opera/11.0..latest"]},"_id":"handlebars-helper@0.0.6","dist":{"shasum":"5826f2ab8f2e06b22f345e84f3ad26a06c8357cb","tarball":"https://registry.npmjs.org/handlebars-helper/-/handlebars-helper-0.0.6.tgz","integrity":"sha512-ZcI5VvbUIU9iV4uMgKjT5HaYO5DIe6OEXg9RJk5GFVwwTStj8y5j1jKi7iGJAztGp//TAUS7eVYjOoUiwE9UpQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEKAz4ydwWk+jmybx0+K8OZTKB3unskDXHo9eKS+aDFFAiEAh3yondIMYGETkLEC/Vx7WDGph4AMAn4BphxlLz//W3w="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"sparkart","email":"tim@sparkart.com"},"maintainers":[{"name":"sparkart","email":"tim@sparkart.com"}],"directories":{}},"0.0.7":{"name":"handlebars-helper","version":"0.0.7","description":"A collection of helpers for quick and tasty Handlebars templates","main":"index.js","scripts":{"test":"node test"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"keywords":["Handlebars","helpers"],"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"license":"MIT","bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"devDependencies":{"grunt":"~0.4.1","grunt-browserify":"~1.2.4","grunt-contrib-uglify":"~0.2.4","handlebars":"~1.0.12","tape":"~1.1.1"},"dependencies":{"strftime":"~0.7.0","new-date":"~0.2.0"},"testling":{"files":"test/index.js","browsers":["iexplore/6..latest","firefox/20..latest","chrome/25..latest","safari/4.0..latest","opera/11.0..latest"]},"_id":"handlebars-helper@0.0.7","dist":{"shasum":"3924801ed302234fa0db66d85dfa6d800c621772","tarball":"https://registry.npmjs.org/handlebars-helper/-/handlebars-helper-0.0.7.tgz","integrity":"sha512-EMUWvKa4WNoop4Mm07G5Rgp7TUMkO+kMqbabdGByqzVgNqd89j6Hy9c++yumb6fWz/f0/sowN+PCaY+VYozUHA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEBcYnNljAfSI+pfQGPdrD8y7MMNKIaKePUBrkPiX606AiAVr18SvJpy1FRJVHcbN8hx5F5QCDO1hxaVhVJRN49K5g=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"sparkart","email":"tim@sparkart.com"},"maintainers":[{"name":"sparkart","email":"tim@sparkart.com"}],"directories":{}},"0.0.8":{"name":"handlebars-helper","version":"0.0.8","description":"A collection of helpers for quick and tasty Handlebars templates","main":"index.js","scripts":{"test":"node test"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"keywords":["Handlebars","helpers"],"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"license":"MIT","bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"devDependencies":{"grunt":"~0.4.1","grunt-browserify":"~1.2.4","grunt-contrib-uglify":"~0.2.4","handlebars":"~1.0.12","tape":"~1.1.1"},"dependencies":{"strftime":"~0.7.0","new-date":"~0.2.0"},"testling":{"files":"test/index.js","browsers":["iexplore/6..latest","firefox/20..latest","chrome/25..latest","safari/4.0..latest","opera/11.0..latest"]},"_id":"handlebars-helper@0.0.8","dist":{"shasum":"1aeb0f3f949313b9508f194de7a54ec7020fe5a3","tarball":"https://registry.npmjs.org/handlebars-helper/-/handlebars-helper-0.0.8.tgz","integrity":"sha512-+MKqDtTvw9s8vEBtn97z1zp3bJO+0PV9lGIKE7VXawmPkyhogxPA9/PC9aCa4BpAWC7MIfBFDo6b8O88e7uUqw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9/sVub9zacwWI4QxPduVNBFXT7B+HJYHhoLmLfwBFUwIgK9ok9DCV3hAuAIIgOSCMSLkdoSPvEh244cA4iq339qU="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"sparkart","email":"tim@sparkart.com"},"maintainers":[{"name":"sparkart","email":"tim@sparkart.com"}],"directories":{}},"0.0.9":{"name":"handlebars-helper","version":"0.0.9","description":"A collection of helpers for quick and tasty Handlebars templates","main":"index.js","scripts":{"test":"node test"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"keywords":["Handlebars","helpers"],"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"license":"MIT","bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"devDependencies":{"grunt":"~0.4.1","grunt-browserify":"~1.2.4","grunt-contrib-uglify":"~0.2.4","handlebars":"~1.0.12","tape":"~1.1.1"},"dependencies":{"strftime":"~0.7.0","new-date":"~0.2.0"},"testling":{"files":"test/index.js","browsers":["iexplore/6..latest","firefox/20..latest","chrome/25..latest","safari/4.0..latest","opera/11.0..latest"]},"_id":"handlebars-helper@0.0.9","dist":{"shasum":"129c05d53e94747164f56f7cd77f4996459f8655","tarball":"https://registry.npmjs.org/handlebars-helper/-/handlebars-helper-0.0.9.tgz","integrity":"sha512-F3TcQ99OMhak4nCNW9HcRGHAJQZI/ryIDTenMcOWmVqqQ+oMDPTHl4tf0arMkKpV5iDGo2iRi1boGjHIAnwvig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbNeM9OG4Lcap67TuLja49ZCnM8WGx8tef2WV/YZUwdwIhAKlExOxnJCsh/Qbv3zsKaZ5stzMHsJWw9WR8V/AEo5Ze"}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"sparkart","email":"tim@sparkart.com"},"maintainers":[{"name":"sparkart","email":"tim@sparkart.com"}],"directories":{}},"0.0.10":{"name":"handlebars-helper","version":"0.0.10","description":"A collection of helpers for quick and tasty Handlebars templates","main":"index.js","scripts":{"test":"node test"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"keywords":["Handlebars","helpers"],"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"license":"MIT","bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"devDependencies":{"grunt":"~0.4.1","grunt-browserify":"~1.2.4","grunt-contrib-uglify":"~0.2.4","handlebars":"~1.0.12","tape":"~1.1.1"},"dependencies":{"strftime":"~0.7.0","new-date":"~0.2.0","JSON":"^1.0.0","lodash.isarray":"^2.4.1","lodash.reduce":"^2.4.1"},"testling":{"files":"test/index.js","browsers":["iexplore/6..latest","firefox/20..latest","chrome/25..latest","safari/4.0..latest","opera/11.0..latest"]},"homepage":"https://github.com/SparkartGroupInc/handlebars-helpers","_id":"handlebars-helper@0.0.10","dist":{"shasum":"93c4ccd0157cb05168f5c0714e2956dd508ca724","tarball":"https://registry.npmjs.org/handlebars-helper/-/handlebars-helper-0.0.10.tgz","integrity":"sha512-mv9nANANk/U8XVRxUXL4f0XZuQzMiFDAPcbJRbEVe4aRcKA5flSvqY9hA5QgU4wNExnFUjj2RL3StQwBVJCowA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUX0J2Dk1+aMgbLBYDMfx7o4+L+ZFSB4eioLgIlUwo9wIhAKRJ55cvttJ0brFXS87KYNn+q9sg6XIIc3oDWj3/3cgg"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"sparkart","email":"product@sparkart.com"},"maintainers":[{"name":"sparkart","email":"tim@sparkart.com"}],"directories":{}},"0.0.11":{"name":"handlebars-helper","version":"0.0.11","description":"A collection of helpers for quick and tasty Handlebars templates","main":"index.js","scripts":{"test":"node test"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"keywords":["Handlebars","helpers"],"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"license":"MIT","bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"devDependencies":{"grunt":"~0.4.1","grunt-browserify":"~1.2.4","grunt-contrib-uglify":"~0.2.4","handlebars":"~1.0.12","tape":"~1.1.1"},"dependencies":{"strftime":"~0.7.0","new-date":"~0.2.0","JSON":"^1.0.0","lodash.isarray":"^2.4.1","lodash.reduce":"^2.4.1"},"testling":{"files":"test/index.js","browsers":["iexplore/6..latest","firefox/20..latest","chrome/25..latest","safari/4.0..latest","opera/11.0..latest"]},"homepage":"https://github.com/SparkartGroupInc/handlebars-helpers","_id":"handlebars-helper@0.0.11","dist":{"shasum":"50f14d2d99ac1d2423dc212734e0344e80486c30","tarball":"https://registry.npmjs.org/handlebars-helper/-/handlebars-helper-0.0.11.tgz","integrity":"sha512-ELyjRAj+2lHBMlECCPc4pAid2OVhV50wSrEEtTNrFjTRwHXn/RNuyD7H7gTz2F04L2/ahLtRGPEUyk0yK1oNEw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHORjPyI7qTnRX2vMS27WnMjyrPqnNcP1IsUd6YRK5ZAAiBjGd17VdCAk0p83aGau3TQwQ1Twf/FE4lA/wM7omxE/g=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"sparkart","email":"product@sparkart.com"},"maintainers":[{"name":"sparkart","email":"tim@sparkart.com"}],"directories":{}},"0.0.12":{"name":"handlebars-helper","version":"0.0.12","description":"A collection of helpers for quick and tasty Handlebars templates","main":"index.js","scripts":{"test":"node test"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"keywords":["Handlebars","helpers"],"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"license":"MIT","bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"devDependencies":{"grunt":"~0.4.1","grunt-browserify":"~1.2.4","grunt-contrib-uglify":"~0.2.4","handlebars":"~1.0.12","tape":"~1.1.1"},"dependencies":{"strftime":"~0.7.0","new-date":"~0.2.0","JSON":"^1.0.0","lodash.isarray":"^2.4.1","lodash.reduce":"^2.4.1"},"testling":{"files":"test/index.js","browsers":["iexplore/6..latest","firefox/20..latest","chrome/25..latest","safari/4.0..latest","opera/11.0..latest"]},"homepage":"https://github.com/SparkartGroupInc/handlebars-helpers","_id":"handlebars-helper@0.0.12","dist":{"shasum":"52153a1cf2b59ba9a6bf3cca8265b3ac381176e6","tarball":"https://registry.npmjs.org/handlebars-helper/-/handlebars-helper-0.0.12.tgz","integrity":"sha512-ScWGVnBZcMDG7g34bT/0XAzkSTbwwE7j3QwADLtcEb+oChnSibGMPl5hUR/aNhyeoVqPunEyw21/VV5jSZSRSA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkHEF3aCeH9LDA5wT9/uT8BL4H8Iyl8udRxpSfBwiNuAIgGETdXDsZhXEpQyXFScwBPx3SJpxXe5aJ2p8EfMuYScI="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"joanniclaborde","email":"joannic@sparkart.com"},"maintainers":[{"name":"sparkart","email":"tim@sparkart.com"},{"name":"joanniclaborde","email":"joannic@sparkart.com"}],"directories":{}}},"readme":"# Handlebars Helper\n\nA collection of Handlebars Helpers for use with Solidus. Not that you can't use it elsewhere, mind you.\n\n[![browser support](https://ci.testling.com/SparkartGroupInc/handlebars-helper.png)](https://ci.testling.com/SparkartGroupInc/handlebars-helper)\n\n## String Helpers\n\n### Lowercase\n\nConverts a string to all lowercase characters.\n\n```handlebars\n{{lowercase \"LIQUID!\"}}\n```\n\n```\nliquid!\n```\n\n### Uppercase\n\nConverts a string to all uppercase characters.\n\n```handlebars\n{{uppercase \"brother!\"}}\n```\n\n```\nBROTHER!\n```\n\n### Replace\n\nReplaces part of a string with a string.\n\n```handlebars\n{{replace \"Liquid Snake\" \"Liquid\" \"Solid\"}}\n```\n\n```\nSolid Snake\n```\n\n### Encode\n\nURI encodes a string. Useful for links that use URLs as query parameters.\n\n```handlebars\n{{encode \"http://sparkart.com\"}}\n```\n\n```\nhttp%3A%2F%2Fsparkart.com\n```\n\n## Collection Helpers\n\n### Length\n\nReturns the length of the array, string, or object.\n\n```javascript\n{\n\tarray: [1,2,3],\n\tobject: {\n\t\tone: 1,\n\t\ttwo: 2,\n\t\tthree: 3\n\t},\n\tstring: 'Metal Gear'\n}\n```\n\n```handlebars\nArray length: {{length array}}\nObject length: {{length object}}\nString length: {{length string}}\n```\n\n```\nArray length: 3\nObject length: 3\nString length: 10\n```\n\n### Contains\n\nRender something if the specified value is in the array, object or string; else render some other thing.\n\n```javascript\n{\n\tarray: [ 'Solid', 'Liquid', 'Solidus' ],\n\tarray2: [ 'Chell', 'GLAdOS', 'Wheatley' ],\n\tobject: {\n\t\tone: 'Solid',\n\t\ttwo: 'Liquid',\n\t\tthree: 'Solidus'\n\t},\n\tobject2: {\n\t\tone: 'Chell',\n\t\ttwo: 'GLaDOS',\n\t\tthree: 'Wheatley'\n\t},\n\tstring: 'Solidus Snake',\n\tstring2: 'Solid Snake'\n}\n```\n\n```handlebars\nArray contains \"Solidus\": {{#contains array \"Solidus\"}}Yup{{else}}Nope{{/contains}}.\nArray2 contains \"Solidus\": {{#contains array2 \"Solidus\"}}Yup{{else}}Nope{{/contains}}.\nObject contains \"Solidus\": {{#contains object \"Solidus\"}}Yup{{else}}Nope{{/contains}}.\nObject2 contains \"Solidus\": {{#contains object2 \"Solidus\"}}Yup{{else}}Nope{{/contains}}.\nString contains \"Solidus\": {{#contains string \"Solidus\"}}Yup{{else}}Nope{{/contains}}.\nString2 contains \"Solidus\": {{#contains string2 \"Solidus\"}}Yup{{else}}Nope{{/contains}}.\n```\n\n```\nArray contains \"Solidus\": Yup.\nArray2 contains \"Solidus\": Nope.\nObject contains \"Solidus\": Yup.\nObject2 contains \"Solidus\": Nope.\nString contains \"Solidus\": Yup.\nString2 contains \"Solidus\": Nope.\n```\n\n### First\n\nRender something with the first item in an array. Or render something with the first `count` items in an array, I won't judge.\n\nThis can also display the \"first\" `count` items in an object. Use with caution, as browsers don't always agree on what the \"first\" item in an object is.\n\n```javascript\n{\n\tarray: ['Solid', 'Liquid', 'Solidus'],\n\tobject: {\n\t\tone: 'Solid',\n\t\ttwo: 'Liquid',\n\t\tthree: 'Solidus'\n\t}\n}\n```\n\n```handlebars\nFirst item in array: {{#first array}}{{this}} {{/first}}\nFirst two items in array: {{#first array 2}}{{this}} {{/first}}\nFirst item in object: {{#first object}}{{this}} {{/first}}\nFirst two items in object: {{#first object 2}}{{this}} {{/first}}\n```\n\n```\nFirst item in array: Solid\nFirst two items in array: Solid Liquid\nFirst item in object: Solid\nFirst two items in object: Solid Liquid\n```\n\n### Last\n\nRender something with the last item in an array. Or render something with the last `count` items in an array, it's cool.\n\n```javascript\n{\n\tarray: ['Solid', 'Liquid', 'Solidus']\n}\n```\n\n```handlebars\nLast item in array: {{#last array}}{{this}} {{/last}}\nLast two items in array: {{#last array 2}}{{this}} {{/last}}\n```\n\n```\nLast item in array: Solid\nLast two items in array: Liquid Solidus \n```\n\n### Between\n\nLoop through the data in an array between two indexes. Here's a quick run down:\n\n- If only one index is provided, it is treated as the `start` and it will continue to the end of the array.\n- These are zero-based indexes, so the first item is `0`, the second is `1`, and so forth.\n- This is an inclusive helper, so it not only gets things between two indexes, it includes them as well.\n- Indexes can be negative! Negative indexes count backwards from the end of the array.\n\n```javascript\n{\n\tarray: ['Psycho Mantis','Sniper Wolf', 'Vulcan Raven', 'Decoy Octopus', 'Revolver Ocelot', 'Liquid Snake']\n}\n```\n\n```handlebars\nBetween the 3rd item and the last: {{#between this 2}}{{this}} {{/between}}\nBetween the 2nd item and the 4th: {{#between this 1 3}}{{this}} {{/between}}\nBetween the -4th item and the -1st: {{#between this -4 -1}}{{this}} {{/between}}\n```\n\n```\nBetween the 3rd item and the last: Vulcan Raven Decoy Octopus Revolver Ocelot Liquid Snake \nBetween the 2nd item and the 4th: Sniper Wolf Vulcan Raven Decoy Octopus\nBetween the -4th item and the -1st: Vulcan Raven Decoy Octopus Revolver Ocelot\n```\n\n### Range\n\nLoop through `amount` data items in an array starting from `index`. Some notes:\n\n- If only the `index` is provided, it will loop through every item from there to the end.\n- The index is zero-based, so the first item is `0`, the second is `1`, and so forth.\n- This is an inclusive helper, so it gets everything beyond the specified index and the item at `index` itself.\n- The `index` can be negative! Negative indexes count backwards from the end of the array.\n\n```javascript\n{\n\tarray: ['Psycho Mantis','Sniper Wolf', 'Vulcan Raven', 'Decoy Octopus', 'Revolver Ocelot', 'Liquid Snake']\n}\n```\n\n```handlebars\nRange from 3rd item to the end: {{#range this 2}}{{this}} {{/range}}\nRange of 2 items starting from the 2nd item: {{#range this 1 2}}{{this}} {{/range}}\nRange of 2 items starting from the -3rd item: {{#range this -3 2}}{{this}} {{/range}}\n```\n\n```\nRange from 3rd item to the end: Vulcan Raven Decoy Octopus Revolver Ocelot Liquid Snake\nRange of 2 items starting from the 2nd item: Sniper Wolf Vulcan Raven\nRange of 2 items starting from the -3rd item: Decoy Octopus Revolver Ocelot\n```\n\n### Where\n\nLoop through an array of objects and render when the `value` at `key` matches the supplied values. You can also provide a `limit` to stop looping after you've had enough.\n\n```javascript\n{\n\tarray: [{\n\t\ttitle: 'Metal Gear Solid',\n\t\tsystem: 'Playstation',\n\t\trelease_year: 1998\n\t}, {\n\t\ttitle: 'Metal Gear Solid 2',\n\t\tsystem: 'Playstation 2',\n\t\trelease_year: 2001\n\t}, {\n\t\ttitle: 'Metal Gear Solid 3',\n\t\tsystem: 'Playstation 2',\n\t\trelease_year: 2004\n\t}]\n}\n```\n\n```handlebars\nWhere release_year is 1998: {{#where this \"release_year\" 1998}}{{title}}{{/where}}\nWhere system is \"Playstation 2\": {{#where this \"system\" \"Playstation 2\"}}{{title}} {{/where}}\nWhere system is \"Playstation 2\", limit 1: {{#where this \"system\" \"Playstation 2\" 1}}{{title}}{{/where}}\n```\n\n```\nWhere release_year is 1998: Metal Gear Solid\nWhere system is \"Playstation 2\": Metal Gear Solid 2 Metal Gear Solid 3 \nWhere system is \"Playstation 2\", limit 1: Metal Gear Solid 2\n```\n\n### Shuffle\n\nLoop through an array, but in random order.\n\n```javascript\n{\n\tarray: ['Psycho Mantis','Sniper Wolf', 'Vulcan Raven', 'Decoy Octopus', 'Revolver Ocelot', 'Liquid Snake']\n}\n```\n\n```handlebars\nShuffled array: {{#shuffle array}}{{this}} {{/shuffle}}\n```\n\n```\nShuffled array: Vulcan Raven Psycho Mantis Revolver Ocelot Liquid Snake Sniper Wolf Decoy Octopus\n```\n\n### Reverse\n\nLoop through an array in reverse order.\n\n```javascript\n{\n\tarray: ['Psycho Mantis','Sniper Wolf', 'Vulcan Raven', 'Decoy Octopus', 'Revolver Ocelot', 'Liquid Snake']\n}\n```\n\n```handlebars\nReversed array: {{#reverse array}}{{this}} {{/reverse}}\n```\n\n```\nReversed array: Liquid Snake Revolver Ocelot Decoy Octopus Vulcan Raven Sniper Wolf Psycho Mantis\n```\n\n### Join\n\nJoin a collection together with the specified separator. If run on an object, it just joins the values together (ignoring keys).\n\n```javascript\n{\n\tarray: ['Psycho Mantis', 'Sniper Wolf', 'Vulcan Raven', 'Decoy Octopus', 'Revolver Ocelot', 'Liquid Snake'],\n\tobject: { '1': 'Psycho Mantis', '2': 'Sniper Wolf', '3': 'Vulcan Raven', '4': 'Decoy Octopus', '5': 'Revolver Ocelot', '6': 'Liquid Snake' }\n}\n```\n\n```handlebars\nJoined array: {{join array \", \"}}\nJoined object: {{join object \", \"}}\n```\n\n```\nJoined array: Psycho Mantis, Sniper Wolf, Vulcan Raven, Decoy Octopus, Revolver Ocelot, Liquid Snake\nJoined object: Psycho Mantis, Sniper Wolf, Vulcan Raven, Decoy Octopus, Revolver Ocelot, Liquid Snake\n```\n\n\n## Date Helpers\n\n### Ago\n\nRender a human friendly string denoting how long ago the supplied date was.\n\n```javascript\n{\n\tnow: new Date,\n\tearlier: new Date + 1000 * 60 * 60 * 6,\n\tway_earlier: new Date + 1000 * 60 * 60 * 24 * 30\n}\n```\n\n```handlebars\nAgo for right now: {{ago now}}\nAgo for earlier: {{ago earlier}}\nAgo for way earlier: {{ago way_earlier}}\n```\n\n```\nAgo for right now: Just now\nAgo for earlier: 6 hours ago\nAgo for way earlier: 30 days ago\n```\n\n### formatDate\n\nRender a date or date-like value however you wanna. Uses [samsonjs/strftime](https://github.com/samsonjs/strftime) under the hood, so check out its documentation for [the list of format options](https://github.com/samsonjs/strftime#supported-specifiers).\n\nI should also add that this is using `strftimeTZ`, which allows us to **specify an offset from GMT in minutes**. This is especially useful when using Handlebars Helper server side, as the server will likely use an arbitrary time zone by default. \n\n```javascript\n{\n\tdates: [\n\t\t'2013-09-30T15:00:00.340Z',\n\t\t'2013/09/30 15:00:00 +0000',\n\t\t'Mon Sep 30 2013 15:00:00 GMT-0700 (PDT)',\n\t\t1380578400000\n\t]\n}\n```\n\n```handlebars\n{{formatDate dates[0] \"%A, %B %o %Y\"}}\n{{formatDate dates[1] \"%b. %o %Y\"}}\n{{formatDate dates[2] \"%A at %-l:%M%p\" 0 }}\n{{formatDate dates[2] \"%A at %-l:%M%p\" -120 }}\n{{formatDate dates[3] \"%v\"}}\n```\n\n```\nMonday, September 30th 2013\nSep. 30th 2013\nMonday at 10:00PM\nMonday at 8:00PM\n30-Sep-2013\n```\n\n## Equality Helpers\n\n### Equal\n\nRender one thing if both variables are equal. Render another thing if they're not. If you specify \"exact\", the comparison will be done with `===`, which checks for equality AND type.\n\n```javascript\n{ \n\tone: 1,\n\tone_string: '1',\n\ttwo: 2\n}\n```\n\n```handlebars\n1 and 1 are equal: {{#equal one one}}Yup.{{else}}Nope.{{/equal}}\n1 and '1' are equal: {{#equal one one_string}}Yup.{{else}}Nope.{{/equal}}\n1 and 2 are equal: {{#equal one two}}Yup.{{else}}Nope.{{/equal}}\n1 and 1 are exactly equal: {{#equal one one \"exact\"}}Yup.{{else}}Nope.{{/equal}}\n1 and '1' are exactly equal: {{#equal one one_string \"exact\"}}Yup.{{else}}Nope.{{/equal}}\n1 and 2 are not equal: {{^equal one two}}Yup.{{else}}Nope.{{/equal}}\n```\n\n```\n1 and 1 are equal: Yup.\n1 and '1' are equal: Yup.\n1 and 2 are equal: Nope.\n1 and 1 are exactly equal: Yup.\n1 and '1' are exactly equal: Nope.\n1 and 2 are not equal: Yup.\n```\n\n### Greater\n\nRender one thing if the first item is greater than the second. Render another thing if it isn't. If you specify \"equal\", the comparison will be greater than **and equal to**.\n\n```javascript\n{ \n\tone: 1,\n\ttwo: 2\n}\n```\n\n```handlebars\n2 is greater than 1: {{#greater two one}}Yup.{{else}}Nope.{{/greater}}\n1 is greater than 2: {{#greater one two}}Yup.{{else}}Nope.{{/greater}}\n2 is greater than 2: {{#greater two two}}Yup.{{else}}Nope.{{/greater}}\n2 is greater than or equal to 1: {{#greater two one \"equal\"}}Yup.{{else}}Nope.{{/greater}}\n2 is greater than or equal to 2: {{#greater two two \"equal\"}}Yup.{{else}}Nope.{{/greater}}\n1 is not greater than 2: {{^greater one two}}Yup.{{else}}Nope.{{/greater}}\n2 is not greater than 2: {{^greater two two}}Yup.{{else}}Nope.{{/greater}}\n```\n\n```\n2 is greater than 1: Yup.\n1 is greater than 2: Nope.\n2 is greater than 2: Nope.\n2 is greater than or equal to 1: Yup.\n2 is greater than or equal to 2: Yup.\n1 is not greater than 2: Yup.\n2 is not greater than 2: Yup.\n```\n\n### Less\n\nRender one thing if the first item is less than the second. Render another thing if it isn't. If you specify \"equal\", the comparison will be less than **and equal to**.\n\n```javascript\n{ \n\tone: 1,\n\ttwo: 2\n}\n```\n\n```handlebars\n2 is less than 1: {{#less two one}}Yup.{{else}}Nope.{{/less}}\n1 is less than 2: {{#less one two}}Yup.{{else}}Nope.{{/less}}\n2 is less than 2: {{#less two two}}Yup.{{else}}Nope.{{/less}}\n1 is less than or equal to 2: {{#less one two \"equal\"}}Yup.{{else}}Nope.{{/less}}\n2 is less than or equal to 2: {{#less two two \"equal\"}}Yup.{{else}}Nope.{{/less}}\n2 is not less than 1: {{^less one two}}Yup.{{else}}Nope.{{/less}}\n2 is not less than 2: {{^less two two}}Yup.{{else}}Nope.{{/less}}\n```\n\n```\n2 is less than 1: Nope.\n1 is less than 2: Yup.\n2 is less than 2: Nope.\n1 is less than or equal to 2: Yup.\n2 is less than or equal to 2: Yup.\n2 is not less than 1: Yup.\n2 is not less than 2: Yup.\n```\n\n## Number Helpers\n\n### Times\n\nRender this block **x** times. If \"zero\" is specified, the count starts at `0` instead of `1`.\n\n```handlebars\nDo this 1 time: {{#times 1}}{{this}} {{/times}}\nDo this 5 times: {{#times 5}}{{this}} {{/times}}\nDo this 1 time, starting from 0: {{#times 1 \"zero\"}}{{this}} {{/times}}\nDo this 5 times, starting from 0: {{#times 5 \"zero\"}}{{this}} {{/times}}\n```\n\n```\nDo this 1 time: 1 \nDo this 5 times: 1 2 3 4 5 \nDo this 1 time, starting from 0: 0 \nDo this 5 times, starting from 0: 0 1 2 3 4 \n```\n\n### Add\n\nAdd numbers together. Anything that's not a number will be converted to a number, then added.\n\n```handlebars\n1 + 2 = {{add 1 2}}\n-1 + 2 = {{add -1 2}}\n\"1\" + 2 = {{add \"1\" 2}}\n1.5 + 1 = {{add 1.5 1}}\n1 + 2 + 3 = {{add 1 2 3}}\n```\n\n```\n1 + 2 = 3\n-1 + 2 = 1\n\"1\" + 2 = 3\n1.5 + 1 = 2.5\n1 + 2 + 3 = 6\n```\n\n### Subtract\n\nSubtract numbers from one another. Anything that's not a number will be converted to a number, then subtracted.\n\n```handlebars\n1 - 2 = {{subtract 1 2}}\n-1 - 2 = {{subtract -1 2}}\n\"1\" - 2 = {{subtract \"1\" 2}}\n1.5 - 1 = {{subtract 1.5 1}}\n1 - 2 - 3 = {{subtract 1 2 3}}\n```\n\n```\n1 - 2 = -1\n-1 - 2 = -3\n\"1\" - 2 = -1\n1.5 - 1 = 0.5\n1 - 2 - 3 = -4\n```\n\n### Multiply\n\nMultiply numbers. Anything that's not a number will be converted to a number, then multiplied.\n\n```handlebars\n2 * 2 = {{multiply 2 2}}\n-2 * 2 = {{multiply -2 2}}\n\"2\" * 2 = {{multiply \"2\" 2}}\n1.5 * 2 = {{multiply 1.5 2}}\n2 * 2 * 2 = {{multiply 2 2 2}}\n```\n\n```\n2 * 2 = 4\n-2 * 2 = -4\n\"2\" * 2 = 4\n1.5 * 2 = 3\n2 * 2 * 2 = 8\n```\n\n### Divide\n\nDivide numbers. Anything that's not a number will be converted to a number, then divided.\n\n```handlebars\n4 ÷ 2 = {{divide 4 2}}\n-4 ÷ 2 = {{divide -4 2}}\n\"4\" ÷ 2 = {{divide \"4\" 2}}\n3 ÷ 1.5 = {{divide 3 1.5}}\n8 ÷ 2 ÷ 2 = {{divide 8 2 2}}\n```\n\n```\n4 ÷ 2 = 2\n-4 ÷ 2 = -2\n\"4\" ÷ 2 = 2\n3 ÷ 1.5 = 2\n8 ÷ 2 ÷ 2 = 2\n```","maintainers":[{"email":"joannic@sparkart.com","name":"joanniclaborde"},{"email":"team@sparkart.com","name":"sparkartgroup"}],"time":{"modified":"2022-06-18T18:52:20.502Z","created":"2013-10-03T00:58:17.187Z","0.0.1":"2013-10-03T00:58:18.672Z","0.0.2":"2013-10-04T18:25:46.235Z","0.0.3":"2013-10-26T18:32:33.765Z","0.0.4":"2013-11-09T07:11:12.399Z","0.0.5":"2013-11-09T23:20:42.407Z","0.0.6":"2013-12-01T01:14:51.133Z","0.0.7":"2013-12-18T23:33:41.541Z","0.0.8":"2014-01-17T23:31:46.217Z","0.0.9":"2014-02-07T00:19:45.850Z","0.0.10":"2014-04-03T23:33:20.326Z","0.0.11":"2014-04-04T00:13:07.034Z","0.0.12":"2014-08-16T01:05:12.203Z"},"author":{"name":"Timothy Kempf","email":"tim@sparkart.com","url":"http://sparkart.com"},"repository":{"type":"git","url":"https://github.com/SparkartGroupInc/handlebars-helpers.git"},"readmeFilename":"README.md","homepage":"https://github.com/SparkartGroupInc/handlebars-helpers","keywords":["Handlebars","helpers"],"bugs":{"url":"https://github.com/SparkartGroupInc/handlebars-helpers/issues"},"license":"MIT","users":{"tinyhill":true,"piotrlewandowski":true}}