diff options
Diffstat (limited to 'lib/helpers.js')
| -rw-r--r-- | lib/helpers.js | 294 |
1 files changed, 159 insertions, 135 deletions
diff --git a/lib/helpers.js b/lib/helpers.js index 99a02e27..ec8e1573 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -1,141 +1,134 @@ -var faker = require('../index'); +var Helpers = function (faker) { -// backword-compatibility -exports.randomNumber = function (range) { - return faker.random.number(range); -}; - -// backword-compatibility -exports.randomize = function (array) { - array = array || ["a", "b", "c"]; - return faker.random.array_element(array); -}; + var self = this; -// slugifies string -exports.slugify = function (string) { - string = string || ""; - return string.replace(/ /g, '-').replace(/[^\w\.\-]+/g, ''); -}; + // backword-compatibility + self.randomize = function (array) { + array = array || ["a", "b", "c"]; + return faker.random.arrayElement(array); + }; -// parses string for a symbol and replace it with a random number from 1-10 -exports.replaceSymbolWithNumber = function (string, symbol) { - string = string || ""; - // default symbol is '#' - if (symbol === undefined) { - symbol = '#'; - } + // slugifies string + self.slugify = function (string) { + string = string || ""; + return string.replace(/ /g, '-').replace(/[^\w\.\-]+/g, ''); + }; - var str = ''; - for (var i = 0; i < string.length; i++) { - if (string.charAt(i) == symbol) { - str += faker.random.number(9); - } else { - str += string.charAt(i); - } - } - return str; -}; + // parses string for a symbol and replace it with a random number from 1-10 + self.replaceSymbolWithNumber = function (string, symbol) { + string = string || ""; + // default symbol is '#' + if (symbol === undefined) { + symbol = '#'; + } -// takes an array and returns it randomized -exports.shuffle = function (o) { - o = o || ["a", "b", "c"]; - for (var j, x, i = o.length; i; j = faker.random.number(i), x = o[--i], o[i] = o[j], o[j] = x); - return o; -}; + var str = ''; + for (var i = 0; i < string.length; i++) { + if (string.charAt(i) == symbol) { + str += faker.random.number(9); + } else { + str += string.charAt(i); + } + } + return str; + }; -exports.mustache = function (str, data) { - for(var p in data) { - var re = new RegExp('{{' + p + '}}', 'g') - str = str.replace(re, data[p]); - } - return str; -}; + // parses string for symbols (numbers or letters) and replaces them appropriately + self.replaceSymbols = function (string) { + string = string || ""; + var alpha = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] + var str = ''; -exports.createCard = function () { - return { - "name": faker.name.findName(), - "username": faker.internet.userName(), - "email": faker.internet.email(), - "address": { - "streetA": faker.address.streetName(), - "streetB": faker.address.streetAddress(), - "streetC": faker.address.streetAddress(true), - "streetD": faker.address.secondaryAddress(), - "city": faker.address.city(), - "state": faker.address.state(), - "country": faker.address.country(), - "zipcode": faker.address.zipCode(), - "geo": { - "lat": faker.address.latitude(), - "lng": faker.address.longitude() - } - }, - "phone": faker.phone.phoneNumber(), - "website": faker.internet.domainName(), - "company": { - "name": faker.company.companyName(), - "catchPhrase": faker.company.catchPhrase(), - "bs": faker.company.bs() - }, - "posts": [ - { - "words": faker.lorem.words(), - "sentence": faker.lorem.sentence(), - "sentences": faker.lorem.sentences(), - "paragraph": faker.lorem.paragraph() - }, - { - "words": faker.lorem.words(), - "sentence": faker.lorem.sentence(), - "sentences": faker.lorem.sentences(), - "paragraph": faker.lorem.paragraph() - }, - { - "words": faker.lorem.words(), - "sentence": faker.lorem.sentence(), - "sentences": faker.lorem.sentences(), - "paragraph": faker.lorem.paragraph() - } - ], - "accountHistory": [faker.helpers.createTransaction(), faker.helpers.createTransaction(), faker.helpers.createTransaction()] - }; -}; - -exports.contextualCard = function () { - var name = faker.name.firstName(), - userName = faker.internet.userName(name); - return { - "name": name, - "username": userName, - "avatar": faker.internet.avatar(), - "email": faker.internet.email(userName), - "dob": faker.date.past(50, new Date("Sat Sep 20 1992 21:35:02 GMT+0200 (CEST)")), - "phone": faker.phone.phoneNumber(), - "address": { - "street": faker.address.streetName(true), - "suite": faker.address.secondaryAddress(), - "city": faker.address.city(), - "zipcode": faker.address.zipCode(), - "geo": { - "lat": faker.address.latitude(), - "lng": faker.address.longitude() + for (var i = 0; i < string.length; i++) { + if (string.charAt(i) == "#") { + str += faker.random.number(9); + } else if (string.charAt(i) == "?") { + str += alpha[Math.floor(Math.random() * alpha.length)]; + } else { + str += string.charAt(i); } - }, - "website": faker.internet.domainName(), - "company": { - "name": faker.company.companyName(), - "catchPhrase": faker.company.catchPhrase(), - "bs": faker.company.bs() } + return str; + }; + + // takes an array and returns it randomized + self.shuffle = function (o) { + o = o || ["a", "b", "c"]; + for (var j, x, i = o.length-1; i; j = faker.random.number(i), x = o[--i], o[i] = o[j], o[j] = x); + return o; + }; + + self.mustache = function (str, data) { + if (typeof str === 'undefined') { + return ''; + } + for(var p in data) { + var re = new RegExp('{{' + p + '}}', 'g') + str = str.replace(re, data[p]); + } + return str; }; -}; + self.createCard = function () { + return { + "name": faker.name.findName(), + "username": faker.internet.userName(), + "email": faker.internet.email(), + "address": { + "streetA": faker.address.streetName(), + "streetB": faker.address.streetAddress(), + "streetC": faker.address.streetAddress(true), + "streetD": faker.address.secondaryAddress(), + "city": faker.address.city(), + "state": faker.address.state(), + "country": faker.address.country(), + "zipcode": faker.address.zipCode(), + "geo": { + "lat": faker.address.latitude(), + "lng": faker.address.longitude() + } + }, + "phone": faker.phone.phoneNumber(), + "website": faker.internet.domainName(), + "company": { + "name": faker.company.companyName(), + "catchPhrase": faker.company.catchPhrase(), + "bs": faker.company.bs() + }, + "posts": [ + { + "words": faker.lorem.words(), + "sentence": faker.lorem.sentence(), + "sentences": faker.lorem.sentences(), + "paragraph": faker.lorem.paragraph() + }, + { + "words": faker.lorem.words(), + "sentence": faker.lorem.sentence(), + "sentences": faker.lorem.sentences(), + "paragraph": faker.lorem.paragraph() + }, + { + "words": faker.lorem.words(), + "sentence": faker.lorem.sentence(), + "sentences": faker.lorem.sentences(), + "paragraph": faker.lorem.paragraph() + } + ], + "accountHistory": [faker.helpers.createTransaction(), faker.helpers.createTransaction(), faker.helpers.createTransaction()] + }; + }; -exports.userCard = function () { + self.contextualCard = function () { + var name = faker.name.firstName(), + userName = faker.internet.userName(name); return { - "name": faker.name.findName(), - "username": faker.internet.userName(), - "email": faker.internet.email(), + "name": name, + "username": userName, + "avatar": faker.internet.avatar(), + "email": faker.internet.email(userName), + "dob": faker.date.past(50, new Date("Sat Sep 20 1992 21:35:02 GMT+0200 (CEST)")), + "phone": faker.phone.phoneNumber(), "address": { "street": faker.address.streetName(true), "suite": faker.address.secondaryAddress(), @@ -146,7 +139,6 @@ exports.userCard = function () { "lng": faker.address.longitude() } }, - "phone": faker.phone.phoneNumber(), "website": faker.internet.domainName(), "company": { "name": faker.company.companyName(), @@ -154,19 +146,50 @@ exports.userCard = function () { "bs": faker.company.bs() } }; -}; + }; -exports.createTransaction = function(){ - return { - "amount" : faker.finance.amount(), - "date" : new Date(2012, 1, 2), //TODO: add a ranged date method - "business": faker.company.companyName(), - "name": [faker.finance.accountName(), faker.finance.mask()].join(' '), - "type" : exports.randomize(faker.definitions.finance.transaction_type), - "account" : faker.finance.account() + + self.userCard = function () { + return { + "name": faker.name.findName(), + "username": faker.internet.userName(), + "email": faker.internet.email(), + "address": { + "street": faker.address.streetName(true), + "suite": faker.address.secondaryAddress(), + "city": faker.address.city(), + "zipcode": faker.address.zipCode(), + "geo": { + "lat": faker.address.latitude(), + "lng": faker.address.longitude() + } + }, + "phone": faker.phone.phoneNumber(), + "website": faker.internet.domainName(), + "company": { + "name": faker.company.companyName(), + "catchPhrase": faker.company.catchPhrase(), + "bs": faker.company.bs() + } + }; }; + + self.createTransaction = function(){ + return { + "amount" : faker.finance.amount(), + "date" : new Date(2012, 1, 2), //TODO: add a ranged date method + "business": faker.company.companyName(), + "name": [faker.finance.accountName(), faker.finance.mask()].join(' '), + "type" : self.randomize(faker.definitions.finance.transaction_type), + "account" : faker.finance.account() + }; + }; + + return self; + }; + /* String.prototype.capitalize = function () { //v1.0 return this.replace(/\w+/g, function (a) { @@ -175,3 +198,4 @@ String.prototype.capitalize = function () { //v1.0 }; */ +module['exports'] = Helpers;
\ No newline at end of file |
