lint Colors / add Math

This commit is contained in:
Gil Barbara
2015-07-21 00:56:52 -03:00
parent 7fe389b170
commit 2daeb57bda
2 changed files with 63 additions and 9 deletions
+14 -9
View File
@@ -1,4 +1,5 @@
var _ = require('lodash');
var _ = require('lodash'),
math = require('./Math');
/*
Color
@@ -98,6 +99,8 @@ class Colors {
return 60 * (b - r) / d + 120;
case b:
return 60 * (r - g) / d + 240;
default:
break;
}
}());
if (h < 0) {
@@ -171,6 +174,7 @@ class Colors {
(_.intersection(_.keys(attr), ['r', 'g', 'b']).length > 0)) {
return null;
}
if (_.intersection(_.keys(attr), ['r', 'g', 'b']).length > 0) {
type = 'rgb';
}
@@ -180,11 +184,13 @@ class Colors {
else {
return null;
}
_.each(attr, function (val, key, list) {
if (val === null) {
return delete list[key];
}
});
switch (type) {
case 'rgb':
rgb = _.pick(attr, 'r', 'g', 'b');
@@ -203,20 +209,18 @@ class Colors {
else {
out = this.hsl;
}
break;
default:
break;
}
return out;
}
static constrain (attr, amount, limit, direction) {
var math, test, val;
math = [attr, direction, amount].join(' ');
val = eval(math);
test = (limit[1] >= val && val >= limit[0]);
if (test) {
val;
var val = math.expr(attr + direction + amount),
test = (limit[1] >= val && val >= limit[0]);
}
else {
if (!test) {
if (val < limit[0]) {
val = limit[0];
}
@@ -224,6 +228,7 @@ class Colors {
val = limit[1];
}
}
return Math.abs(val);
}
+49
View File
@@ -0,0 +1,49 @@
module.exports = {
expr (expr) {
var chars = expr.split('');
var n = [], op = [], index = 0, oplast = true;
n[index] = '';
// Parse the expression
for (var c = 0; c < chars.length; c++) {
if (isNaN(parseInt(chars[c], 10)) && chars[c] !== '.' && !oplast) {
op[index] = chars[c];
index++;
n[index] = '';
oplast = true;
}
else {
n[index] += chars[c];
oplast = false;
}
}
// Calculate the expression
expr = parseFloat(n[0]);
for (var o = 0; o < op.length; o++) {
var num = parseFloat(n[o + 1]);
switch (op[o]) {
case '+':
expr = expr + num;
break;
case '-':
expr = expr - num;
break;
case '*':
expr = expr * num;
break;
case '/':
expr = expr / num;
break;
default:
break;
}
}
return expr;
}
};