Version 1
[yaffs-website] / node_modules / underscore.string / toBoolean.js
diff --git a/node_modules/underscore.string/toBoolean.js b/node_modules/underscore.string/toBoolean.js
new file mode 100644 (file)
index 0000000..ba82db6
--- /dev/null
@@ -0,0 +1,20 @@
+var trim = require('./trim');
+
+function boolMatch(s, matchers) {
+  var i, matcher, down = s.toLowerCase();
+  matchers = [].concat(matchers);
+  for (i = 0; i < matchers.length; i += 1) {
+    matcher = matchers[i];
+    if (!matcher) continue;
+    if (matcher.test && matcher.test(s)) return true;
+    if (matcher.toLowerCase() === down) return true;
+  }
+}
+
+module.exports = function toBoolean(str, trueValues, falseValues) {
+  if (typeof str === "number") str = "" + str;
+  if (typeof str !== "string") return !!str;
+  str = trim(str);
+  if (boolMatch(str, trueValues || ["true", "1"])) return true;
+  if (boolMatch(str, falseValues || ["false", "0"])) return false;
+};