autoprefixer-rails 0.4.20130530 → 0.4.20130603

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -29,6 +29,10 @@
29
29
  * Add Opera 15 and iOS 6.1 data.
30
30
  * Fix iOS versions in properties and values data.
31
31
 
32
+ 20130603:
33
+ * Use latest Rework 0.15 with a lot of CSS parsing fixes.
34
+ * Update browsers usage statistics.
35
+
32
36
  == 0.3 (Growing Strong)
33
37
  * Use own filters instead of Rework’s `prefix` and `prefixValue`.
34
38
  * Smarter value prefixer without false match “order” in “border”.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- autoprefixer-rails (0.4.20130530)
4
+ autoprefixer-rails (0.4.20130603)
5
5
  execjs
6
6
 
7
7
  GEM
@@ -49,7 +49,7 @@ GEM
49
49
  mime-types (~> 1.16)
50
50
  treetop (~> 1.4.8)
51
51
  mime-types (1.23)
52
- multi_json (1.7.4)
52
+ multi_json (1.7.5)
53
53
  polyglot (0.3.3)
54
54
  rack (1.4.5)
55
55
  rack-cache (1.2)
@@ -1,3 +1,3 @@
1
1
  module AutoprefixerRails
2
- VERSION = '0.4.20130530'.freeze unless defined? AutoprefixerRails::VERSION
2
+ VERSION = '0.4.20130603'.freeze unless defined? AutoprefixerRails::VERSION
3
3
  end
@@ -23,7 +23,7 @@ describe AutoprefixerRails do
23
23
  AutoprefixerRails.install(assets, ['chrome 25'], :dirs => dirs)
24
24
 
25
25
  assets['vendor/assets/stylesheets/foreign.css'].to_s.should ==
26
- ".f {\n -webkit-transition: none;\n transition: none\n}"
26
+ ".f {\n -webkit-transition: none;\n transition: none;\n}"
27
27
  assets['app/assets/stylesheets/test.css'].to_s.should ==
28
28
  "a { transition: all 1s }\n"
29
29
  end
data/spec/spec_helper.rb CHANGED
@@ -9,4 +9,4 @@ require 'pp'
9
9
  require 'sprockets'
10
10
  require 'rspec/rails'
11
11
 
12
- PREFIXED = "a {\n -webkit-transition: all 1s;\n transition: all 1s\n}"
12
+ PREFIXED = "a {\n -webkit-transition: all 1s;\n transition: all 1s;\n}"
@@ -648,27 +648,48 @@ module.exports = function(css, options){
648
648
  });
