From 38fef5478f34cc0ff2c225d09a5f776154cbcd28 Mon Sep 17 00:00:00 2001
From: Alvaro Cabrera <pateketrueke@gmail.com>
Date: Fri, 25 Nov 2016 01:15:08 -0600
Subject: [PATCH] Apply defaultRandExpMax option; fix

---
 lib/class/Container.js      | Bin 2134 -> 2396 bytes
 lib/class/OptionRegistry.js | Bin 931 -> 977 bytes
 ts/class/Container.ts       |  13 ++++++++++++-
 ts/class/OptionRegistry.ts  |   3 ++-
 4 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/lib/class/Container.js b/lib/class/Container.js
index daf2998c01b48cef224c4e3e8ecbf8bf041216d7..132428e891309bea2eedc85cd55a1706e234a0df 100644
GIT binary patch
delta 295
zcmca6a7So@fpS@5kwSh!NoIbYf~`VPYGG++QL2WLo}PYUL8d-LVxtZx8y`qrP-0$+
zYehl4g6(8$HpzNxE(Ih|lv+|+l&6qZnwJbVO`{;Oq$IT{Pg9{9MIA^B$grYR1zUx@
z)N%!wsc;Rb=7Q80rRwD-Rw&p)U8<p;lA4y7P?}Q$)$5yBp{|LkEjd50I6o&<FDE};
bqbL=N0;rpdQuWeP^EA*D)NYPp`^5+VB-c^r

delta 38
ocmca3bWLD_!Nzb_w#jAeqC)CLiFqlh6$R?CdQjHpB=%p700wpqvj6}9

diff --git a/lib/class/OptionRegistry.js b/lib/class/OptionRegistry.js
index 47a41f68d6b4dae3ae957ee2c74b5c8adf17500f..bf56c1ff7b7d18b722a7f2b990b33c4729d0e3d0 100644
GIT binary patch
delta 40
vcmZ3?evy5H9J549YFc7xPDxN=UW#i)fp21kdaQ!2f}z1=MJBPya?Gs&7Yq!L

delta 11
Scmcb}zL<T39P?x!=2ie0jRU&?

diff --git a/ts/class/Container.ts b/ts/class/Container.ts
index 13cad008..8323c185 100644
--- a/ts/class/Container.ts
+++ b/ts/class/Container.ts
@@ -1,4 +1,5 @@
 import RandExp = require('randexp');
+import option = require('../api/option');
 
 // set maximum default, see #193
 RandExp.prototype.max = 10;
@@ -52,7 +53,17 @@ class Container {
     if (typeof this.registry[name] === 'undefined') {
       throw new ReferenceError('"' + name + '" dependency doesn\'t exist.');
     } else if (name === 'randexp') {
-      return this.registry['randexp'].randexp;
+      var RandExp_ = this.registry['randexp'];
+
+      // wrapped generator
+      return function (pattern): string {
+        var re = new RandExp_(pattern);
+
+        // apply given setting
+        re.max = option('defaultRandExpMax');
+
+        return re.gen();
+      };
     }
     return this.registry[name];
   }
diff --git a/ts/class/OptionRegistry.ts b/ts/class/OptionRegistry.ts
index f663dafd..4120800c 100644
--- a/ts/class/OptionRegistry.ts
+++ b/ts/class/OptionRegistry.ts
@@ -1,6 +1,6 @@
 import Registry = require('./Registry');
 
-type Option = boolean;
+type Option = boolean|number;
 
 /**
  * This class defines a registry for custom formats used within JSF.
@@ -14,6 +14,7 @@ class OptionRegistry extends Registry<Option> {
     this.data['useDefaultValue'] = false;
     this.data['maxItems'] = null;
     this.data['maxLength'] = null;
+    this.data['defaultRandExpMax'] = 10;
     this.data['alwaysFakeOptionals'] = false;
   }
 }
-- 
GitLab