autoprefixer-rails 0.3.20130502 → 0.4.20130507
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +5 -0
- data/Gemfile.lock +2 -2
- data/README.md +1 -0
- data/lib/autoprefixer-rails/version.rb +1 -1
- data/vendor/autoprefixer.js +328 -39
- metadata +4 -4
data/ChangeLog
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
== 0.4 (Winter Is Coming)
|
2
|
+
* Remove outdated prefixes.
|
3
|
+
* Add border-radius and box-shadow properties to database.
|
4
|
+
* Change degrees in webkit gradients.
|
5
|
+
|
1
6
|
== 0.3 (Growing Strong)
|
2
7
|
* Use own filters instead of Rework’s `prefix` and `prefixValue`.
|
3
8
|
* 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
|
+
autoprefixer-rails (0.4.20130507)
|
5
5
|
execjs
|
6
6
|
|
7
7
|
GEM
|
@@ -50,7 +50,7 @@ GEM
|
|
50
50
|
mime-types (~> 1.16)
|
51
51
|
treetop (~> 1.4.8)
|
52
52
|
mime-types (1.23)
|
53
|
-
multi_json (1.7.
|
53
|
+
multi_json (1.7.3)
|
54
54
|
polyglot (0.3.3)
|
55
55
|
rack (1.4.5)
|
56
56
|
rack-cache (1.2)
|
data/README.md
CHANGED
@@ -44,6 +44,7 @@ Sponsored by [Evil Martians](http://evilmartians.com/).
|
|
44
44
|
* Properties and browsers database is updated automatically
|
45
45
|
(from [Can I Use](http://caniuse.com/)), so prefixes will be always actual
|
46
46
|
(scripts don’t have holidays and work).
|
47
|
+
* Remove outdated prefixes to clean libraries and legacy code.
|
47
48
|
* It also adds prefixes to the values. For example, to `calc(1em + 5px)` or
|
48
49
|
to properties names in `transition`.
|
49
50
|
|
data/vendor/autoprefixer.js
CHANGED
@@ -2744,7 +2744,26 @@ module.exports = {
|
|
2744
2744
|
"ios 4.3",
|
2745
2745
|
"ios 5.0",
|
2746
2746
|
"ios 5.1"
|
2747
|
-
]
|
2747
|
+
],
|
2748
|
+
replace: function (string, prefix) {
|
2749
|
+
var regexp;
|
2750
|
+
if (prefix !== '-webkit-') {
|
2751
|
+
return;
|
2752
|
+
}
|
2753
|
+
regexp = /((repeating-)?(linear|radial)-gradient\()\s*(-?\d+deg)?/g;
|
2754
|
+
return string.replace(regexp, function (_0, gradient, _1, _2, deg) {
|
2755
|
+
if (deg) {
|
2756
|
+
deg = parseInt(deg);
|
2757
|
+
deg += 90;
|
2758
|
+
if (deg > 360) {
|
2759
|
+
deg -= 360;
|
2760
|
+
}
|
2761
|
+
return prefix + gradient + deg + 'deg';
|
2762
|
+
} else {
|
2763
|
+
return prefix + gradient;
|
2764
|
+
}
|
2765
|
+
});
|
2766
|
+
}
|
2748
2767
|
},
|
2749
2768
|
"radial-gradient": {
|
2750
2769
|
props: [
|
@@ -2803,7 +2822,26 @@ module.exports = {
|
|
2803
2822
|
"ios 4.3",
|
2804
2823
|
"ios 5.0",
|
2805
2824
|
"ios 5.1"
|
2806
|
-
]
|
2825
|
+
],
|
2826
|
+
replace: function (string, prefix) {
|
2827
|
+
var regexp;
|
2828
|
+
if (prefix !== '-webkit-') {
|
2829
|
+
return;
|
2830
|
+
}
|
2831
|
+
regexp = /((repeating-)?(linear|radial)-gradient\()\s*(-?\d+deg)?/g;
|
2832
|
+
return string.replace(regexp, function (_0, gradient, _1, _2, deg) {
|
2833
|
+
if (deg) {
|
2834
|
+
deg = parseInt(deg);
|
2835
|
+
deg += 90;
|
2836
|
+
if (deg > 360) {
|
2837
|
+
deg -= 360;
|
2838
|
+
}
|
2839
|
+
return prefix + gradient + deg + 'deg';
|
2840
|
+
} else {
|
2841
|
+
return prefix + gradient;
|
2842
|
+
}
|
2843
|
+
});
|
2844
|
+
}
|
2807
2845
|
},
|
2808
2846
|
"repeating-linear-gradient": {
|
2809
2847
|
props: [
|
@@ -2862,7 +2900,26 @@ module.exports = {
|
|
2862
2900
|
"ios 4.3",
|
2863
2901
|
"ios 5.0",
|
2864
2902
|
"ios 5.1"
|
2865
|
-
]
|
2903
|
+
],
|
2904
|
+
replace: function (string, prefix) {
|
2905
|
+
var regexp;
|
2906
|
+
if (prefix !== '-webkit-') {
|
2907
|
+
return;
|
2908
|
+
}
|
2909
|
+
regexp = /((repeating-)?(linear|radial)-gradient\()\s*(-?\d+deg)?/g;
|
2910
|
+
return string.replace(regexp, function (_0, gradient, _1, _2, deg) {
|
2911
|
+
if (deg) {
|
2912
|
+
deg = parseInt(deg);
|
2913
|
+
deg += 90;
|
2914
|
+
if (deg > 360) {
|
2915
|
+
deg -= 360;
|
2916
|
+
}
|
2917
|
+
return prefix + gradient + deg + 'deg';
|
2918
|
+
} else {
|
2919
|
+
return prefix + gradient;
|
2920
|
+
}
|
2921
|
+
});
|
2922
|
+
}
|
2866
2923
|
},
|
2867
2924
|
"repeating-radial-gradient": {
|
2868
2925
|
props: [
|
@@ -2921,7 +2978,26 @@ module.exports = {
|
|
2921
2978
|
"ios 4.3",
|
2922
2979
|
"ios 5.0",
|
2923
2980
|
"ios 5.1"
|
2924
|
-
]
|
2981
|
+
],
|
2982
|
+
replace: function (string, prefix) {
|
2983
|
+
var regexp;
|
2984
|
+
if (prefix !== '-webkit-') {
|
2985
|
+
return;
|
2986
|
+
}
|
2987
|
+
regexp = /((repeating-)?(linear|radial)-gradient\()\s*(-?\d+deg)?/g;
|
2988
|
+
return string.replace(regexp, function (_0, gradient, _1, _2, deg) {
|
2989
|
+
if (deg) {
|
2990
|
+
deg = parseInt(deg);
|
2991
|
+
deg += 90;
|
2992
|
+
if (deg > 360) {
|
2993
|
+
deg -= 360;
|
2994
|
+
}
|
2995
|
+
return prefix + gradient + deg + 'deg';
|
2996
|
+
} else {
|
2997
|
+
return prefix + gradient;
|
2998
|
+
}
|
2999
|
+
});
|
3000
|
+
}
|
2925
3001
|
}
|
2926
3002
|
};
|
2927
3003
|
|
@@ -3728,6 +3804,110 @@ module.exports = {
|
|
3728
3804
|
],
|
3729
3805
|
transition: true
|
3730
3806
|
},
|
3807
|
+
"border-bottom-left-radius": {
|
3808
|
+
browsers: [
|
3809
|
+
"ff 2",
|
3810
|
+
"ff 3",
|
3811
|
+
"ff 3.5",
|
3812
|
+
"ff 3.6",
|
3813
|
+
"chrome 4",
|
3814
|
+
"safari 4",
|
3815
|
+
"safari 3.1",
|
3816
|
+
"safari 3.2",
|
3817
|
+
"ios 3.2"
|
3818
|
+
],
|
3819
|
+
transition: true,
|
3820
|
+
prefixed: {
|
3821
|
+
"-moz-": "moz-border-radius-bottomleft"
|
3822
|
+
}
|
3823
|
+
},
|
3824
|
+
"border-bottom-right-radius": {
|
3825
|
+
browsers: [
|
3826
|
+
"ff 2",
|
3827
|
+
"ff 3",
|
3828
|
+
"ff 3.5",
|
3829
|
+
"ff 3.6",
|
3830
|
+
"chrome 4",
|
3831
|
+
"safari 4",
|
3832
|
+
"safari 3.1",
|
3833
|
+
"safari 3.2",
|
3834
|
+
"ios 3.2"
|
3835
|
+
],
|
3836
|
+
transition: true,
|
3837
|
+
prefixed: {
|
3838
|
+
"-moz-": "moz-border-radius-bottomright"
|
3839
|
+
}
|
3840
|
+
},
|
3841
|
+
"border-radius": {
|
3842
|
+
browsers: [
|
3843
|
+
"ff 2",
|
3844
|
+
"ff 3",
|
3845
|
+
"ff 3.5",
|
3846
|
+
"ff 3.6",
|
3847
|
+
"chrome 4",
|
3848
|
+
"safari 4",
|
3849
|
+
"safari 3.1",
|
3850
|
+
"safari 3.2",
|
3851
|
+
"ios 3.2"
|
3852
|
+
],
|
3853
|
+
transition: true
|
3854
|
+
},
|
3855
|
+
"border-top-left-radius": {
|
3856
|
+
browsers: [
|
3857
|
+
"ff 2",
|
3858
|
+
"ff 3",
|
3859
|
+
"ff 3.5",
|
3860
|
+
"ff 3.6",
|
3861
|
+
"chrome 4",
|
3862
|
+
"safari 4",
|
3863
|
+
"safari 3.1",
|
3864
|
+
"safari 3.2",
|
3865
|
+
"ios 3.2"
|
3866
|
+
],
|
3867
|
+
transition: true,
|
3868
|
+
prefixed: {
|
3869
|
+
"-moz-": "moz-border-radius-topleft"
|
3870
|
+
}
|
3871
|
+
},
|
3872
|
+
"border-top-right-radius": {
|
3873
|
+
browsers: [
|
3874
|
+
"ff 2",
|
3875
|
+
"ff 3",
|
3876
|
+
"ff 3.5",
|
3877
|
+
"ff 3.6",
|
3878
|
+
"chrome 4",
|
3879
|
+
"safari 4",
|
3880
|
+
"safari 3.1",
|
3881
|
+
"safari 3.2",
|
3882
|
+
"ios 3.2"
|
3883
|
+
],
|
3884
|
+
transition: true,
|
3885
|
+
prefixed: {
|
3886
|
+
"-moz-": "moz-border-radius-topright"
|
3887
|
+
}
|
3888
|
+
},
|
3889
|
+
"box-shadow": {
|
3890
|
+
browsers: [
|
3891
|
+
"ff 3.5",
|
3892
|
+
"ff 3.6",
|
3893
|
+
"chrome 4",
|
3894
|
+
"chrome 5",
|
3895
|
+
"chrome 6",
|
3896
|
+
"chrome 7",
|
3897
|
+
"chrome 8",
|
3898
|
+
"chrome 9",
|
3899
|
+
"safari 4",
|
3900
|
+
"safari 5",
|
3901
|
+
"safari 3.1",
|
3902
|
+
"safari 3.2",
|
3903
|
+
"ios 3.2",
|
3904
|
+
"ios 4.0",
|
3905
|
+
"ios 4.1",
|
3906
|
+
"ios 4.2",
|
3907
|
+
"ios 4.3"
|
3908
|
+
],
|
3909
|
+
transition: true
|
3910
|
+
},
|
3731
3911
|
"box-sizing": {
|
3732
3912
|
browsers: [
|
3733
3913
|
"ff 2",
|
@@ -6058,6 +6238,7 @@ require.register("autoprefixer/lib/autoprefixer.js", function(exports, require,
|
|
6058
6238
|
* You should have received a copy of the GNU Lesser General Public License
|
6059
6239
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
6060
6240
|
*/
|
6241
|
+
(function () {
|
6061
6242
|
'use strict';
|
6062
6243
|
|
6063
6244
|
var rework = require('rework');
|
@@ -6075,7 +6256,7 @@ var uniq = function (array) {
|
|
6075
6256
|
|
6076
6257
|
// Split prefix and property name.
|
6077
6258
|
var splitPrefix = function (prop) {
|
6078
|
-
if ( prop[0]
|
6259
|
+
if ( prop[0] === '-' ) {
|
6079
6260
|
var sep = prop.indexOf('-', 1) + 1;
|
6080
6261
|
return { prefix: prop.slice(0, sep), name: prop.slice(sep) };
|
6081
6262
|
} else {
|
@@ -6086,7 +6267,7 @@ var splitPrefix = function (prop) {
|
|
6086
6267
|
// Generate RegExp to test, does CSS value contain some `word`.
|
6087
6268
|
var containRegexp = function (word) {
|
6088
6269
|
return new RegExp('(^|\\s|,|\\()' +
|
6089
|
-
word.replace(/([
|
6270
|
+
word.replace(/([.?*+\^\$\[\]\\(){}|\-])/g, "\\$1") +
|
6090
6271
|
'($|\\s|\\()', 'ig');
|
6091
6272
|
};
|
6092
6273
|
|
@@ -6144,28 +6325,31 @@ var autoprefixer = {
|
|
6144
6325
|
requirements = [requirements];
|
6145
6326
|
}
|
6146
6327
|
|
6147
|
-
var browsers
|
6148
|
-
var
|
6328
|
+
var browsers = this.parse(requirements);
|
6329
|
+
var values = this.filter(this.data.values, browsers);
|
6330
|
+
var props = this.filter(this.data.props, browsers);
|
6331
|
+
var prefixes = this.prefixes(props, values);
|
6332
|
+
var unprefixes = this.unprefixes(props, values);
|
6149
6333
|
|
6150
|
-
return function (style
|
6151
|
-
autoprefixer.
|
6334
|
+
return function (style) {
|
6335
|
+
autoprefixer.unprefixer(unprefixes, style);
|
6336
|
+
autoprefixer.prefixer(prefixes, style);
|
6152
6337
|
};
|
6153
6338
|
},
|
6154
6339
|
|
6155
|
-
// Change `style` declarations in parsed
|
6156
|
-
prefixer: function (props, style
|
6340
|
+
// Change `style` declarations in parsed CSS, to add prefixes for `props`.
|
6341
|
+
prefixer: function (props, style) {
|
6157
6342
|
if ( props['@keyframes'] ) {
|
6158
6343
|
// Keyframes
|
6159
|
-
|
6160
|
-
style.rules.forEach(function(rule) {
|
6344
|
+
style.rules.forEach(function(rule) {
|
6161
6345
|
if ( !rule.keyframes ) {
|
6162
6346
|
return;
|
6163
6347
|
}
|
6164
6348
|
|
6165
6349
|
props['@keyframes'].prefixes.forEach(function (prefix) {
|
6166
6350
|
var contain = style.rules.some(function (other) {
|
6167
|
-
return other.keyframes && rule.name
|
6168
|
-
other.vendor
|
6351
|
+
return other.keyframes && rule.name === other.name &&
|
6352
|
+
other.vendor === prefix;
|
6169
6353
|
});
|
6170
6354
|
if ( contain ) {
|
6171
6355
|
return;
|
@@ -6207,7 +6391,7 @@ var autoprefixer = {
|
|
6207
6391
|
|
6208
6392
|
var contain = function (rules, prop, value) {
|
6209
6393
|
return rules.some(function (rule) {
|
6210
|
-
return rule.property
|
6394
|
+
return rule.property === prop && rule.value === value;
|
6211
6395
|
});
|
6212
6396
|
};
|
6213
6397
|
var add = function (rules, num, prop, value) {
|
@@ -6218,11 +6402,12 @@ var autoprefixer = {
|
|
6218
6402
|
rules.splice(num, 0, { property: prop, value: value });
|
6219
6403
|
return num + 1;
|
6220
6404
|
};
|
6405
|
+
var num, rule, prop;
|
6221
6406
|
|
6222
6407
|
// Properties
|
6223
|
-
for (
|
6224
|
-
|
6225
|
-
|
6408
|
+
for ( num = 0; num < rules.length; num += 1 ) {
|
6409
|
+
rule = rules[num];
|
6410
|
+
prop = props[rule.property];
|
6226
6411
|
|
6227
6412
|
if ( !prop || !prop.prefixes ) {
|
6228
6413
|
continue;
|
@@ -6232,14 +6417,14 @@ var autoprefixer = {
|
|
6232
6417
|
}
|
6233
6418
|
|
6234
6419
|
prop.prefixes.forEach(function (prefix) {
|
6235
|
-
if ( vendor && vendor
|
6420
|
+
if ( vendor && vendor !== prefix ) {
|
6236
6421
|
return;
|
6237
6422
|
}
|
6238
6423
|
var wrong = prefixes.some(function (other) {
|
6239
|
-
if ( other
|
6424
|
+
if ( other === prefix ) {
|
6240
6425
|
return false;
|
6241
6426
|
}
|
6242
|
-
return rule.value.indexOf(other)
|
6427
|
+
return rule.value.indexOf(other) !== -1;
|
6243
6428
|
});
|
6244
6429
|
if ( wrong ) {
|
6245
6430
|
return;
|
@@ -6247,15 +6432,15 @@ var autoprefixer = {
|
|
6247
6432
|
|
6248
6433
|
num = add(rules, num, prefix + rule.property, rule.value);
|
6249
6434
|
});
|
6250
|
-
}
|
6435
|
+
}
|
6251
6436
|
|
6252
6437
|
// Values
|
6253
|
-
for (
|
6254
|
-
|
6438
|
+
for ( num = 0; num < rules.length; num += 1 ) {
|
6439
|
+
rule = rules[num];
|
6255
6440
|
|
6256
|
-
var split
|
6257
|
-
var prop = props[split.name];
|
6441
|
+
var split = splitPrefix(rule.property);
|
6258
6442
|
var propVendor = split.prefix || vendor;
|
6443
|
+
prop = props[split.name];
|
6259
6444
|
|
6260
6445
|
var valuePrefixer = function (values) {
|
6261
6446
|
var prefixed = { };
|
@@ -6267,12 +6452,22 @@ var autoprefixer = {
|
|
6267
6452
|
}
|
6268
6453
|
|
6269
6454
|
value.prefixes.forEach(function (prefix) {
|
6270
|
-
if ( propVendor && propVendor
|
6455
|
+
if ( propVendor && propVendor !== prefix ) {
|
6271
6456
|
return;
|
6272
6457
|
}
|
6273
6458
|
if ( !prefixed[prefix]) {
|
6274
6459
|
prefixed[prefix] = rule.value;
|
6275
6460
|
}
|
6461
|
+
if ( value.replace ) {
|
6462
|
+
if ( prefixed[prefix].match(value.regexp) ) {
|
6463
|
+
var replaced = value.replace(
|
6464
|
+
prefixed[prefix], prefix);
|
6465
|
+
if ( replaced ) {
|
6466
|
+
prefixed[prefix] = replaced;
|
6467
|
+
return;
|
6468
|
+
}
|
6469
|
+
}
|
6470
|
+
}
|
6276
6471
|
prefixed[prefix] = prefixed[prefix].replace(
|
6277
6472
|
value.regexp, '$1' + prefix + name + '$2');
|
6278
6473
|
});
|
@@ -6280,7 +6475,7 @@ var autoprefixer = {
|
|
6280
6475
|
|
6281
6476
|
|
6282
6477
|
for ( var prefix in prefixed ) {
|
6283
|
-
if ( prefixed[prefix]
|
6478
|
+
if ( prefixed[prefix] !== rule.value ) {
|
6284
6479
|
if ( propVendor ) {
|
6285
6480
|
var exists = contain(rules, rule.property,
|
6286
6481
|
prefixed[prefix]);
|
@@ -6310,9 +6505,47 @@ var autoprefixer = {
|
|
6310
6505
|
});
|
6311
6506
|
},
|
6312
6507
|
|
6508
|
+
// Change `style` declarations in parsed CSS, to remove `remove`.
|
6509
|
+
unprefixer: function (remove, style) {
|
6510
|
+
var all = remove.values['*'];
|
6511
|
+
|
6512
|
+
// Keyframes
|
6513
|
+
style.rules = style.rules.filter(function (rule) {
|
6514
|
+
return !(rule.keyframes && remove.keyframes[rule.vendor]);
|
6515
|
+
});
|
6516
|
+
|
6517
|
+
rework.visit.declarations(style, function (rules) {
|
6518
|
+
for ( var num = 0; num < rules.length; num += 1 ) {
|
6519
|
+
var rule = rules[num];
|
6520
|
+
|
6521
|
+
// Properties
|
6522
|
+
if ( remove.props[rule.property] ) {
|
6523
|
+
rules.splice(num, 1);
|
6524
|
+
continue;
|
6525
|
+
}
|
6526
|
+
|
6527
|
+
// Values
|
6528
|
+
var prop = splitPrefix(rule.property).name;
|
6529
|
+
var values = all;
|
6530
|
+
if ( remove.values[prop] ) {
|
6531
|
+
values = values.concat(remove.values[prop]);
|
6532
|
+
}
|
6533
|
+
if ( prop === 'transition' || prop === 'transition-property' ) {
|
6534
|
+
values = values.concat(remove.transition);
|
6535
|
+
}
|
6536
|
+
values.forEach(function (value) {
|
6537
|
+
if ( rule.value.match(value) ) {
|
6538
|
+
rules.splice(num, 1);
|
6539
|
+
return false;
|
6540
|
+
}
|
6541
|
+
});
|
6542
|
+
}
|
6543
|
+
});
|
6544
|
+
},
|
6545
|
+
|
6313
6546
|
// Return array of browsers for requirements in free form.
|
6314
6547
|
parse: function (requirements) {
|
6315
|
-
if ( requirements.length
|
6548
|
+
if ( requirements.length === 0 ) {
|
6316
6549
|
requirements = ['last 2 versions'];
|
6317
6550
|
}
|
6318
6551
|
|
@@ -6395,18 +6628,18 @@ var autoprefixer = {
|
|
6395
6628
|
for ( var name in data ) {
|
6396
6629
|
var need = data[name].browsers;
|
6397
6630
|
var prefixes = browsers.filter(function (browser) {
|
6398
|
-
return need.indexOf(browser)
|
6631
|
+
return need.indexOf(browser) !== -1;
|
6399
6632
|
}).map(function (browser) {
|
6400
6633
|
var key = browser.split(' ')[0];
|
6401
6634
|
return autoprefixer.data.browsers[key].prefix;
|
6402
|
-
}).sort(function (a, b) { return b.length - a.length });
|
6635
|
+
}).sort(function (a, b) { return b.length - a.length; });
|
6403
6636
|
|
6404
6637
|
if ( prefixes.length ) {
|
6405
6638
|
prefixes = uniq(prefixes);
|
6406
6639
|
|
6407
|
-
var obj = { prefixes: prefixes }
|
6640
|
+
var obj = { prefixes: prefixes };
|
6408
6641
|
for ( var key in data[name] ) {
|
6409
|
-
if ( key
|
6642
|
+
if ( key === 'browsers' ) {
|
6410
6643
|
continue;
|
6411
6644
|
}
|
6412
6645
|
obj[key] = data[name][key];
|
@@ -6423,10 +6656,7 @@ var autoprefixer = {
|
|
6423
6656
|
},
|
6424
6657
|
|
6425
6658
|
// Return properties, which them prefixed values inside.
|
6426
|
-
prefixes: function (
|
6427
|
-
var values = this.filter(this.data.values, browsers);
|
6428
|
-
var props = this.filter(this.data.props, browsers);
|
6429
|
-
|
6659
|
+
prefixes: function (props, values) {
|
6430
6660
|
for ( var name in values ) {
|
6431
6661
|
values[name].props.forEach(function (prop) {
|
6432
6662
|
if ( !props[prop] ) {
|
@@ -6440,10 +6670,69 @@ var autoprefixer = {
|
|
6440
6670
|
}
|
6441
6671
|
|
6442
6672
|
return props;
|
6673
|
+
},
|
6674
|
+
|
6675
|
+
// Return old properties and values to remove.
|
6676
|
+
unprefixes: function (props, values) {
|
6677
|
+
var remove = { props: {}, values: {}, transition: [], keyframes: {} };
|
6678
|
+
var name, prefixes, prop, value, names;
|
6679
|
+
|
6680
|
+
for ( name in this.data.props ) {
|
6681
|
+
prop = this.data.props[name];
|
6682
|
+
prefixes = prop.browsers.map(function (b) {
|
6683
|
+
var key = b.split(' ')[0];
|
6684
|
+
return autoprefixer.data.browsers[key].prefix;
|
6685
|
+
});
|
6686
|
+
uniq(prefixes).filter(function (prefix) {
|
6687
|
+
if ( !props[name] ) {
|
6688
|
+
return true;
|
6689
|
+
}
|
6690
|
+
return props[name].prefixes.indexOf(prefix) === -1;
|
6691
|
+
}).forEach(function (prefix) {
|
6692
|
+
if ( prop.transition ) {
|
6693
|
+
remove.transition.push(containRegexp(prefix + name));
|
6694
|
+
}
|
6695
|
+
if ( name === '@keyframes' ) {
|
6696
|
+
remove.keyframes[prefix] = true;
|
6697
|
+
} else {
|
6698
|
+
if ( prop.prefixed && prop.prefixed[prefix] ) {
|
6699
|
+
remove.props[prop.prefixed[prefix]] = true;
|
6700
|
+
} else {
|
6701
|
+
remove.props[prefix + name] = true;
|
6702
|
+
}
|
6703
|
+
}
|
6704
|
+
});
|
6705
|
+
}
|
6706
|
+
|
6707
|
+
for ( name in this.data.values ) {
|
6708
|
+
value = this.data.values[name];
|
6709
|
+
prefixes = value.browsers.map(function (b) {
|
6710
|
+
var key = b.split(' ')[0];
|
6711
|
+
return autoprefixer.data.browsers[key].prefix;
|
6712
|
+
});
|
6713
|
+
names = uniq(prefixes).filter(function (prefix) {
|
6714
|
+
if ( !values[name] ) {
|
6715
|
+
return true;
|
6716
|
+
}
|
6717
|
+
return values[name].prefixes.indexOf(prefix) === -1;
|
6718
|
+
}).map(function (prefix) {
|
6719
|
+
return containRegexp(prefix + name);
|
6720
|
+
});
|
6721
|
+
|
6722
|
+
value.props.forEach(function (prop) {
|
6723
|
+
if ( !remove.values[prop] ) {
|
6724
|
+
remove.values[prop] = [];
|
6725
|
+
}
|
6726
|
+
remove.values[prop] = remove.values[prop].concat(names);
|
6727
|
+
});
|
6728
|
+
}
|
6729
|
+
|
6730
|
+
return remove;
|
6443
6731
|
}
|
6444
6732
|
};
|
6445
6733
|
|
6446
6734
|
module.exports = autoprefixer;
|
6735
|
+
})();
|
6447
6736
|
|
6448
6737
|
});
|
6449
6738
|
require.alias("visionmedia-rework/index.js", "autoprefixer/deps/rework/index.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
|
+
version: 0.4.20130507
|
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-
|
12
|
+
date: 2013-05-07 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: -
|
85
|
+
hash: -3871692389760765521
|
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: -
|
94
|
+
hash: -3871692389760765521
|
95
95
|
requirements: []
|
96
96
|
rubyforge_project:
|
97
97
|
rubygems_version: 1.8.23
|