649
649
  require.register("visionmedia-css-stringify/index.js", function(exports, require, module){
650
650
 
651
+ /**
652
+ * Module dependencies.
653
+ */
654
+
655
+ var Compressed = require('./lib/compress');
656
+ var Identity = require('./lib/identity');
657
+
651
658
  /**
652
659
  * Stringfy the given AST `node`.
653
660
  *
654
661
  * @param {Object} node
655
- * @param {Object} options
662
+ * @param {Object} [options]
656
663
  * @return {String}
657
664
  * @api public
658
665
  */
659
666
 
660
667
  module.exports = function(node, options){
661
- return new Compiler(options).compile(node);
668
+ options = options || {};
669
+
670
+ var compiler = options.compress
671
+ ? new Compressed(options)
672
+ : new Identity(options);
673
+
674
+ return compiler.compile(node);
662
675
  };
663
676
 
677
+
678
+ });
679
+ require.register("visionmedia-css-stringify/lib/compress.js", function(exports, require, module){
680
+
681
+ /**
682
+ * Expose compiler.
683
+ */
684
+
685
+ module.exports = Compiler;
686
+
664
687
  /**
665
688
  * Initialize a new `Compiler`.
666
689
  */
667
690
 
668
691
  function Compiler(options) {
669
692
  options = options || {};
670
- this.compress = options.compress;
671
- this.indentation = options.indent;
672
693
  }
673
694
 
674
695
  /**
@@ -678,7 +699,7 @@ function Compiler(options) {
678
699
  Compiler.prototype.compile = function(node){
679
700
  return node.stylesheet
680
701
  .rules.map(this.visit, this)
681
- .join(this.compress ? '' : '\n\n');
702
+ .join('');
682
703
  };
683
704
 
684
705
  /**
@@ -695,7 +716,6 @@ Compiler.prototype.visit = function(node){
695
716
 
696
717
  Compiler.prototype.comment = function(node){
697
718
  if (this.compress) return '';
698
- return '/*' + node.comment + '*/';
699
719
  };
700
720
 
701
721
  /**
@@ -711,14 +731,172 @@ Compiler.prototype.import = function(node){
711
731
  */
712
732
 
713
733
  Compiler.prototype.media = function(node){
714
- if (this.compress) {
715
- return '@media '
716
- + node.media
717
- + '{'
718
- + node.rules.map(this.visit, this).join('')
719
- + '}';
720
- }
734
+ return '@media '
735
+ + node.media
736
+ + '{'
737
+ + node.rules.map(this.visit, this).join('')
738
+ + '}';
739
+ };
740
+
741
+ /**
742
+ * Visit document node.
743
+ */
744
+
745
+ Compiler.prototype.document = function(node){
746
+ var doc = '@' + (node.vendor || '') + 'document ' + node.document;
747
+
748
+ return doc
749
+ + '{'
750
+ + node.rules.map(this.visit, this).join('')
751
+ + '}';
752
+ };
753
+
754
+ /**
755
+ * Visit charset node.
756
+ */
757
+
758
+ Compiler.prototype.charset = function(node){
759
+ return '@charset ' + node.charset + ';';
760
+ };
761
+
762
+ /**
763
+ * Visit supports node.
764
+ */
765
+
766
+ Compiler.prototype.supports = function(node){
767
+ return '@supports '
768
+ + node.supports
769
+ + ' {\n'
770
+ + this.indent(1)
771
+ + node.rules.map(this.visit, this).join('\n\n')
772
+ + this.indent(-1)
773
+ + '\n}';
774
+ };
775
+
776
+ /**
777
+ * Visit keyframes node.
778
+ */
779
+
780
+ Compiler.prototype.keyframes = function(node){
781
+ return '@'
782
+ + (node.vendor || '')
783
+ + 'keyframes '
784
+ + node.name
785
+ + '{'
786
+ + node.keyframes.map(this.visit, this).join('')
787
+ + '}';
788
+ };
789
+
790
+ /**
791
+ * Visit keyframe node.
792
+ */
793
+
794
+ Compiler.prototype.keyframe = function(node){
795
+ var decls = node.declarations;
796
+
797
+ return node.values.join(',')
798
+ + '{'
799
+ + decls.map(this.visit, this).join('')
800
+ + '}';
801
+ };
802
+
803
+ /**
804
+ * Visit page node.
805
+ */
806
+
807
+ Compiler.prototype.page = function(node){
808
+ var sel = node.selectors.length
809
+ ? node.selectors.join(', ') + ' '
810
+ : '';
811
+
812
+ return '@page ' + sel
813
+ + '{\n'
814
+ + this.indent(1)
815
+ + node.declarations.map(this.visit, this).join('\n')
816
+ + this.indent(-1)
817
+ + '\n}';
818
+ };
819
+
820
+ /**
821
+ * Visit rule node.
822
+ */
823
+
824
+ Compiler.prototype.rule = function(node){
825
+ var decls = node.declarations;
826
+ if (!decls.length) return '';
827
+
828
+ return node.selectors.join(',')
829
+ + '{'
830
+ + decls.map(this.visit, this).join('')
831
+ + '}';
832
+ };
833
+
834
+ /**
835
+ * Visit declaration node.
836
+ */
837
+
838
+ Compiler.prototype.declaration = function(node){
839
+ return node.property + ':' + node.value + ';';
840
+ };
841
+
842
+
843
+ });
844
+ require.register("visionmedia-css-stringify/lib/identity.js", function(exports, require, module){
845
+
846
+ /**
847
+ * Expose compiler.
848
+ */
849
+
850
+ module.exports = Compiler;
851
+
852
+ /**
853
+ * Initialize a new `Compiler`.
854
+ */
855
+
856
+ function Compiler(options) {
857
+ options = options || {};
858
+ this.indentation = options.indent;
859
+ }
860
+
861
+ /**
862
+ * Compile `node`.
863
+ */
864
+
865
+ Compiler.prototype.compile = function(node){
866
+ return node.stylesheet
867
+ .rules.map(this.visit, this)
868
+ .join('\n\n');
869
+ };
870
+
871
+ /**
872
+ * Visit `node`.
873
+ */
874
+
875
+ Compiler.prototype.visit = function(node){
876
+ return this[node.type](node);
877
+ };
878
+
879
+ /**
880
+ * Visit comment node.
881
+ */
721
882
 
883
+ Compiler.prototype.comment = function(node){
884
+ return this.indent() + '/*' + node.comment + '*/';
885
+ };
886
+
887
+ /**
888
+ * Visit import node.
889
+ */
890
+
891
+ Compiler.prototype.import = function(node){
892
+ return '@import ' + node.import + ';';
893
+ };
894
+
895
+ /**
896
+ * Visit media node.
897
+ */
898
+
899
+ Compiler.prototype.media = function(node){
722
900
  return '@media '
723
901
  + node.media
724
902
  + ' {\n'
@@ -735,13 +913,6 @@ Compiler.prototype.media = function(node){
735
913
  Compiler.prototype.document = function(node){
736
914
  var doc = '@' + (node.vendor || '') + 'document ' + node.document;
737
915
 
738
- if (this.compress) {
739
- return doc
740
- + '{'
741
- + node.rules.map(this.visit, this).join('')
742
- + '}';
743
- }
744
-
745
916
  return doc + ' '
746
917
  + ' {\n'
747
918
  + this.indent(1)
@@ -755,35 +926,35 @@ Compiler.prototype.document = function(node){
755
926
  */
756
927
 
757
928
  Compiler.prototype.charset = function(node){
758
- if (this.compress) {
759
- return '@charset ' + node.charset + ';';
760
- }
761
-
762
929
  return '@charset ' + node.charset + ';\n';
763
930
  };
764
931
 
932
+ /**
933
+ * Visit supports node.
934
+ */
935
+
936
+ Compiler.prototype.supports = function(node){
937
+ return '@supports '
938
+ + node.supports
939
+ + ' {\n'
940
+ + this.indent(1)
941
+ + node.rules.map(this.visit, this).join('\n\n')
942
+ + this.indent(-1)
943
+ + '\n}';
944
+ };
945
+
765
946
  /**
766
947
  * Visit keyframes node.
767
948
  */
768
949
 
769
950
  Compiler.prototype.keyframes = function(node){
770
- if (this.compress) {
771
- return '@'
772
- + (node.vendor || '')
773
- + 'keyframes '
774
- + node.name
775
- + '{'
776
- + node.keyframes.map(this.keyframe, this).join('')
777
- + '}';
778
- }
779
-
780
951
  return '@'
781
952
  + (node.vendor || '')
782
953
  + 'keyframes '
783
954
  + node.name
784
955
  + ' {\n'
785
956
  + this.indent(1)
786
- + node.keyframes.map(this.keyframe, this).join('\n')
957
+ + node.keyframes.map(this.visit, this).join('\n')
787
958
  + this.indent(-1)
788
959
  + '}';
789
960
  };
@@ -793,18 +964,13 @@ Compiler.prototype.keyframes = function(node){
793
964
  */
794
965
 
795
966
  Compiler.prototype.keyframe = function(node){
796
- if (this.compress) {
797
- return node.values.join(',')
798
- + '{'
799
- + node.declarations.map(this.declaration, this).join(';')
800
- + '}';
801
- }
967
+ var decls = node.declarations;
802
968
 
803
969
  return this.indent()
804
970
  + node.values.join(', ')
805
971
  + ' {\n'
806
972
  + this.indent(1)
807
- + node.declarations.map(this.declaration, this).join(';\n')
973
+ + decls.map(this.visit, this).join('\n')
808
974
  + this.indent(-1)
809
975
  + '\n' + this.indent() + '}\n';
810
976
  };
@@ -814,10 +980,14 @@ Compiler.prototype.keyframe = function(node){
814
980
  */
815
981
 
816
982
  Compiler.prototype.page = function(node){
817
- return '@page ' + node.selectors.join(', ')
818
- + ' {\n'
983
+ var sel = node.selectors.length
984
+ ? node.selectors.join(', ') + ' '
985
+ : '';
986
+
987
+ return '@page ' + sel
988
+ + '{\n'
819
989
  + this.indent(1)
820
- + node.declarations.map(this.declaration, this).join(';\n')
990
+ + node.declarations.map(this.visit, this).join('\n')
821
991
  + this.indent(-1)
822
992
  + '\n}';
823
993
  };
@@ -829,20 +999,12 @@ Compiler.prototype.page = function(node){
829
999
  Compiler.prototype.rule = function(node){
830
1000
  var indent = this.indent();
831
1001
  var decls = node.declarations;
832
-
833
- if (this.compress) {
834
- if (!decls.length) return '';
835
-
836
- return node.selectors.join(',')
837
- + '{'
838
- + decls.map(this.declaration, this).join(';')
839
- + '}';
840
- }
1002
+ if (!decls.length) return '';
841
1003
 
842
1004
  return node.selectors.map(function(s){ return indent + s }).join(',\n')
843
1005
  + ' {\n'
844
1006
  + this.indent(1)
845
- + decls.map(this.declaration, this).join(';\n')
1007
+ + decls.map(this.visit, this).join('\n')
846
1008
  + this.indent(-1)
847
1009
  + '\n' + this.indent() + '}';
848
1010
  };
@@ -852,11 +1014,7 @@ Compiler.prototype.rule = function(node){
852
1014
  */
853
1015
 
854
1016
  Compiler.prototype.declaration = function(node){
855
- if (this.compress) {
856
- return node.property + ':' + node.value;
857
- }
858
-
859
- return this.indent() + node.property + ': ' + node.value;
1017
+ return this.indent() + node.property + ': ' + node.value + ';';
860
1018
  };
861
1019
 
862
1020
  /**
@@ -2458,13 +2616,13 @@ module.exports = {
2458
2616
  ],
2459
2617
  minor: true,
2460
2618
  popularity: [
2461
- 0.113747,
2462
- 1.29078,
2463
- 1.36002,
2464
- 0.00494553,
2465
- 1.90403,
2466
- 0.182984,
2467
- 0.0840739
2619
+ 0.11786,
2620
+ 1.33745,
2621
+ 1.40919,
2622
+ 0.00512434,
2623
+ 1.97287,
2624
+ 0.189601,
2625
+ 0.0871138
2468
2626
  ]
2469
2627
  },
2470
2628
  bb: {
@@ -2476,7 +2634,7 @@ module.exports = {
2476
2634
  minor: true,
2477
2635
  popularity: [
2478
2636
  0,
2479
- 0.102165
2637
+ 0.114401
2480
2638
  ]
2481
2639
  },
2482
2640
  chrome: {
@@ -2512,30 +2670,30 @@ module.exports = {
2512
2670
  28
2513
2671
  ],
2514
2672
  popularity: [
2515
- 0.19803,
2516
- 27.6639,
2517
- 1.61868,
2518
- 0.72324,
2519
- 0.6888,
2520
- 0.54243,
2521
- 0.5166,
2522
- 0.07749,
2523
- 0.07749,
2524
- 0.09471,
2525
- 0.09471,
2526
- 0.0861,
2527
- 0.12054,
2528
- 0.10332,
2529
- 0.11193,
2530
- 0.12054,
2531
- 0.15498,
2532
- 0.09471,
2533
- 0.03444,
2534
- 0.04305,
2535
- 0.02583,
2536
- 0.02583,
2537
- 0.02583,
2538
- 0.02583
2673
+ 6.23274,
2674
+ 23.488,
2675
+ 0.55497,
2676
+ 0.742806,
2677
+ 0.708654,
2678
+ 0.631812,
2679
+ 0.589122,
2680
+ 0.12807,
2681
+ 0.119532,
2682
+ 0.145146,
2683
+ 0.136608,
2684
+ 0.12807,
2685
+ 0.162222,
2686
+ 0.145146,
2687
+ 0.153684,
2688
+ 0.162222,
2689
+ 0.196374,
2690
+ 0.136608,
2691
+ 0.034152,
2692
+ 0.04269,
2693
+ 0.025614,
2694
+ 0.025614,
2695
+ 0.025614,
2696
+ 0.025614
2539
2697
  ]
2540
2698
  },
2541
2699
  ff: {
@@ -2569,28 +2727,28 @@ module.exports = {
2569
2727
  22
2570
2728
  ],
2571
2729
  popularity: [
2572
- 0.30996,
2573
- 8.15367,
2574
- 4.66662,
2575
- 0.3444,
2576
- 0.30135,
2577
- 0.70602,
2578
- 0.39606,
2579
- 0.26691,
2580
- 0.20664,
2581
- 0.40467,
2582
- 0.1722,
2583
- 0.19803,
2584
- 0.10332,
2585
- 0.0861,
2586
- 0.06888,
2587
- 0.06888,
2588
- 0.07749,
2589
- 0.12054,
2590
- 0.37884,
2591
- 0.06027,
2592
- 0.09471,
2593
- 0.02583
2730
+ 3.75672,
2731
+ 8.81122,
2732
+ 0.452514,
2733
+ 0.264678,
2734
+ 0.281754,
2735
+ 0.537894,
2736
+ 0.332982,
2737
+ 0.247602,
2738
+ 0.204912,
2739
+ 0.375672,
2740
+ 0.17076,
2741
+ 0.196374,
2742
+ 0.093918,
2743
+ 0.08538,
2744
+ 0.059766,
2745
+ 0.059766,
2746
+ 0.068304,
2747
+ 0.110994,
2748
+ 0.358596,
2749
+ 0.059766,
2750
+ 0.08538,
2751
+ 0.025614
2594
2752
  ]
2595
2753
  },
2596
2754
  ie: {
@@ -2607,11 +2765,11 @@ module.exports = {
2607
2765
  11
2608
2766
  ],
2609
2767
  popularity: [
2610
- 5.38881,
2611
- 11.6221,
2612
- 8.09627,
2613
- 0.513634,
2614
- 0.226347,
2768
+ 7.50785,
2769
+ 8.3027,
2770
+ 7.45601,
2771
+ 0.466541,
2772
+ 0.207351,
2615
2773
  0.009298
2616
2774
  ]
2617
2775
  },
@@ -2629,15 +2787,15 @@ module.exports = {
2629
2787
  3.2
2630
2788
  ],
2631
2789
  popularity: [
2632
- 3.01192,
2633
- 3.01192,
2634
- 0.3597855,
2635
- 0.3597855,
2636
- 0.065104,
2637
- 0.065104,
2638
- 0.00685305,
2639
- 0.00685305,
2640
- 0.00685306
2790
+ 3.094025,
2791
+ 3.094025,
2792
+ 0.352705,
2793
+ 0.352705,
2794
+ 0.055874,
2795
+ 0.055874,
2796
+ 0.00698425,
2797
+ 0.00698425,
2798
+ 0.00698426
2641
2799
  ]
2642
2800
  },
2643
2801
  opera: {
@@ -2660,18 +2818,18 @@ module.exports = {
2660
2818
  15
2661
2819
  ],
2662
2820
  popularity: [
2663
- 0.62853,
2664
- 0.07749,
2665
- 0.04305,
2666
- 0.01722,
2667
- 0.00861,
2668
- 0.00861,
2669
- 0.00861,
2821
+ 0.623274,
2822
+ 0.068304,
2823
+ 0.04269,
2824
+ 0.017076,
2825
+ 0.008538,
2826
+ 0.008538,
2827
+ 0.008538,
2670
2828
  0.008565,
2671
- 0.00861,
2672
- 0.00861,
2673
- 0.004305,
2674
- 0.004305
2829
+ 0.008538,
2830
+ 0.008538,
2831
+ 0.004269,
2832
+ 0.004269
2675
2833
  ]
2676
2834
  },
2677
2835
  safari: {
@@ -2685,10 +2843,10 @@ module.exports = {
2685
2843
  3.1
2686
2844
  ],
2687
2845
  popularity: [
2688
- 1.90281,
2689
- 1.35177,
2690
- 0.4305,
2691
- 0.12054,
2846
+ 1.91251,
2847
+ 1.25509,
2848
+ 0.401286,
2849
+ 0.110994,
2692
2850
  0.008692,
2693
2851
  0
2694
2852
  ]
@@ -2975,22 +3133,22 @@ module.exports = {
2975
3133
  var regexp;
2976
3134
  regexp = /to\s+(top|bottom)?\s*(left|right)?/ig;
2977
3135
  string = string.replace(regexp, function (_, ver, hor) {
2978
- var direct;
2979
- direct = [];
2980
- if (ver === 'top') {
2981
- direct.push('bottom');
2982
- }
2983
- if (ver === 'bottom') {
2984
- direct.push('top');
2985
- }
2986
- if (hor === 'right') {
2987
- direct.push('left');
2988
- }
2989
- if (hor === 'left') {
2990
- direct.push('right');
2991
- }
2992
- return direct.join(' ');
2993
- });
3136
+ var direct;
3137
+ direct = [];
3138
+ if (ver === 'top') {
3139
+ direct.push('bottom');
3140
+ }
3141
+ if (ver === 'bottom') {
3142
+ direct.push('top');
3143
+ }
3144
+ if (hor === 'right') {
3145
+ direct.push('left');
3146
+ }
3147
+ if (hor === 'left') {
3148
+ direct.push('right');
3149
+ }
3150
+ return direct.join(' ');
3151
+ });
2994
3152
  regexp = /(repeating-)?(linear|radial)-gradient/gi;
2995
3153
  string = string.replace(regexp, prefix + '$&');
2996
3154
  if (prefix !== '-webkit-') {
@@ -2998,17 +3156,17 @@ module.exports = {
2998
3156
  }
2999
3157
  regexp = /((repeating-)?(linear|radial)-gradient\()\s*(-?\d+deg)?/ig;
3000
3158
  return string.replace(regexp, function (_0, gradient, _1, _2, deg) {
3001
- if (deg) {
3002
- deg = parseInt(deg);
3003
- deg += 90;
3004
- if (deg > 360) {
3005
- deg -= 360;
3159
+ if (deg) {
3160
+ deg = parseInt(deg);
3161
+ deg += 90;
3162
+ if (deg > 360) {
3163
+ deg -= 360;
3164
+ }
3165
+ return gradient + deg + 'deg';
3166
+ } else {
3167
+ return gradient;
3006
3168
  }
3007
- return gradient + deg + 'deg';
3008
- } else {
3009
- return gradient;
3010
- }
3011
- });
3169
+ });
3012
3170
  }
3013
3171
  },
3014
3172
  "radial-gradient": {
@@ -3083,22 +3241,22 @@ module.exports = {
3083
3241
  var regexp;
3084
3242
  regexp = /to\s+(top|bottom)?\s*(left|right)?/ig;
3085
3243
  string = string.replace(regexp, function (_, ver, hor) {
3086
- var direct;
3087
- direct = [];
3088
- if (ver === 'top') {
3089
- direct.push('bottom');
3090
- }
3091
- if (ver === 'bottom') {
3092
- direct.push('top');
3093
- }
3094
- if (hor === 'right') {
3095
- direct.push('left');
3096
- }
3097
- if (hor === 'left') {
3098
- direct.push('right');
3099
- }
3100
- return direct.join(' ');
3101
- });
3244
+ var direct;
3245
+ direct = [];
3246
+ if (ver === 'top') {
3247
+ direct.push('bottom');
3248
+ }
3249
+ if (ver === 'bottom') {
3250
+ direct.push('top');
3251
+ }
3252
+ if (hor === 'right') {
3253
+ direct.push('left');
3254
+ }
3255
+ if (hor === 'left') {
3256
+ direct.push('right');
3257
+ }
3258
+ return direct.join(' ');
3259
+ });
3102
3260
  regexp = /(repeating-)?(linear|radial)-gradient/gi;
3103
3261
  string = string.replace(regexp, prefix + '$&');
3104
3262
  if (prefix !== '-webkit-') {
@@ -3106,17 +3264,17 @@ module.exports = {
3106
3264
  }
3107
3265
  regexp = /((repeating-)?(linear|radial)-gradient\()\s*(-?\d+deg)?/ig;
3108
3266
  return string.replace(regexp, function (_0, gradient, _1, _2, deg) {
3109
- if (deg) {
3110
- deg = parseInt(deg);
3111
- deg += 90;
3112
- if (deg > 360) {
3113
- deg -= 360;
3267
+ if (deg) {
3268
+ deg = parseInt(deg);
3269
+ deg += 90;
3270
+ if (deg > 360) {
3271
+ deg -= 360;
3272
+ }
3273
+ return gradient + deg + 'deg';
3274
+ } else {
3275
+ return gradient;
3114
3276
  }
3115
- return gradient + deg + 'deg';
3116
- } else {
3117
- return gradient;
3118
- }
3119
- });
3277
+ });
3120
3278
  }
3121
3279
  },
3122
3280
  "repeating-linear-gradient": {
@@ -3191,22 +3349,22 @@ module.exports = {
3191
3349
  var regexp;
3192
3350
  regexp = /to\s+(top|bottom)?\s*(left|right)?/ig;
3193
3351
  string = string.replace(regexp, function (_, ver, hor) {
3194
- var direct;
3195
- direct = [];
3196
- if (ver === 'top') {
3197
- direct.push('bottom');
3198
- }
3199
- if (ver === 'bottom') {
3200
- direct.push('top');
3201
- }
3202
- if (hor === 'right') {
3203
- direct.push('left');
3204
- }
3205
- if (hor === 'left') {
3206
- direct.push('right');
3207
- }
3208
- return direct.join(' ');
3209
- });
3352
+ var direct;
3353
+ direct = [];
3354
+ if (ver === 'top') {
3355
+ direct.push('bottom');
3356
+ }
3357
+ if (ver === 'bottom') {
3358
+ direct.push('top');
3359
+ }
3360
+ if (hor === 'right') {
3361
+ direct.push('left');
3362
+ }
3363
+ if (hor === 'left') {
3364
+ direct.push('right');
3365
+ }
3366
+ return direct.join(' ');
3367
+ });
3210
3368
  regexp = /(repeating-)?(linear|radial)-gradient/gi;
3211
3369
  string = string.replace(regexp, prefix + '$&');
3212
3370
  if (prefix !== '-webkit-') {
@@ -3214,17 +3372,17 @@ module.exports = {
3214
3372
  }
3215
3373
  regexp = /((repeating-)?(linear|radial)-gradient\()\s*(-?\d+deg)?/ig;
3216
3374
  return string.replace(regexp, function (_0, gradient, _1, _2, deg) {
3217
- if (deg) {
3218
- deg = parseInt(deg);
3219
- deg += 90;
3220
- if (deg > 360) {
3221
- deg -= 360;
3375
+ if (deg) {
3376
+ deg = parseInt(deg);
3377
+ deg += 90;
3378
+ if (deg > 360) {
3379
+ deg -= 360;
3380
+ }
3381
+ return gradient + deg + 'deg';
3382
+ } else {
3383
+ return gradient;
3222
3384
  }
3223
- return gradient + deg + 'deg';
3224
- } else {
3225
- return gradient;
3226
- }
3227
- });
3385
+ });
3228
3386
  }
3229
3387
  },
3230
3388
  "repeating-radial-gradient": {
@@ -3299,22 +3457,22 @@ module.exports = {
3299
3457
  var regexp;
3300
3458
  regexp = /to\s+(top|bottom)?\s*(left|right)?/ig;
3301
3459
  string = string.replace(regexp, function (_, ver, hor) {
3302
- var direct;
3303
- direct = [];
3304
- if (ver === 'top') {
3305
- direct.push('bottom');
3306
- }
3307
- if (ver === 'bottom') {
3308
- direct.push('top');
3309
- }
3310
- if (hor === 'right') {
3311
- direct.push('left');
3312
- }
3313
- if (hor === 'left') {
3314
- direct.push('right');
3315
- }
3316
- return direct.join(' ');
3317
- });
3460
+ var direct;
3461
+ direct = [];
3462
+ if (ver === 'top') {
3463
+ direct.push('bottom');
3464
+ }
3465
+ if (ver === 'bottom') {
3466
+ direct.push('top');
3467
+ }
3468
+ if (hor === 'right') {
3469
+ direct.push('left');
3470
+ }
3471
+ if (hor === 'left') {
3472
+ direct.push('right');
3473
+ }
3474
+ return direct.join(' ');
3475
+ });
3318
3476
  regexp = /(repeating-)?(linear|radial)-gradient/gi;
3319
3477
  string = string.replace(regexp, prefix + '$&');
3320
3478
  if (prefix !== '-webkit-') {
@@ -3322,17 +3480,17 @@ module.exports = {
3322
3480
  }
3323
3481
  regexp = /((repeating-)?(linear|radial)-gradient\()\s*(-?\d+deg)?/ig;
3324
3482
  return string.replace(regexp, function (_0, gradient, _1, _2, deg) {
3325
- if (deg) {
3326
- deg = parseInt(deg);
3327
- deg += 90;
3328
- if (deg > 360) {
3329
- deg -= 360;
3483
+ if (deg) {
3484
+ deg = parseInt(deg);
3485
+ deg += 90;
3486
+ if (deg > 360) {
3487
+ deg -= 360;
3488
+ }
3489
+ return gradient + deg + 'deg';
3490
+ } else {
3491
+ return gradient;
3330
3492
  }
3331
- return gradient + deg + 'deg';
3332
- } else {
3333
- return gradient;
3334
- }
3335
- });
3493
+ });
3336
3494
  }
3337
3495
  }
3338
3496
  };
@@ -7230,7 +7388,11 @@ Rules.prototype = {
7230
7388
  return;
7231
7389
  }
7232
7390
 
7233
- this.rules.splice(this.num, 0, { property: prop, value: value });
7391
+ this.rules.splice(this.num, 0, {
7392
+ type: 'declaration',
7393
+ property: prop,
7394
+ value: value
7395
+ });
7234
7396
  this.num += 1;
7235
7397
  },
7236
7398
 
@@ -7333,10 +7495,15 @@ var autoprefixer = {
7333
7495
  clone.keyframes = [];
7334
7496
  rule.keyframes.forEach(function (keyframe) {
7335
7497
  var keyframeClone = { };
7498
+ keyframeClone.type = keyframe.type;
7336
7499
  keyframeClone.values = keyframe.values.slice();
7337
7500
  keyframeClone.declarations = keyframe.declarations.map(
7338
7501
  function (i) {
7339
- return { property: i.property, value: i.value };
7502
+ var declClone = { };
7503
+ for ( var key in i ) {
7504
+ declClone[key] = i[key];
7505
+ }
7506
+ return declClone;
7340
7507
  });
7341
7508
 
7342
7509
  clone.keyframes.push(keyframeClone);
@@ -7713,6 +7880,8 @@ require.alias("visionmedia-css/index.js", "visionmedia-rework/deps/css/index.js"
7713
7880
  require.alias("visionmedia-css-parse/index.js", "visionmedia-css/deps/css-parse/index.js");
7714
7881
 
7715
7882
  require.alias("visionmedia-css-stringify/index.js", "visionmedia-css/deps/css-stringify/index.js");
7883
+ require.alias("visionmedia-css-stringify/lib/compress.js", "visionmedia-css/deps/css-stringify/lib/compress.js");
7884
+ require.alias("visionmedia-css-stringify/lib/identity.js", "visionmedia-css/deps/css-stringify/lib/identity.js");
7716
7885
 
7717
7886
  require.alias("visionmedia-debug/index.js", "visionmedia-rework/deps/debug/index.js");
7718
7887
  require.alias("visionmedia-debug/debug.js", "visionmedia-rework/deps/debug/debug.js");
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autoprefixer-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.20130530
4
+ version: 0.4.20130603
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-30 00:00:00.000000000 Z
12
+ date: 2013-06-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: execjs
@@ -82,7 +82,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
82
82
  version: '0'
83
83
  segments:
84
84
  - 0
85
- hash: -1982466886575690400
85
+ hash: 666721451048449592
86
86
  required_rubygems_version: !ruby/object:Gem::Requirement
87
87
  none: false
88
88
  requirements:
@@ -91,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
91
  version: '0'
92
92
  segments:
93
93
  - 0
94
- hash: -1982466886575690400
94
+ hash: 666721451048449592
95
95
  requirements: []
96
96
  rubyforge_project:
97
97
  rubygems_version: 1.8.23