diff options
| author | Marak <[email protected]> | 2015-07-08 14:34:39 -0700 |
|---|---|---|
| committer | Marak <[email protected]> | 2015-07-08 14:34:39 -0700 |
| commit | e25e1ebc349c426c6b2598dc907eae497ef67160 (patch) | |
| tree | e40debbcbb1484c9c6391dd49e00558f5a4f944c | |
| parent | eaf5c65cfae0a6636555884c18e6c955fae7887e (diff) | |
| download | faker-e25e1ebc349c426c6b2598dc907eae497ef67160.tar.xz faker-e25e1ebc349c426c6b2598dc907eae497ef67160.zip | |
[refactor] [major] Adds incremental browser builds. Switch to using prototype for internal API. Previous usage of `module.parent` is not acceptable. Locale information is now passed into Faker constructor. Closes #125
51 files changed, 1144 insertions, 997 deletions
diff --git a/build/gulpfile.js b/build/gulpfile.js index 1990537b..9425b053 100644 --- a/build/gulpfile.js +++ b/build/gulpfile.js @@ -21,6 +21,7 @@ var browserify = require('browserify'); var transform = require('vinyl-transform'); var path = require('path'); var fs = require('fs'); +var through = require('through2') gulp.task('browser-package', function() { @@ -89,19 +90,57 @@ gulp.task('documentation', function(cb) { }); +var tasks = ['nodeLocalRequires', 'browser-package', 'documentation']; +// var tasks = []; + +var locales = require('../lib/locales'); +var localTasks = Object.keys(locales); + +/* task for generating unique browser builds for every locale */ +Object.keys(locales).forEach(function(locale, i) { + if (i > 0) { + // return; + } + tasks.push(locale + 'Task'); + gulp.task(locale + 'Task', function() { + + var browserified = transform(function(filename) { + // use browserify to create UMD stand-alone browser package + var b = browserify(filename, { + standalone: 'faker' + }); + return b.bundle(); + }); + process.chdir('../locale/'); + return gulp.src('./' + locale + '.js') + .pipe(browserified) + .pipe(rename('faker.' + locale + '.js')) + .pipe(gulp.dest('../build/build/locales/' + locale)) + .pipe(gulp.dest('../examples/browser/locales/' + locale + "/")) + .pipe(rename({ extname: ".min.js" })) + .pipe(uglify()) + .pipe(gulp.dest('../build/build/locales/' + locale)) + .pipe(gulp.dest('../examples/browser/locales/' + locale + '/')) + .pipe(rename('../examples/browser/locales/' + locale + '/' + 'faker.' + locale + 'min.js')); + + }); +}); + gulp.task('nodeLocalRequires', function (cb){ var locales = require('../lib/locales'); for (var locale in locales) { var localeFile = path.normalize(__dirname + "/../locale/" + locale + ".js"); var localeRequire = ''; - localeRequire += "var faker = require('../lib');\n"; - localeRequire += 'faker.locale = "' + locale + '";\n'; + localeRequire += "var Faker = require('../lib');\n"; + localeRequire += "var faker = new Faker({ locale: '" + locale + "', localeFallback: 'en' });\n"; + // TODO: better fallback support localeRequire += "faker.locales['" + locale + "'] = require('../lib/locales/" + locale + "');\n"; + localeRequire += "faker.locales['" + 'en' + "'] = require('../lib/locales/" + 'en' + "');\n"; localeRequire += "module['exports'] = faker;\n"; - console.log(localeRequire); fs.writeFileSync(localeFile, localeRequire); } cb(); }); -gulp.task('default', ['nodeLocalRequires', 'browser-package', 'documentation']); + +gulp.task('default', tasks); @@ -1,4 +1,4 @@ -module['exports'] = require('./lib'); - // since we are requiring the top level of faker, load all locales by default -module['exports'].locales = require('./lib/locales'); +var Faker = require('./lib'); +var faker = new Faker({ locales: require('./lib/locales') }); +module['exports'] = faker;
\ No newline at end of file diff --git a/lib/address.js b/lib/address.js index 9821264a..d53e0ef8 100644 --- a/lib/address.js +++ b/lib/address.js @@ -1,122 +1,124 @@ -var Helpers = require('./helpers'); -var faker = require('./index'), -f = faker.fake; - -var address = { - zipCode: function (format) { - // if zip format is not specified, use the zip format defined for the locale - if (typeof format === 'undefined') { - var localeFormat = faker.definitions.address.zipFormat; - if (typeof localeFormat === 'string') { - format = localeFormat; - } else { - format = faker.random.array_element(localeFormat); - } +function Address (faker) { + var f = faker.fake, + Helpers = faker.helpers; + + this.zipCode = function (format) { + // if zip format is not specified, use the zip format defined for the locale + if (typeof format === 'undefined') { + var localeFormat = faker.definitions.address.zipFormat; + if (typeof localeFormat === 'string') { + format = localeFormat; + } else { + format = faker.random.array_element(localeFormat); } - return Helpers.replaceSymbols(format); - }, - - city: function (format) { - var formats = [ - '{{address.cityPrefix}} {{name.firstName}} {{address.citySuffix}}', - '{{address.cityPrefix}} {{name.firstName}}', - '{{name.firstName}} {{address.citySuffix}}', - '{{name.lastName}} {{address.citySuffix}}' - ]; - - if (typeof format !== "number") { - format = faker.random.number(formats.length - 1); - } - - return f(formats[format]); - - }, - - cityPrefix: function () { - return faker.random.array_element(faker.definitions.address.city_prefix); - }, - - citySuffix: function () { - return faker.random.array_element(faker.definitions.address.city_suffix); - }, - - streetName: function () { - var result; - switch (faker.random.number(1)) { - case 0: - result = faker.name.lastName() + " " + faker.address.streetSuffix(); - break; - case 1: - result = faker.name.firstName() + " " + faker.address.streetSuffix(); - break; - } - return result; - }, - - // - // TODO: change all these methods that accept a boolean to instead accept an options hash. - // - streetAddress: function (useFullAddress) { - if (useFullAddress === undefined) { useFullAddress = false; } - var address = ""; - switch (faker.random.number(2)) { - case 0: - address = Helpers.replaceSymbolWithNumber("#####") + " " + faker.address.streetName(); - break; - case 1: - address = Helpers.replaceSymbolWithNumber("####") + " " + faker.address.streetName(); - break; - case 2: - address = Helpers.replaceSymbolWithNumber("###") + " " + faker.address.streetName(); - break; - } - return useFullAddress ? (address + " " + faker.address.secondaryAddress()) : address; - }, - - streetSuffix: function () { - return faker.random.array_element(faker.definitions.address.street_suffix); - }, - - streetPrefix: function () { - return faker.random.array_element(faker.definitions.address.street_prefix); - }, - - secondaryAddress: function () { - return Helpers.replaceSymbolWithNumber(faker.random.array_element( - [ - 'Apt. ###', - 'Suite ###' - ] - )); - }, - - county: function () { - return faker.random.array_element(faker.definitions.address.county); - }, - - country: function () { - return faker.random.array_element(faker.definitions.address.country); - }, - - countryCode: function () { - return faker.random.array_element(faker.definitions.address.country_code); - }, - - state: function (useAbbr) { - return faker.random.array_element(faker.definitions.address.state); - }, - - stateAbbr: function () { - return faker.random.array_element(faker.definitions.address.state_abbr); - }, - - latitude: function () { - return (faker.random.number(180 * 10000) / 10000.0 - 90.0).toFixed(4); - }, - - longitude: function () { - return (faker.random.number(360 * 10000) / 10000.0 - 180.0).toFixed(4); + } + return Helpers.replaceSymbols(format); + } + + this.city = function (format) { + var formats = [ + '{{address.cityPrefix}} {{name.firstName}} {{address.citySuffix}}', + '{{address.cityPrefix}} {{name.firstName}}', + '{{name.firstName}} {{address.citySuffix}}', + '{{name.lastName}} {{address.citySuffix}}' + ]; + + if (typeof format !== "number") { + format = faker.random.number(formats.length - 1); } -}; -module.exports = address; + return f(formats[format]); + + } + + this.cityPrefix = function () { + return faker.random.array_element(faker.definitions.address.city_prefix); + } + + this.citySuffix = function () { + return faker.random.array_element(faker.definitions.address.city_suffix); + } + + this.streetName = function () { + var result; + switch (faker.random.number(1)) { + case 0: + result = faker.name.lastName() + " " + faker.address.streetSuffix(); + break; + case 1: + result = faker.name.firstName() + " " + faker.address.streetSuffix(); + break; + } + return result; + } + + // + // TODO: change all these methods that accept a boolean to instead accept an options hash. + // + this.streetAddress = function (useFullAddress) { + if (useFullAddress === undefined) { useFullAddress = false; } + var address = ""; + switch (faker.random.number(2)) { + case 0: + address = Helpers.replaceSymbolWithNumber("#####") + " " + faker.address.streetName(); + break; + case 1: + address = Helpers.replaceSymbolWithNumber("####") + " " + faker.address.streetName(); + break; + case 2: + address = Helpers.replaceSymbolWithNumber("###") + " " + faker.address.streetName(); + break; + } + return useFullAddress ? (address + " " + faker.address.secondaryAddress()) : address; + } + + this.streetSuffix = function () { + return faker.random.array_element(faker.definitions.address.street_suffix); + } + + this.streetPrefix = function () { + return faker.random.array_element(faker.definitions.address.street_prefix); + } + + this.secondaryAddress = function () { + return Helpers.replaceSymbolWithNumber(faker.random.array_element( + [ + 'Apt. ###', + 'Suite ###' + ] + )); + } + + this.county = function () { + return faker.random.array_element(faker.definitions.address.county); + } + + this.country = function () { + return faker.random.array_element(faker.definitions.address.country); + } + + this.countryCode = function () { + return faker.random.array_element(faker.definitions.address.country_code); + } + + this.state = function (useAbbr) { + return faker.random.array_element(faker.definitions.address.state); + } + + this.stateAbbr = function () { + return faker.random.array_element(faker.definitions.address.state_abbr); + } + + this.latitude = function () { + return (faker.random.number(180 * 10000) / 10000.0 - 90.0).toFixed(4); + } + + this.longitude = function () { + return (faker.random.number(360 * 10000) / 10000.0 - 180.0).toFixed(4); + } + + return this; +} + + +module.exports = Address; diff --git a/lib/company.js b/lib/company.js index 9bcd7881..d0f74357 100644 --- a/lib/company.js +++ b/lib/company.js @@ -1,64 +1,64 @@ -var faker = require('./index'), -f = faker.fake; - -var company = { - - suffixes: function () { - // Don't want the source array exposed to modification, so return a copy - return faker.definitions.company.suffix.slice(0); - }, - - companyName: function (format) { - - var formats = [ - '{{name.lastName}} {{company.companySuffix}}', - '{{name.lastName}} - {{name.lastName}}', - '{{name.lastName}}, {{name.lastName}} and {{name.lastName}}' - ]; - - if (typeof format !== "number") { - format = faker.random.number(formats.length - 1); - } - - return f(formats[format]); - }, +var Company = function (faker) { + + var self = this; + var f = faker.fake; + + this.suffixes = function () { + // Don't want the source array exposed to modification, so return a copy + return faker.definitions.company.suffix.slice(0); + } + + this.companyName = function (format) { + + var formats = [ + '{{name.lastName}} {{company.companySuffix}}', + '{{name.lastName}} - {{name.lastName}}', + '{{name.lastName}}, {{name.lastName}} and {{name.lastName}}' + ]; + + if (typeof format !== "number") { + format = faker.random.number(formats.length - 1); + } - companySuffix: function () { - return faker.random.array_element(faker.company.suffixes()); - }, + return f(formats[format]); + } - catchPhrase: function () { - return f('{{company.catchPhraseAdjective}} {{company.catchPhraseDescriptor}} {{company.catchPhraseNoun}}') - }, + this.companySuffix = function () { + return faker.random.array_element(faker.company.suffixes()); + } - bs: function () { - return f('{{company.bsAdjective}} {{company.bsBuzz}} {{company.bsNoun}}'); - }, + this.catchPhrase = function () { + return f('{{company.catchPhraseAdjective}} {{company.catchPhraseDescriptor}} {{company.catchPhraseNoun}}') + } - catchPhraseAdjective: function () { - return faker.random.array_element(faker.definitions.company.adjective); - }, + this.bs = function () { + return f('{{company.bsAdjective}} {{company.bsBuzz}} {{company.bsNoun}}'); + } - catchPhraseDescriptor: function () { - return faker.random.array_element(faker.definitions.company.descriptor); - }, + this.catchPhraseAdjective = function () { + return faker.random.array_element(faker.definitions.company.adjective); + } - catchPhraseNoun: function () { - return faker.random.array_element(faker.definitions.company.noun); - }, + this.catchPhraseDescriptor = function () { + return faker.random.array_element(faker.definitions.company.descriptor); + } - bsAdjective: function () { - return faker.random.array_element(faker.definitions.company.bs_adjective); - }, + this.catchPhraseNoun = function () { + return faker.random.array_element(faker.definitions.company.noun); + } - bsBuzz: function () { - return faker.random.array_element(faker.definitions.company.bs_verb); - }, + this.bsAdjective = function () { + return faker.random.array_element(faker.definitions.company.bs_adjective); + } - bsNoun: function () { - return faker.random.array_element(faker.definitions.company.bs_noun); - } + this.bsBuzz = function () { + return faker.random.array_element(faker.definitions.company.bs_verb); + } -}; + this.bsNoun = function () { + return faker.random.array_element(faker.definitions.company.bs_noun); + } + +} -module.exports = company; +module['exports'] = Company;
\ No newline at end of file diff --git a/lib/date.js b/lib/date.js index d3a58eb4..e868580d 100644 --- a/lib/date.js +++ b/lib/date.js @@ -1,56 +1,58 @@ -var faker = require("./index"); - -var date = { - - past: function (years, refDate) { - var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); - var range = { - min: 1000, - max: (years || 1) * 365 * 24 * 3600 * 1000 - }; - - var past = date.getTime(); - past -= faker.random.number(range); // some time from now to N years ago, in milliseconds - date.setTime(past); - - return date; - }, - - future: function (years, refDate) { - var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); - var range = { - min: 1000, - max: (years || 1) * 365 * 24 * 3600 * 1000 - }; - - var future = date.getTime(); - future += faker.random.number(range); // some time from now to N years later, in milliseconds - date.setTime(future); - - return date; - }, - - between: function (from, to) { - var fromMilli = Date.parse(from); - var dateOffset = faker.random.number(Date.parse(to) - fromMilli); - - var newDate = new Date(fromMilli + dateOffset); - - return newDate; - }, - - recent: function (days) { - var date = new Date(); - var range = { - min: 1000, - max: (days || 1) * 24 * 3600 * 1000 - }; - - var future = date.getTime(); - future -= faker.random.number(range); // some time from now to N days ago, in milliseconds - date.setTime(future); - - return date; - } +var _Date = function (faker) { + var self = this; + self.past = function (years, refDate) { + var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); + var range = { + min: 1000, + max: (years || 1) * 365 * 24 * 3600 * 1000 + }; + + var past = date.getTime(); + past -= faker.random.number(range); // some time from now to N years ago, in milliseconds + date.setTime(past); + + return date; + }; + + self.future = function (years, refDate) { + var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); + var range = { + min: 1000, + max: (years || 1) * 365 * 24 * 3600 * 1000 + }; + + var future = date.getTime(); + future += faker.random.number(range); // some time from now to N years later, in milliseconds + date.setTime(future); + + return date; + }; + + self.between = function (from, to) { + var fromMilli = Date.parse(from); + var dateOffset = faker.random.number(Date.parse(to) - fromMilli); + + var newDate = new Date(fromMilli + dateOffset); + + return newDate; + }; + + self.recent = function (days) { + var date = new Date(); + var range = { + min: 1000, + max: (days || 1) * 24 * 3600 * 1000 + }; + + var future = date.getTime(); + future -= faker.random.number(range); // some time from now to N days ago, in milliseconds + date.setTime(future); + + return date; + } + + return self; + }; -module.exports = date; + +module['exports'] = _Date;
\ No newline at end of file diff --git a/lib/fake.js b/lib/fake.js index 327e3de9..c2e43aa4 100644 --- a/lib/fake.js +++ b/lib/fake.js @@ -3,55 +3,61 @@ */ -var faker = require('./'); +function Fake (faker) { + + this.fake = function fake (str) { + // setup default response as empty string + var res = ''; -module['exports'] = function fake (str) { + // if incoming str parameter is not provided, return error message + if (typeof str !== 'string' || str.length === 0) { + res = 'string parameter is required!'; + return res; + } - // setup default response as empty string - var res = ''; - - // if incoming str parameter is not provided, return error message - if (typeof str !== 'string' || str.length === 0) { - res = 'string parameter is required!'; - return res; - } + // find first matching {{ and }} + var start = str.search('{{'); + var end = str.search('}}'); - // find first matching {{ and }} - var start = str.search('{{'); - var end = str.search('}}'); - - // if no {{ and }} is found, we are done - if (start === -1 && end === -1) { - return str; - } + // if no {{ and }} is found, we are done + if (start === -1 && end === -1) { + return str; + } - // console.log('attempting to parse', str); + // console.log('attempting to parse', str); - // extract method name from between the {{ }} that we found - // for example: {{name.firstName}} - var method = str.substr(start + 2, end - start - 2); - method = method.replace('}}', ''); - method = method.replace('{{', ''); + // extract method name from between the {{ }} that we found + // for example: {{name.firstName}} + var method = str.substr(start + 2, end - start - 2); + method = method.replace('}}', ''); + method = method.replace('{{', ''); - // console.log('method', method) + // console.log('method', method) - // split the method into module and function - var parts = method.split('.'); - - if (typeof faker[parts[0]] === "undefined") { - throw new Error('Invalid module: ' + parts[0]); - } + // split the method into module and function + var parts = method.split('.'); - if (typeof faker[parts[0]][parts[1]] === "undefined") { - throw new Error('Invalid method: ' + parts[0] + "." + parts[1]); - } + if (typeof faker[parts[0]] === "undefined") { + throw new Error('Invalid module: ' + parts[0]); + } + + if (typeof faker[parts[0]][parts[1]] === "undefined") { + throw new Error('Invalid method: ' + parts[0] + "." + parts[1]); + } + + // assign the function from the module.function namespace + var fn = faker[parts[0]][parts[1]]; + + // replace the found tag with the returned fake value + res = str.replace('{{' + method + '}}', fn()); - // assign the function from the module.function namespace - var fn = faker[parts[0]][parts[1]]; + // return the response recursively until we are done finding all tags + return fake(res); + } + + return this; + - // replace the found tag with the returned fake value - res = str.replace('{{' + method + '}}', fn()); +} - // return the response recursively until we are done finding all tags - return fake(res); -};
\ No newline at end of file +module['exports'] = Fake;
\ No newline at end of file diff --git a/lib/finance.js b/lib/finance.js index 65703562..89f5e285 100644 --- a/lib/finance.js +++ b/lib/finance.js @@ -1,87 +1,86 @@ -var Helpers = require('./helpers'), - faker = require('./index'); +var Finance = function (faker) { + var Helpers = faker.helpers, + self = this; -var finance = { + self.account = function (length) { - account: function (length) { + length = length || 8; - length = length || 8; + var template = ''; - var template = ''; + for (var i = 0; i < length; i++) { + template = template + '#'; + } + length = null; + return Helpers.replaceSymbolWithNumber(template); + } - for (var i = 0; i < length; i++) { - template = template + '#'; - } - length = null; - return Helpers.replaceSymbolWithNumber(template); - }, + self.accountName = function () { - accountName: function () { + return [Helpers.randomize(faker.definitions.finance.account_type), 'Account'].join(' '); + } - return [Helpers.randomize(faker.definitions.finance.account_type), 'Account'].join(' '); - }, + self.mask = function (length, parens, elipsis) { - mask: function (length, parens, elipsis) { + //set defaults + length = (length == 0 || !length || typeof length == 'undefined') ? 4 : length; + parens = (parens === null) ? true : parens; + elipsis = (elipsis === null) ? true : elipsis; - //set defaults - length = (length == 0 || !length || typeof length == 'undefined') ? 4 : length; - parens = (parens === null) ? true : parens; - elipsis = (elipsis === null) ? true : elipsis; + //create a template for length + var template = ''; - //create a template for length - var template = ''; + for (var i = 0; i < length; i++) { + template = template + '#'; + } - for (var i = 0; i < length; i++) { - template = template + '#'; - } + //prefix with elipsis + template = (elipsis) ? ['...', template].join('') : template; - //prefix with elipsis - template = (elipsis) ? ['...', template].join('') : template; + template = (parens) ? ['(', template, ')'].join('') : template; - template = (parens) ? ['(', template, ')'].join('') : template; + //generate random numbers + template = Helpers.replaceSymbolWithNumber(template); - //generate random numbers - template = Helpers.replaceSymbolWithNumber(template); + return template; - return template; + } - }, + //min and max take in minimum and maximum amounts, dec is the decimal place you want rounded to, symbol is $, €, £, etc + //NOTE: this returns a string representation of the value, if you want a number use parseFloat and no symbol - //min and max take in minimum and maximum amounts, dec is the decimal place you want rounded to, symbol is $, €, £, etc - //NOTE: this returns a string representation of the value, if you want a number use parseFloat and no symbol + self.amount = function (min, max, dec, symbol) { - amount: function (min, max, dec, symbol) { + min = min || 0; + max = max || 1000; + dec = dec || 2; + symbol = symbol || ''; - min = min || 0; - max = max || 1000; - dec = dec || 2; - symbol = symbol || ''; + return symbol + (Math.round((Math.random() * (max - min) + min) * Math.pow(10, dec)) / Math.pow(10, dec)).toFixed(dec); - return symbol + (Math.round((Math.random() * (max - min) + min) * Math.pow(10, dec)) / Math.pow(10, dec)).toFixed(dec); + } - }, + self.transactionType = function () { + return Helpers.randomize(faker.definitions.finance.transaction_type); + } - transactionType: function () { - return Helpers.randomize(faker.definitions.finance.transaction_type); - }, + self.currencyCode = function () { + return faker.random.object_element(faker.definitions.finance.currency)['code']; + } - currencyCode: function () { - return faker.random.object_element(faker.definitions.finance.currency)['code']; - }, + self.currencyName = function () { + return faker.random.object_element(faker.definitions.finance.currency, 'key'); + } - currencyName: function () { - return faker.random.object_element(faker.definitions.finance.currency, 'key'); - }, + self.currencySymbol = function () { + var symbol; - currencySymbol: function () { - var symbol; + while (!symbol) { + symbol = faker.random.object_element(faker.definitions.finance.currency)['symbol']; + } + return symbol; + } +} - while (!symbol) { - symbol = faker.random.object_element(faker.definitions.finance.currency)['symbol']; - } - return symbol; - } -}; - -module.exports = finance;
\ No newline at end of file +module['exports'] = Finance;
\ No newline at end of file diff --git a/lib/hacker.js b/lib/hacker.js index e67eba8e..7aba150e 100644 --- a/lib/hacker.js +++ b/lib/hacker.js @@ -1,35 +1,34 @@ -var faker = require('./index'); - -var hacker = { - - abbreviation : function () { +var Hacker = function (faker) { + var self = this; + + self.abbreviation = function () { return faker.random.array_element(faker.definitions.hacker.abbreviation); - }, + }; - adjective : function () { + self.adjective = function () { return faker.random.array_element(faker.definitions.hacker.adjective); - }, + }; - noun : function () { + self.noun = function () { return faker.random.array_element(faker.definitions.hacker.noun); - }, + }; - verb : function () { + self.verb = function () { return faker.random.array_element(faker.definitions.hacker.verb); - }, + }; - ingverb : function () { + self.ingverb = function () { return faker.random.array_element(faker.definitions.hacker.ingverb); - }, + }; - phrase : function () { + self.phrase = function () { var data = { - abbreviation: hacker.abbreviation(), - adjective: hacker.adjective(), - ingverb: hacker.ingverb(), - noun: hacker.noun(), - verb: hacker.verb() + abbreviation: self.abbreviation(), + adjective: self.adjective(), + ingverb: self.ingverb(), + noun: self.noun(), + verb: self.verb() }; var phrase = faker.random.array_element([ "If we {{verb}} the {{noun}}, we can get to the {{abbreviation}} {{noun}} through the {{adjective}} {{abbreviation}} {{noun}}!", @@ -44,9 +43,9 @@ var hacker = { return faker.helpers.mustache(phrase, data); - }, - - + }; + + return self; }; -module.exports = hacker; +module['exports'] = Hacker;
\ No newline at end of file diff --git a/lib/helpers.js b/lib/helpers.js index 82d36603..d59cd241 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -1,190 +1,197 @@ -var faker = require('./index'); +var Helpers = function (faker) { + + var self = this; + + // backword-compatibility + self.randomNumber = function (range) { + return faker.random.number(range); + }; -// backword-compatibility -exports.randomNumber = function (range) { - return faker.random.number(range); -}; + // backword-compatibility + self.randomize = function (array) { + array = array || ["a", "b", "c"]; + return faker.random.array_element(array); + }; -// backword-compatibility -exports.randomize = function (array) { - array = array || ["a", "b", "c"]; - return faker.random.array_element(array); -}; + // slugifies string + self.slugify = function (string) { + string = string || ""; + return string.replace(/ /g, '-').replace(/[^\w\.\-]+/g, ''); + }; -// slugifies string -exports.slugify = function (string) { - string = string || ""; - return string.replace(/ /g, '-').replace(/[^\w\.\-]+/g, ''); -}; + // 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 = '#'; + } -// 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 = '#'; - } + 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; + }; - 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 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 = ''; -// parses string for symbols (numbers or letters) and replaces them appropriately -exports.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 = ''; - - 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); - } + 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); + } + } + 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) { + for(var p in data) { + var re = new RegExp('{{' + p + '}}', 'g') + str = str.replace(re, data[p]); } return str; -}; - -// takes an array and returns it randomized -exports.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; -}; + }; -exports.mustache = function (str, data) { - 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.createCard = 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": { - "streetA": faker.address.streetName(), - "streetB": faker.address.streetAddress(), - "streetC": faker.address.streetAddress(true), - "streetD": faker.address.secondaryAddress(), + "street": faker.address.streetName(true), + "suite": 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() + + 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() } - }, - "website": faker.internet.domainName(), - "company": { - "name": faker.company.companyName(), - "catchPhrase": faker.company.catchPhrase(), - "bs": faker.company.bs() - } + }; }; -}; - -exports.userCard = function () { + self.createTransaction = 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() - } + "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() }; -}; - -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() }; + + return self; + }; + /* String.prototype.capitalize = function () { //v1.0 return this.replace(/\w+/g, function (a) { @@ -193,3 +200,4 @@ String.prototype.capitalize = function () { //v1.0 }; */ +module['exports'] = Helpers;
\ No newline at end of file diff --git a/lib/image.js b/lib/image.js index 3f87ab7d..e791ffea 100644 --- a/lib/image.js +++ b/lib/image.js @@ -1,14 +1,15 @@ -var faker = require('./index'); +var Image = function (faker) { -var image = { - image: function () { + var self = this; + + self.image = function () { var categories = ["abstract", "animals", "business", "cats", "city", "food", "nightlife", "fashion", "people", "nature", "sports", "technics", "transport"]; - return image[faker.random.array_element(categories)](); - }, - avatar: function () { + return self[faker.random.array_element(categories)](); + }; + self.avatar = function () { return faker.internet.avatar(); - }, - imageUrl: function (width, height, category) { + }; + self.imageUrl = function (width, height, category) { var width = width || 640; var height = height || 480; @@ -17,46 +18,46 @@ var image = { url += '/' + category; } return url; - }, - abstract: function (width, height) { + }; + self.abstract = function (width, height) { return faker.image.imageUrl(width, height, 'abstract'); - }, - animals: function (width, height) { + }; + self.animals = function (width, height) { return faker.image.imageUrl(width, height, 'animals'); - }, - business: function (width, height) { + }; + self.business = function (width, height) { return faker.image.imageUrl(width, height, 'business'); - }, - cats: function (width, height) { + }; + self.cats = function (width, height) { return faker.image.imageUrl(width, height, 'cats'); - }, - city: function (width, height) { + }; + self.city = function (width, height) { return faker.image.imageUrl(width, height, 'city'); - }, - food: function (width, height) { + }; + self.food = function (width, height) { return faker.image.imageUrl(width, height, 'food'); - }, - nightlife: function (width, height) { + }; + self.nightlife = function (width, height) { return faker.image.imageUrl(width, height, 'nightlife'); - }, - fashion: function (width, height) { + }; + self.fashion = function (width, height) { return faker.image.imageUrl(width, height, 'fashion'); - }, - people: function (width, height) { + }; + self.people = function (width, height) { return faker.image.imageUrl(width, height, 'people'); - }, - nature: function (width, height) { + }; + self.nature = function (width, height) { return faker.image.imageUrl(width, height, 'nature'); - }, - sports: function (width, height) { + }; + self.sports = function (width, height) { return faker.image.imageUrl(width, height, 'sports'); - }, - technics: function (width, height) { + }; + self.technics = function (width, height) { return faker.image.imageUrl(width, height, 'technics'); - }, - transport: function (width, height) { + }; + self.transport = function (width, height) { return faker.image.imageUrl(width, height, 'transport'); - } -}; + } +} -module.exports = image; +module["exports"] = Image;
\ No newline at end of file diff --git a/lib/index.js b/lib/index.js index 5d7e8b5d..281befed 100644 --- a/lib/index.js +++ b/lib/index.js @@ -16,75 +16,111 @@ if you plan on modifying the faker library you should be performing your changes in the /lib/ directory */ -exports.random = require('./random'); -exports.fake = require('./fake'); - -exports.name = require('./name'); -exports.address = require('./address'); -exports.phone = require('./phone_number'); -exports.internet = require('./internet'); -exports.company = require('./company'); -exports.image = require('./image'); -exports.lorem = require('./lorem'); -exports.helpers = require('./helpers'); -exports.date = require('./date'); -exports.finance = require('./finance'); -exports.hacker = require('./hacker'); -//exports.commerce = require('./commerce'); - -// don't load all locales by default -var locales = {}; -exports.locales = locales; -locales = require('./locales'); - -// default locale -exports.locale = "en"; - -// in case a locale is missing a definition, fallback to this locale -exports.localeFallback = "en"; - -exports.definitions = {}; - - -var _definitions = { - "name": ["first_name", "last_name", "prefix", "suffix", "title", "male_first_name", "female_first_name", "male_middle_name", "female_middle_name", "male_last_name", "female_last_name"], - "address": ["city_prefix", "city_suffix", "street_suffix", "county", "country", "country_code", "state", "state_abbr", "street_prefix", "zipFormat"], - "company": ["adjective", "noun", "descriptor", "bs_adjective", "bs_noun", "bs_verb", "suffix"], - "lorem": ["words"], - "hacker": ["abbreviation", "adjective", "noun", "verb", "ingverb"], - "phone_number": ["formats"], - "finance": ["account_type", "transaction_type", "currency"], - "internet": ["avatar_uri", "domain_suffix", "free_email", "password"], - "commerce": ["color", "department", "product_name", "price", "categories"], - "title": "", - "separator": "" -}; -// Create a Getter for all definitions.foo.bar propetries -Object.keys(_definitions).forEach(function(d){ - if (typeof exports.definitions[d] === "undefined") { - exports.definitions[d] = {}; - } - - if (typeof _definitions[d] === "string") { - exports.definitions[d] = _definitions[d]; - - - return; - } - - _definitions[d].forEach(function(p){ - Object.defineProperty(exports.definitions[d], p, { - get: function () { - if (typeof locales[exports.locale][d] === "undefined" || typeof locales[exports.locale][d][p] === "undefined") { - // certain localization sets contain less data then others. - // in the case of a missing defintion, use the default localeFallback to substitute the missing set data - return locales[exports.localeFallback][d][p]; - } else { - // return localized data - return locales[exports.locale][d][p]; +function Faker (opts) { + + var self = this; + + opts = opts || {}; + + // assign options + var locales = self.locales || opts.locales || {}; + var locale = self.locale || opts.locale || "en"; + var localeFallback = self.localeFallback || opts.localeFallback || "en"; + + self.locales = locales; + self.locale = locale; + self.localeFallback = localeFallback; + + + self.definitions = {}; + + var Fake = require('./fake'); + self.fake = new Fake(self).fake; + + var Random = require('./random'); + self.random = new Random(self); + // self.random = require('./random'); + + var Helpers = require('./helpers'); + self.helpers = new Helpers(self); + + var Name = require('./name'); + self.name = new Name(self); + // self.name = require('./name'); + + var Address = require('./address'); + self.address = new Address(self); + + var Company = require('./company'); + self.company = new Company(self); + + var Finance = require('./finance'); + self.finance = new Finance(self); + + var Image = require('./image'); + self.image = new Image(self); + + var Lorem = require('./lorem'); + self.lorem = new Lorem(self); + + var Hacker = require('./hacker'); + self.hacker = new Hacker(self); + + var Internet = require('./internet'); + self.internet = new Internet(self); + + var Phone = require('./phone_number'); + self.phone = new Phone(self); + + var _Date = require('./date'); + self.date = new _Date(self); + + // TODO: fix self.commerce = require('./commerce'); + + var _definitions = { + "name": ["first_name", "last_name", "prefix", "suffix", "title", "male_first_name", "female_first_name", "male_middle_name", "female_middle_name", "male_last_name", "female_last_name"], + "address": ["city_prefix", "city_suffix", "street_suffix", "county", "country", "country_code", "state", "state_abbr", "street_prefix", "zipFormat"], + "company": ["adjective", "noun", "descriptor", "bs_adjective", "bs_noun", "bs_verb", "suffix"], + "lorem": ["words"], + "hacker": ["abbreviation", "adjective", "noun", "verb", "ingverb"], + "phone_number": ["formats"], + "finance": ["account_type", "transaction_type", "currency"], + "internet": ["avatar_uri", "domain_suffix", "free_email", "password"], + "commerce": ["color", "department", "product_name", "price", "categories"], + "title": "", + "separator": "" + }; + + // Create a Getter for all definitions.foo.bar propetries + Object.keys(_definitions).forEach(function(d){ + if (typeof self.definitions[d] === "undefined") { + self.definitions[d] = {}; + } + + if (typeof _definitions[d] === "string") { + self.definitions[d] = _definitions[d]; + return; + } + + _definitions[d].forEach(function(p){ + Object.defineProperty(self.definitions[d], p, { + get: function () { + if (typeof self.locales[self.locale][d] === "undefined" || typeof self.locales[self.locale][d][p] === "undefined") { + // certain localization sets contain less data then others. + // in the case of a missing defintion, use the default localeFallback to substitute the missing set data + // throw new Error('unknown property ' + d + p) + return self.locales[localeFallback][d][p]; + } else { + // return localized data + return self.locales[self.locale][d][p]; + } } - } + }); }); }); -}); + + +}; + +module['exports'] = Faker;
\ No newline at end of file diff --git a/lib/internet.js b/lib/internet.js index 513daf4a..fd9fd877 100644 --- a/lib/internet.js +++ b/lib/internet.js @@ -1,112 +1,113 @@ -var faker = require('./index'), - password_generator = require('../vendor/password-generator.js'), +var password_generator = require('../vendor/password-generator.js'), random_ua = require('../vendor/user-agent'); -var internet = { - - avatar: function () { - return faker.random.array_element(faker.definitions.internet.avatar_uri); - }, - - email: function (firstName, lastName, provider) { - provider = provider || faker.random.array_element(faker.definitions.internet.free_email); - return faker.helpers.slugify(faker.internet.userName(firstName, lastName)) + "@" + provider; - }, - - userName: function (firstName, lastName) { - var result; - firstName = firstName || faker.name.firstName(); - lastName = lastName || faker.name.lastName(); - switch (faker.random.number(2)) { - case 0: - result = firstName + faker.random.number(99); - break; - case 1: - result = firstName + faker.random.array_element([".", "_"]) + lastName; - break; - case 2: - result = firstName + faker.random.array_element([".", "_"]) + lastName + faker.random.number(99); - break; - } - result = result.toString().replace(/'/g, ""); - result = result.replace(/ /g, ""); - return result; - }, - - protocol: function () { - var protocols = ['http','https']; - return faker.random.array_element(protocols); - }, - - url: function () { - return faker.internet.protocol() + '://' + faker.internet.domainName(); - }, - - domainName: function () { - return faker.internet.domainWord() + "." + faker.internet.domainSuffix(); - }, - - domainSuffix: function () { - return faker.random.array_element(faker.definitions.internet.domain_suffix); - }, - - domainWord: function () { - return faker.name.firstName().replace(/([\\~#&*{}/:<>?|\"])/ig, '').toLowerCase(); - }, - - ip: function () { - var randNum = function () { - return (faker.random.number(255)).toFixed(0); - }; - - var result = []; - for (var i = 0; i < 4; i++) { - result[i] = randNum(); - } - - return result.join("."); - }, - - userAgent: function () { - return random_ua.generate(); - }, - - color: function (baseRed255, baseGreen255, baseBlue255) { - baseRed255 = baseRed255 || 0; - baseGreen255 = baseGreen255 || 0; - baseBlue255 = baseBlue255 || 0; - // based on awesome response : http://stackoverflow.com/questions/43044/algorithm-to-randomly-generate-an-aesthetically-pleasing-color-palette - var red = Math.floor((faker.random.number(256) + baseRed255) / 2); - var green = Math.floor((faker.random.number(256) + baseGreen255) / 2); - var blue = Math.floor((faker.random.number(256) + baseBlue255) / 2); - var redStr = red.toString(16); - var greenStr = green.toString(16); - var blueStr = blue.toString(16); - return '#' + - (redStr.length === 1 ? '0' : '') + redStr + - (greenStr.length === 1 ? '0' : '') + greenStr + - (blueStr.length === 1 ? '0': '') + blueStr; - - }, - - mac: function(){ - var i, mac = ""; - for (i=0; i < 12; i++) { - mac+= parseInt(Math.random()*16).toString(16); - if (i%2==1 && i != 11) { - mac+=":"; - } - } - return mac; - }, - - password: function (len, memorable, pattern, prefix) { - len = len || 15; - if (typeof memorable === "undefined") { - memorable = false; +var Internet = function (faker) { + var self = this; + self.avatar = function () { + return faker.random.array_element(faker.definitions.internet.avatar_uri); + }; + + self.email = function (firstName, lastName, provider) { + provider = provider || faker.random.array_element(faker.definitions.internet.free_email); + return faker.helpers.slugify(faker.internet.userName(firstName, lastName)) + "@" + provider; + }; + + self.userName = function (firstName, lastName) { + var result; + firstName = firstName || faker.name.firstName(); + lastName = lastName || faker.name.lastName(); + switch (faker.random.number(2)) { + case 0: + result = firstName + faker.random.number(99); + break; + case 1: + result = firstName + faker.random.array_element([".", "_"]) + lastName; + break; + case 2: + result = firstName + faker.random.array_element([".", "_"]) + lastName + faker.random.number(99); + break; } - return password_generator(len, memorable, pattern, prefix); + result = result.toString().replace(/'/g, ""); + result = result.replace(/ /g, ""); + return result; + }; + + self.protocol = function () { + var protocols = ['http','https']; + return faker.random.array_element(protocols); + }; + + self.url = function () { + return faker.internet.protocol() + '://' + faker.internet.domainName(); + }; + + self.domainName = function () { + return faker.internet.domainWord() + "." + faker.internet.domainSuffix(); + }; + + self.domainSuffix = function () { + return faker.random.array_element(faker.definitions.internet.domain_suffix); + }; + + self.domainWord = function () { + return faker.name.firstName().replace(/([\\~#&*{}/:<>?|\"])/ig, '').toLowerCase(); + }; + + self.ip = function () { + var randNum = function () { + return (faker.random.number(255)).toFixed(0); + }; + + var result = []; + for (var i = 0; i < 4; i++) { + result[i] = randNum(); + } + + return result.join("."); + }; + + self.userAgent = function () { + return random_ua.generate(); + }; + + self.color = function (baseRed255, baseGreen255, baseBlue255) { + baseRed255 = baseRed255 || 0; + baseGreen255 = baseGreen255 || 0; + baseBlue255 = baseBlue255 || 0; + // based on awesome response : http://stackoverflow.com/questions/43044/algorithm-to-randomly-generate-an-aesthetically-pleasing-color-palette + var red = Math.floor((faker.random.number(256) + baseRed255) / 2); + var green = Math.floor((faker.random.number(256) + baseGreen255) / 2); + var blue = Math.floor((faker.random.number(256) + baseBlue255) / 2); + var redStr = red.toString(16); + var greenStr = green.toString(16); + var blueStr = blue.toString(16); + return '#' + + (redStr.length === 1 ? '0' : '') + redStr + + (greenStr.length === 1 ? '0' : '') + greenStr + + (blueStr.length === 1 ? '0': '') + blueStr; + + }; + + self.mac = function(){ + var i, mac = ""; + for (i=0; i < 12; i++) { + mac+= parseInt(Math.random()*16).toString(16); + if (i%2==1 && i != 11) { + mac+=":"; + } + } + return mac; + }; + + self.password = function (len, memorable, pattern, prefix) { + len = len || 15; + if (typeof memorable === "undefined") { + memorable = false; } + return password_generator(len, memorable, pattern, prefix); + } + }; -module.exports = internet; + +module["exports"] = Internet; diff --git a/lib/locales.js b/lib/locales.js index 2b092372..a9cba642 100644 --- a/lib/locales.js +++ b/lib/locales.js @@ -1,4 +1,3 @@ -var faker = require('./index'); exports['de'] = require('./locales/de'); exports['de_AT'] = require('./locales/de_AT'); exports['de_CH'] = require('./locales/de_CH'); diff --git a/lib/locales/de/index.js b/lib/locales/de/index.js index 3c6eeaf2..6dfe27a3 100644 --- a/lib/locales/de/index.js +++ b/lib/locales/de/index.js @@ -7,4 +7,4 @@ de.internet = require("./internet"); de.lorem = require("./lorem"); de.name = require("./name"); de.phone_number = require("./phone_number"); -de.cell_phone = require("./cell_phone"); +de.cell_phone = require("./cell_phone");
\ No newline at end of file diff --git a/lib/lorem.js b/lib/lorem.js index 54a28998..f5d50d73 100644 --- a/lib/lorem.js +++ b/lib/lorem.js @@ -1,47 +1,51 @@ -var faker = require('./index'); -var Helpers = require('./helpers'); - -var lorem = { - words: function (num) { - if (typeof num == 'undefined') { num = 3; } - return Helpers.shuffle(faker.definitions.lorem.words).slice(0, num); - }, - - sentence: function (wordCount, range) { - if (typeof wordCount == 'undefined') { wordCount = 3; } - if (typeof range == 'undefined') { range = 7; } - - // strange issue with the node_min_test failing for captialize, please fix and add faker.lorem.back - //return faker.lorem.words(wordCount + Helpers.randomNumber(range)).join(' ').capitalize(); - - return faker.lorem.words(wordCount + faker.random.number(range)).join(' '); - }, - - sentences: function (sentenceCount) { - if (typeof sentenceCount == 'undefined') { sentenceCount = 3; } - var sentences = []; - for (sentenceCount; sentenceCount > 0; sentenceCount--) { - sentences.push(faker.lorem.sentence()); - } - return sentences.join("\n"); - }, - - paragraph: function (sentenceCount) { - if (typeof sentenceCount == 'undefined') { sentenceCount = 3; } - return faker.lorem.sentences(sentenceCount + faker.random.number(3)); - }, - - paragraphs: function (paragraphCount, separator) { - if (typeof separator === "undefined") { - separator = "\n \r"; - } - if (typeof paragraphCount == 'undefined') { paragraphCount = 3; } - var paragraphs = []; - for (paragraphCount; paragraphCount > 0; paragraphCount--) { - paragraphs.push(faker.lorem.paragraph()); + +var Lorem = function (faker) { + var self = this; + var Helpers = faker.helpers; + + self.words = function (num) { + if (typeof num == 'undefined') { num = 3; } + return Helpers.shuffle(faker.definitions.lorem.words).slice(0, num); + }; + + self.sentence = function (wordCount, range) { + if (typeof wordCount == 'undefined') { wordCount = 3; } + if (typeof range == 'undefined') { range = 7; } + + // strange issue with the node_min_test failing for captialize, please fix and add faker.lorem.back + //return faker.lorem.words(wordCount + Helpers.randomNumber(range)).join(' ').capitalize(); + + return faker.lorem.words(wordCount + faker.random.number(range)).join(' '); + }; + + self.sentences = function (sentenceCount) { + if (typeof sentenceCount == 'undefined') { sentenceCount = 3; } + var sentences = []; + for (sentenceCount; sentenceCount > 0; sentenceCount--) { + sentences.push(faker.lorem.sentence()); } - return paragraphs.join(separator); + return sentences.join("\n"); + }; + + self.paragraph = function (sentenceCount) { + if (typeof sentenceCount == 'undefined') { sentenceCount = 3; } + return faker.lorem.sentences(sentenceCount + faker.random.number(3)); + }; + + self.paragraphs = function (paragraphCount, separator) { + if (typeof separator === "undefined") { + separator = "\n \r"; } + if (typeof paragraphCount == 'undefined') { paragraphCount = 3; } + var paragraphs = []; + for (paragraphCount; paragraphCount > 0; paragraphCount--) { + paragraphs.push(faker.lorem.paragraph()); + } + return paragraphs.join(separator); + } + + return self; }; -module.exports = lorem; + +module["exports"] = Lorem; diff --git a/lib/name.js b/lib/name.js index 5d3864f6..5f1c577f 100644 --- a/lib/name.js +++ b/lib/name.js @@ -1,99 +1,97 @@ -var faker = require('./index'); +function Name (faker) { -var _name = { - - firstName: function (gender) { - if (typeof faker.definitions.name.male_first_name !== "undefined" && typeof faker.definitions.name.female_first_name !== "undefined") { - // some locale datasets ( like ru ) have first_name split by gender. since the name.first_name field does not exist in these datasets, - // we must randomly pick a name from either gender array so faker.name.firstName will return the correct locale data ( and not fallback ) - if (typeof gender !== 'number') { - gender = faker.random.number(1); - } - if (gender === 0) { - return faker.random.array_element(faker.locales[faker.locale].name.male_first_name) - } else { - return faker.random.array_element(faker.locales[faker.locale].name.female_first_name); - } + this.firstName = function (gender) { + if (typeof faker.definitions.name.male_first_name !== "undefined" && typeof faker.definitions.name.female_first_name !== "undefined") { + // some locale datasets ( like ru ) have first_name split by gender. since the name.first_name field does not exist in these datasets, + // we must randomly pick a name from either gender array so faker.name.firstName will return the correct locale data ( and not fallback ) + if (typeof gender !== 'number') { + gender = faker.random.number(1); + } + if (gender === 0) { + return faker.random.array_element(faker.locales[faker.locale].name.male_first_name) + } else { + return faker.random.array_element(faker.locales[faker.locale].name.female_first_name); } - return faker.random.array_element(faker.definitions.name.first_name); - }, + } + return faker.random.array_element(faker.definitions.name.first_name); + }; - lastName: function (gender) { - if (typeof faker.definitions.name.male_last_name !== "undefined" && typeof faker.definitions.name.female_last_name !== "undefined") { - // some locale datasets ( like ru ) have last_name split by gender. i have no idea how last names can have genders, but also i do not speak russian - // see above comment of firstName method - if (typeof gender !== 'number') { - gender = faker.random.number(1); - } - if (gender === 0) { - return faker.random.array_element(faker.locales[faker.locale].name.male_last_name); - } else { - return faker.random.array_element(faker.locales[faker.locale].name.female_last_name); - } + this.lastName = function (gender) { + if (typeof faker.definitions.name.male_last_name !== "undefined" && typeof faker.definitions.name.female_last_name !== "undefined") { + // some locale datasets ( like ru ) have last_name split by gender. i have no idea how last names can have genders, but also i do not speak russian + // see above comment of firstName method + if (typeof gender !== 'number') { + gender = faker.random.number(1); + } + if (gender === 0) { + return faker.random.array_element(faker.locales[faker.locale].name.male_last_name); + } else { + return faker.random.array_element(faker.locales[faker.locale].name.female_last_name); } - return faker.random.array_element(faker.definitions.name.last_name); - }, + } + return faker.random.array_element(faker.definitions.name.last_name); + }; - findName: function (firstName, lastName, gender) { - var r = faker.random.number(8); - var prefix, suffix; - // in particular locales first and last names split by gender, - // thus we keep consistency by passing 0 as male and 1 as female - if (typeof gender !== 'number') { - gender = faker.random.number(1); - } - firstName = firstName || faker.name.firstName(gender); - lastName = lastName || faker.name.lastName(gender); - switch (r) { - case 0: - prefix = faker.name.prefix(); - if (prefix) { - return prefix + " " + firstName + " " + lastName; - } - case 1: - suffix = faker.name.prefix(); - if (suffix) { - return firstName + " " + lastName + " " + suffix; - } - } + this.findName = function (firstName, lastName, gender) { + var r = faker.random.number(8); + var prefix, suffix; + // in particular locales first and last names split by gender, + // thus we keep consistency by passing 0 as male and 1 as female + if (typeof gender !== 'number') { + gender = faker.random.number(1); + } + firstName = firstName || faker.name.firstName(gender); + lastName = lastName || faker.name.lastName(gender); + switch (r) { + case 0: + prefix = faker.name.prefix(); + if (prefix) { + return prefix + " " + firstName + " " + lastName; + } + case 1: + suffix = faker.name.prefix(); + if (suffix) { + return firstName + " " + lastName + " " + suffix; + } + } - return firstName + " " + lastName; - }, + return firstName + " " + lastName; + }; - jobTitle: function () { - return faker.name.jobDescriptor() + " " + - faker.name.jobArea() + " " + - faker.name.jobType(); - }, + this.jobTitle = function () { + return faker.name.jobDescriptor() + " " + + faker.name.jobArea() + " " + + faker.name.jobType(); + }; - prefix: function () { - return faker.random.array_element(faker.definitions.name.prefix); - }, + this.prefix = function () { + return faker.random.array_element(faker.definitions.name.prefix); + }; - suffix: function () { - return faker.random.array_element(faker.definitions.name.suffix); - }, + this.suffix = function () { + return faker.random.array_element(faker.definitions.name.suffix); + }; - title: function() { - var descriptor = faker.random.array_element(faker.definitions.name.title.descriptor), - level = faker.random.array_element(faker.definitions.name.title.level), - job = faker.random.array_element(faker.definitions.name.title.job); + this.title = function() { + var descriptor = faker.random.array_element(faker.definitions.name.title.descriptor), + level = faker.random.array_element(faker.definitions.name.title.level), + job = faker.random.array_element(faker.definitions.name.title.job); - return descriptor + " " + level + " " + job; - }, + return descriptor + " " + level + " " + job; + }; - jobDescriptor: function () { - return faker.random.array_element(faker.definitions.name.title.descriptor); - }, + this.jobDescriptor = function () { + return faker.random.array_element(faker.definitions.name.title.descriptor); + }; - jobArea: function () { - return faker.random.array_element(faker.definitions.name.title.level); - }, + this.jobArea = function () { + return faker.random.array_element(faker.definitions.name.title.level); + }; - jobType: function () { - return faker.random.array_element(faker.definitions.name.title.job); - } + this.jobType = function () { + return faker.random.array_element(faker.definitions.name.title.job); + }; -}; +} -module.exports = _name; +module['exports'] = Name;
\ No newline at end of file diff --git a/lib/phone_number.js b/lib/phone_number.js index 2b6bb142..f683832c 100644 --- a/lib/phone_number.js +++ b/lib/phone_number.js @@ -1,21 +1,23 @@ -var faker = require('./index'); +var Phone = function (faker) { + var self = this; -var phone = { - phoneNumber: function (format) { - format = format || faker.phone.phoneFormats(); - return faker.helpers.replaceSymbolWithNumber(format); - }, + self.phoneNumber = function (format) { + format = format || faker.phone.phoneFormats(); + return faker.helpers.replaceSymbolWithNumber(format); + }; - // FIXME: this is strange passing in an array index. - phoneNumberFormat: function (phoneFormatsArrayIndex) { - phoneFormatsArrayIndex = phoneFormatsArrayIndex || 0; - return faker.helpers.replaceSymbolWithNumber(faker.definitions.phone_number.formats[phoneFormatsArrayIndex]); - }, + // FIXME: this is strange passing in an array index. + self.phoneNumberFormat = function (phoneFormatsArrayIndex) { + phoneFormatsArrayIndex = phoneFormatsArrayIndex || 0; + return faker.helpers.replaceSymbolWithNumber(faker.definitions.phone_number.formats[phoneFormatsArrayIndex]); + }; - phoneFormats: function () { - return faker.random.array_element(faker.definitions.phone_number.formats); - } + self.phoneFormats = function () { + return faker.random.array_element(faker.definitions.phone_number.formats); + }; + + return self; }; -module.exports = phone; +module['exports'] = Phone;
\ No newline at end of file diff --git a/lib/random.js b/lib/random.js index 41a06f28..7d592849 100644 --- a/lib/random.js +++ b/lib/random.js @@ -1,71 +1,78 @@ var mersenne = require('../vendor/mersenne'); -var faker = require('./index'); - -var random = { - // returns a single random number based on a max number or range - number: function (options) { - - if (typeof options === "number") { - options = { - max: options - }; - } - - options = options || {}; - - if (typeof options.min === "undefined") { - options.min = 0; - } - - if (typeof options.max === "undefined") { - options.max = 1; - } - if (typeof options.precision === "undefined") { - options.precision = 1; - } - - // Make the range inclusive of the max value - var max = options.max; - if (max >= 0) { - max += options.precision; - } - - var randomNumber = options.precision * Math.floor( - mersenne.rand(max / options.precision, options.min / options.precision)); - - return randomNumber; - - }, - - // takes an array and returns a random element of the array - array_element: function (array) { - array = array || ["a", "b", "c"]; - var r = faker.random.number({ max: array.length - 1 }); - return array[r]; - }, - - // takes an object and returns the randomly key or value - object_element: function (object, field) { - object = object || {}; - var array = Object.keys(object); - var key = faker.random.array_element(array); - - return field === "key" ? key : object[key]; - }, - - uuid : function () { - var RFC4122_TEMPLATE = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'; - var replacePlaceholders = function (placeholder) { - var random = Math.random()*16|0; - var value = placeholder == 'x' ? random : (random &0x3 | 0x8); - return value.toString(16); + +function Random (faker) { + + // returns a single random number based on a max number or range + this.number = function (options) { + + if (typeof options === "number") { + options = { + max: options }; - return RFC4122_TEMPLATE.replace(/[xy]/g, replacePlaceholders); - }, + } + + options = options || {}; + + if (typeof options.min === "undefined") { + options.min = 0; + } + + if (typeof options.max === "undefined") { + options.max = 1; + } + if (typeof options.precision === "undefined") { + options.precision = 1; + } + + // Make the range inclusive of the max value + var max = options.max; + if (max >= 0) { + max += options.precision; + } + + var randomNumber = options.precision * Math.floor( + mersenne.rand(max / options.precision, options.min / options.precision)); + + return randomNumber; + + } + + // takes an array and returns a random element of the array + this.array_element = function (array) { + array = array || ["a", "b", "c"]; + var r = faker.random.number({ max: array.length - 1 }); + return array[r]; + } + + // takes an object and returns the randomly key or value + this.object_element = function (object, field) { + object = object || {}; + var array = Object.keys(object); + var key = faker.random.array_element(array); + + return field === "key" ? key : object[key]; + } + + this.uuid = function () { + var RFC4122_TEMPLATE = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'; + var replacePlaceholders = function (placeholder) { + var random = Math.random()*16|0; + var value = placeholder == 'x' ? random : (random &0x3 | 0x8); + return value.toString(16); + }; + return RFC4122_TEMPLATE.replace(/[xy]/g, replacePlaceholders); + } + + this.boolean =function () { + return !!faker.random.number(1) + } + + return this; + +} + +module['exports'] = Random; + - boolean: function () { - return !!faker.random.number(1) - } -}; -module.exports = random; +// module.exports = random; diff --git a/locale/ReadMe.md b/locale/ReadMe.md new file mode 100644 index 00000000..1b56bc8f --- /dev/null +++ b/locale/ReadMe.md @@ -0,0 +1,12 @@ +# Read Me + +The files in this directory have been auto-generated from the `gulpfile`. + +These file exist in order to allow users to require the `faker` library using a specific locale ( instead of the default behavior or loading all all locales ). + +Example: + +``` js +var faker = require('../locale/en'); +console.log(faker.name.findName()); +```
\ No newline at end of file diff --git a/locale/de.js b/locale/de.js index e851119a..5c29adac 100644 --- a/locale/de.js +++ b/locale/de.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "de"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'de', localeFallback: 'en' }); faker.locales['de'] = require('../lib/locales/de'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/de_AT.js b/locale/de_AT.js index 0a7a4529..193a9a47 100644 --- a/locale/de_AT.js +++ b/locale/de_AT.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "de_AT"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'de_AT', localeFallback: 'en' }); faker.locales['de_AT'] = require('../lib/locales/de_AT'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/de_CH.js b/locale/de_CH.js index 20b5f3d9..6685dab3 100644 --- a/locale/de_CH.js +++ b/locale/de_CH.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "de_CH"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'de_CH', localeFallback: 'en' }); faker.locales['de_CH'] = require('../lib/locales/de_CH'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/en.js b/locale/en.js index 5b4fac04..4eb5d1bf 100644 --- a/locale/en.js +++ b/locale/en.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "en"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'en', localeFallback: 'en' }); +faker.locales['en'] = require('../lib/locales/en'); faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/en_AU.js b/locale/en_AU.js index d38c9125..fbb140c8 100644 --- a/locale/en_AU.js +++ b/locale/en_AU.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "en_AU"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'en_AU', localeFallback: 'en' }); faker.locales['en_AU'] = require('../lib/locales/en_AU'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/en_BORK.js b/locale/en_BORK.js index e3f46825..62392506 100644 --- a/locale/en_BORK.js +++ b/locale/en_BORK.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "en_BORK"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'en_BORK', localeFallback: 'en' }); faker.locales['en_BORK'] = require('../lib/locales/en_BORK'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/en_CA.js b/locale/en_CA.js index 92d60ccc..bfecb640 100644 --- a/locale/en_CA.js +++ b/locale/en_CA.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "en_CA"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'en_CA', localeFallback: 'en' }); faker.locales['en_CA'] = require('../lib/locales/en_CA'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/en_GB.js b/locale/en_GB.js index 1aca74e5..fcef0af3 100644 --- a/locale/en_GB.js +++ b/locale/en_GB.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "en_GB"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'en_GB', localeFallback: 'en' }); faker.locales['en_GB'] = require('../lib/locales/en_GB'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/en_IND.js b/locale/en_IND.js index 7aea1659..a46fe6aa 100644 --- a/locale/en_IND.js +++ b/locale/en_IND.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "en_IND"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'en_IND', localeFallback: 'en' }); faker.locales['en_IND'] = require('../lib/locales/en_IND'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/en_US.js b/locale/en_US.js index e7176c52..8d75c6cb 100644 --- a/locale/en_US.js +++ b/locale/en_US.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "en_US"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'en_US', localeFallback: 'en' }); faker.locales['en_US'] = require('../lib/locales/en_US'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/en_au_ocker.js b/locale/en_au_ocker.js index 32d5cfa8..b6d32073 100644 --- a/locale/en_au_ocker.js +++ b/locale/en_au_ocker.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "en_au_ocker"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'en_au_ocker', localeFallback: 'en' }); faker.locales['en_au_ocker'] = require('../lib/locales/en_au_ocker'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/es.js b/locale/es.js index 05dc8eac..4759ed85 100644 --- a/locale/es.js +++ b/locale/es.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "es"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'es', localeFallback: 'en' }); faker.locales['es'] = require('../lib/locales/es'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/fa.js b/locale/fa.js index 4030381e..24889c92 100644 --- a/locale/fa.js +++ b/locale/fa.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "fa"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'fa', localeFallback: 'en' }); faker.locales['fa'] = require('../lib/locales/fa'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/fr.js b/locale/fr.js index 2612d57e..bf175f4d 100644 --- a/locale/fr.js +++ b/locale/fr.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "fr"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'fr', localeFallback: 'en' }); faker.locales['fr'] = require('../lib/locales/fr'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/fr_CA.js b/locale/fr_CA.js index f1cf0446..a777b205 100644 --- a/locale/fr_CA.js +++ b/locale/fr_CA.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "fr_CA"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'fr_CA', localeFallback: 'en' }); faker.locales['fr_CA'] = require('../lib/locales/fr_CA'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/ge.js b/locale/ge.js index ec435b05..a4ee50cf 100644 --- a/locale/ge.js +++ b/locale/ge.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "ge"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'ge', localeFallback: 'en' }); faker.locales['ge'] = require('../lib/locales/ge'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/it.js b/locale/it.js index 38fbd63f..b0fc88ef 100644 --- a/locale/it.js +++ b/locale/it.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "it"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'it', localeFallback: 'en' }); faker.locales['it'] = require('../lib/locales/it'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/ja.js b/locale/ja.js index 72ac4a57..07721eb0 100644 --- a/locale/ja.js +++ b/locale/ja.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "ja"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'ja', localeFallback: 'en' }); faker.locales['ja'] = require('../lib/locales/ja'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/ko.js b/locale/ko.js index b1da382c..47488a39 100644 --- a/locale/ko.js +++ b/locale/ko.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "ko"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'ko', localeFallback: 'en' }); faker.locales['ko'] = require('../lib/locales/ko'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/nb_NO.js b/locale/nb_NO.js index 28e63009..ee65719a 100644 --- a/locale/nb_NO.js +++ b/locale/nb_NO.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "nb_NO"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'nb_NO', localeFallback: 'en' }); faker.locales['nb_NO'] = require('../lib/locales/nb_NO'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/nep.js b/locale/nep.js index 5f0353ab..a215934a 100644 --- a/locale/nep.js +++ b/locale/nep.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "nep"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'nep', localeFallback: 'en' }); faker.locales['nep'] = require('../lib/locales/nep'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/nl.js b/locale/nl.js index e9fe55d1..4a6bf44d 100644 --- a/locale/nl.js +++ b/locale/nl.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "nl"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'nl', localeFallback: 'en' }); faker.locales['nl'] = require('../lib/locales/nl'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/pl.js b/locale/pl.js index 52e7c315..fe7207e4 100644 --- a/locale/pl.js +++ b/locale/pl.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "pl"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'pl', localeFallback: 'en' }); faker.locales['pl'] = require('../lib/locales/pl'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/pt_BR.js b/locale/pt_BR.js index 45fab9e7..6c926d2d 100644 --- a/locale/pt_BR.js +++ b/locale/pt_BR.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "pt_BR"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'pt_BR', localeFallback: 'en' }); faker.locales['pt_BR'] = require('../lib/locales/pt_BR'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/ru.js b/locale/ru.js index 17481f53..286686d4 100644 --- a/locale/ru.js +++ b/locale/ru.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "ru"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'ru', localeFallback: 'en' }); faker.locales['ru'] = require('../lib/locales/ru'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/sk.js b/locale/sk.js index aada039a..d9f9c5d7 100644 --- a/locale/sk.js +++ b/locale/sk.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "sk"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'sk', localeFallback: 'en' }); faker.locales['sk'] = require('../lib/locales/sk'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/sv.js b/locale/sv.js index 2677674e..7d97ab62 100644 --- a/locale/sv.js +++ b/locale/sv.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "sv"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'sv', localeFallback: 'en' }); faker.locales['sv'] = require('../lib/locales/sv'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/tr.js b/locale/tr.js index 8eaabce6..0b8e155f 100644 --- a/locale/tr.js +++ b/locale/tr.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "tr"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'tr', localeFallback: 'en' }); faker.locales['tr'] = require('../lib/locales/tr'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/uk.js b/locale/uk.js index 40b749b7..708ba058 100644 --- a/locale/uk.js +++ b/locale/uk.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "uk"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'uk', localeFallback: 'en' }); faker.locales['uk'] = require('../lib/locales/uk'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/vi.js b/locale/vi.js index 5b50e677..b20de574 100644 --- a/locale/vi.js +++ b/locale/vi.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "vi"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'vi', localeFallback: 'en' }); faker.locales['vi'] = require('../lib/locales/vi'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/zh_CN.js b/locale/zh_CN.js index d621dbb3..ee9a169f 100644 --- a/locale/zh_CN.js +++ b/locale/zh_CN.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "zh_CN"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'zh_CN', localeFallback: 'en' }); faker.locales['zh_CN'] = require('../lib/locales/zh_CN'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; diff --git a/locale/zh_TW.js b/locale/zh_TW.js index 9955e104..a54b6846 100644 --- a/locale/zh_TW.js +++ b/locale/zh_TW.js @@ -1,4 +1,5 @@ -var faker = require('../lib'); -faker.locale = "zh_TW"; +var Faker = require('../lib'); +var faker = new Faker({ locale: 'zh_TW', localeFallback: 'en' }); faker.locales['zh_TW'] = require('../lib/locales/zh_TW'); +faker.locales['en'] = require('../lib/locales/en'); module['exports'] = faker; |
