From 37e8f70262db34b5d7391fe1a8e8bf02f36acaa0 Mon Sep 17 00:00:00 2001 From: Rafael Caricio Date: Fri, 19 Sep 2014 19:36:13 +0200 Subject: [PATCH] Stringify --- build/node.js | 20 ++++++++++++++++++++ build/web.js | 20 ++++++++++++++++++++ lib/stringify.js | 20 ++++++++++++++++++++ spec/stringify.spec.js | 25 +++++++++++++++++++++++++ 4 files changed, 85 insertions(+) diff --git a/build/node.js b/build/node.js index 0ee01c2..fb3e08d 100644 --- a/build/node.js +++ b/build/node.js @@ -21,6 +21,26 @@ GradientParser.stringify = (function() { return node.value; }, + visit_angular: function(node) { + return node.value + 'deg'; + }, + + visit_hex: function(node) { + return '#' + node.value; + }, + + visit_rgb: function(node) { + return 'rgb(' + node.value.join(', ') + ')'; + }, + + visit_rgba: function(node) { + return 'rgba(' + node.value.join(', ') + ')'; + }, + + visit_directional: function(node) { + return 'to ' + node.value; + }, + visit_array: function(elements) { var result = '', size = elements.length; diff --git a/build/web.js b/build/web.js index 5371d8f..24ca45d 100644 --- a/build/web.js +++ b/build/web.js @@ -361,6 +361,26 @@ GradientParser.stringify = (function() { return node.value; }, + visit_angular: function(node) { + return node.value + 'deg'; + }, + + visit_hex: function(node) { + return '#' + node.value; + }, + + visit_rgb: function(node) { + return 'rgb(' + node.value.join(', ') + ')'; + }, + + visit_rgba: function(node) { + return 'rgba(' + node.value.join(', ') + ')'; + }, + + visit_directional: function(node) { + return 'to ' + node.value; + }, + visit_array: function(elements) { var result = '', size = elements.length; diff --git a/lib/stringify.js b/lib/stringify.js index a5eb01f..1f56c8f 100644 --- a/lib/stringify.js +++ b/lib/stringify.js @@ -21,6 +21,26 @@ GradientParser.stringify = (function() { return node.value; }, + visit_angular: function(node) { + return node.value + 'deg'; + }, + + visit_hex: function(node) { + return '#' + node.value; + }, + + visit_rgb: function(node) { + return 'rgb(' + node.value.join(', ') + ')'; + }, + + visit_rgba: function(node) { + return 'rgba(' + node.value.join(', ') + ')'; + }, + + visit_directional: function(node) { + return 'to ' + node.value; + }, + visit_array: function(elements) { var result = '', size = elements.length; diff --git a/spec/stringify.spec.js b/spec/stringify.spec.js index 59affd7..07c0dc6 100644 --- a/spec/stringify.spec.js +++ b/spec/stringify.spec.js @@ -21,6 +21,31 @@ describe('lib/stringify.js', function () { expect(gradients.stringify(gradients.parse(gradientDef))).to.equal(gradientDef); }); + it('should serialize gradient with hex', function() { + var gradientDef = 'linear-gradient(#fff, white)'; + expect(gradients.stringify(gradients.parse(gradientDef))).to.equal(gradientDef); + }); + + it('should serialize gradient with rgb', function() { + var gradientDef = 'linear-gradient(rgb(1, 2, 3), white)'; + expect(gradients.stringify(gradients.parse(gradientDef))).to.equal(gradientDef); + }); + + it('should serialize gradient with rgba', function() { + var gradientDef = 'linear-gradient(rgba(1, 2, 3, .0), white)'; + expect(gradients.stringify(gradients.parse(gradientDef))).to.equal(gradientDef); + }); + + it('should serialize gradient with deg', function() { + var gradientDef = 'linear-gradient(45deg, #fff, transparent)'; + expect(gradients.stringify(gradients.parse(gradientDef))).to.equal(gradientDef); + }); + + it('should serialize gradient with directional', function() { + var gradientDef = 'linear-gradient(to left, #fff, transparent)'; + expect(gradients.stringify(gradients.parse(gradientDef))).to.equal(gradientDef); + }); + }); });