diff options
| author | Brandon Dail <[email protected]> | 2015-07-15 13:31:51 -0500 |
|---|---|---|
| committer | Brandon Dail <[email protected]> | 2015-07-15 13:31:51 -0500 |
| commit | 40c13f210afd9a2cd5bf5f60fba7169c6e35ea44 (patch) | |
| tree | 5ada284a07669b925acd8da41c0ace2156107d32 /lib | |
| parent | a0465fcd7678812cfe697c3dd045085d94e52cfa (diff) | |
| download | faker-40c13f210afd9a2cd5bf5f60fba7169c6e35ea44.tar.xz faker-40c13f210afd9a2cd5bf5f60fba7169c6e35ea44.zip | |
Implemented faker.seed method for randomization seeding
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/index.js | 25 | ||||
| -rw-r--r-- | lib/random.js | 14 |
2 files changed, 25 insertions, 14 deletions
diff --git a/lib/index.js b/lib/index.js index 07a0f825..ab8fd9e5 100644 --- a/lib/index.js +++ b/lib/index.js @@ -18,7 +18,7 @@ */ function Faker (opts) { - + var self = this; opts = opts || {}; @@ -27,20 +27,19 @@ function Faker (opts) { 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'); + // self.random = require('./random'); var Helpers = require('./helpers'); self.helpers = new Helpers(self); @@ -80,7 +79,7 @@ function Faker (opts) { self.commerce = new Commerce(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", "postcode"], @@ -122,8 +121,12 @@ function Faker (opts) { }); }); }); - - + }; -module['exports'] = Faker;
\ No newline at end of file +Faker.prototype.seed = function(value) { + var Random = require('./random'); + this.seedValue = value; + this.random = new Random(this, this.seedValue); +} +module['exports'] = Faker; diff --git a/lib/random.js b/lib/random.js index 2d37c551..fc7e54d9 100644 --- a/lib/random.js +++ b/lib/random.js @@ -1,7 +1,15 @@ var mersenne = require('../vendor/mersenne'); -function Random (faker) { - +function Random (faker, seed) { + // Use a user provided seed if it exists + if (seed) { + if (Array.isArray(seed) && seed.length) { + mersenne.seed_array(seed); + } + else { + mersenne.seed(seed); + } + } // returns a single random number based on a max number or range this.number = function (options) { @@ -28,7 +36,7 @@ function Random (faker) { 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)); |
