aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJim Fitzpatrick <[email protected]>2016-05-05 11:24:22 -0400
committerMarak <[email protected]>2017-02-21 12:53:20 -0500
commit59ac9a632bb863e114fb05d241dce463f424c382 (patch)
treee31b4d791dfa2a907d0d9bf6b8a6998495bf0031 /lib
parentef1605d1a94bae0bc38f0c8c0fc51f5fa4ba76f6 (diff)
downloadfaker-59ac9a632bb863e114fb05d241dce463f424c382.tar.xz
faker-59ac9a632bb863e114fb05d241dce463f424c382.zip
Statically bind all module methods
Statically bind the methods on all modules to their correct context so that the methods can be called in a composable, callback-oriented manner. Closes #376 Conflicts: lib/index.js test/all.functional.js
Diffstat (limited to 'lib')
-rw-r--r--lib/index.js35
1 files changed, 22 insertions, 13 deletions
diff --git a/lib/index.js b/lib/index.js
index 306275dc..5b1dce66 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -38,55 +38,64 @@ function Faker (opts) {
self.definitions = {};
+ function bindAll(obj) {
+ Object.keys(obj).forEach(function(meth) {
+ if (typeof obj[meth] === 'function') {
+ obj[meth] = obj[meth].bind(obj);
+ }
+ });
+ return obj;
+ }
+
var Fake = require('./fake');
self.fake = new Fake(self).fake;
var Random = require('./random');
- self.random = new Random(self, opts.seed);
+ self.random = bindAll(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 = bindAll(new Name(self));
// self.name = require('./name');
var Address = require('./address');
- self.address = new Address(self);
+ self.address = bindAll(new Address(self));
var Company = require('./company');
- self.company = new Company(self);
+ self.company = bindAll(new Company(self));
var Finance = require('./finance');
- self.finance = new Finance(self);
+ self.finance = bindAll(new Finance(self));
var Image = require('./image');
- self.image = new Image(self);
+ self.image = bindAll(new Image(self));
var Lorem = require('./lorem');
- self.lorem = new Lorem(self);
+ self.lorem = bindAll(new Lorem(self));
var Hacker = require('./hacker');
- self.hacker = new Hacker(self);
+ self.hacker = bindAll(new Hacker(self));
var Internet = require('./internet');
- self.internet = new Internet(self);
+ self.internet = bindAll(new Internet(self));
var Database = require('./database');
self.database = new Database(self);
var Phone = require('./phone_number');
- self.phone = new Phone(self);
+ self.phone = bindAll(new Phone(self));
var _Date = require('./date');
- self.date = new _Date(self);
+ self.date = bindAll(new _Date(self));
var Commerce = require('./commerce');
- self.commerce = new Commerce(self);
+ self.commerce = bindAll(new Commerce(self));
var System = require('./system');
- self.system = new System(self);
+ self.system = bindAll(new System(self));
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"],