autoprefixer-rails 0.3.20130427 → 0.3.20130502
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 +4 -0
- data/Gemfile.lock +2 -2
- data/lib/autoprefixer-rails/version.rb +1 -1
- data/vendor/autoprefixer.js +89 -28
- metadata +4 -4
data/ChangeLog
CHANGED
@@ -12,6 +12,10 @@
|
|
12
12
|
20130427:
|
13
13
|
* Prefix several same values in one property.
|
14
14
|
|
15
|
+
20130502:
|
16
|
+
* Don’t add -webkit- prefix to IE filter.
|
17
|
+
* Don’t duplicate already prefixed rules.
|
18
|
+
|
15
19
|
== 0.2 (Hear Me Roar!)
|
16
20
|
* Update parse libraries.
|
17
21
|
* Add inspect method and rake tast.
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
autoprefixer-rails (0.3.
|
4
|
+
autoprefixer-rails (0.3.20130502)
|
5
5
|
execjs
|
6
6
|
|
7
7
|
GEM
|
@@ -98,7 +98,7 @@ GEM
|
|
98
98
|
libv8 (~> 3.11.8.12)
|
99
99
|
ref
|
100
100
|
thor (0.18.1)
|
101
|
-
tilt (1.
|
101
|
+
tilt (1.4.0)
|
102
102
|
treetop (1.4.12)
|
103
103
|
polyglot
|
104
104
|
polyglot (>= 0.3.1)
|
data/vendor/autoprefixer.js
CHANGED
@@ -4657,7 +4657,10 @@ module.exports = {
|
|
4657
4657
|
"safari 6",
|
4658
4658
|
"ios 6"
|
4659
4659
|
],
|
4660
|
-
transition: true
|
4660
|
+
transition: true,
|
4661
|
+
check: function () {
|
4662
|
+
return !this.match(/DXImageTransform\.Microsoft/);
|
4663
|
+
}
|
4661
4664
|
},
|
4662
4665
|
flex: {
|
4663
4666
|
browsers: [
|
@@ -6152,7 +6155,41 @@ var autoprefixer = {
|
|
6152
6155
|
// Change `style` declarations in parsed `css`, to add prefixes for `props`.
|
6153
6156
|
prefixer: function (props, style, css) {
|
6154
6157
|
if ( props['@keyframes'] ) {
|
6155
|
-
|
6158
|
+
// Keyframes
|
6159
|
+
|
6160
|
+
style.rules.forEach(function(rule) {
|
6161
|
+
if ( !rule.keyframes ) {
|
6162
|
+
return;
|
6163
|
+
}
|
6164
|
+
|
6165
|
+
props['@keyframes'].prefixes.forEach(function (prefix) {
|
6166
|
+
var contain = style.rules.some(function (other) {
|
6167
|
+
return other.keyframes && rule.name == other.name &&
|
6168
|
+
other.vendor == prefix;
|
6169
|
+
});
|
6170
|
+
if ( contain ) {
|
6171
|
+
return;
|
6172
|
+
}
|
6173
|
+
|
6174
|
+
var clone = { name: rule.name };
|
6175
|
+
clone.vendor = rule.vendor;
|
6176
|
+
clone.keyframes = [];
|
6177
|
+
rule.keyframes.forEach(function (keyframe) {
|
6178
|
+
var keyframeClone = { };
|
6179
|
+
keyframeClone.values = keyframe.values.slice();
|
6180
|
+
keyframeClone.declarations = keyframe.declarations.map(
|
6181
|
+
function (i) {
|
6182
|
+
return { property: i.property, value: i.value };
|
6183
|
+
});
|
6184
|
+
|
6185
|
+
clone.keyframes.push(keyframeClone);
|
6186
|
+
});
|
6187
|
+
|
6188
|
+
|
6189
|
+
clone.vendor = prefix;
|
6190
|
+
style.rules.push(clone);
|
6191
|
+
});
|
6192
|
+
});
|
6156
6193
|
}
|
6157
6194
|
|
6158
6195
|
var all = props['*'];
|
@@ -6165,7 +6202,22 @@ var autoprefixer = {
|
|
6165
6202
|
var isTransition = /(-(webkit|moz|ms|o)-)?transition(-property)?/;
|
6166
6203
|
|
6167
6204
|
rework.visit.declarations(style, function (rules, node) {
|
6168
|
-
var vendor
|
6205
|
+
var vendor = node.vendor;
|
6206
|
+
var prefixes = ['-webkit-', '-moz-', '-ms-', '-o-'];
|
6207
|
+
|
6208
|
+
var contain = function (rules, prop, value) {
|
6209
|
+
return rules.some(function (rule) {
|
6210
|
+
return rule.property == prop && rule.value == value;
|
6211
|
+
});
|
6212
|
+
};
|
6213
|
+
var add = function (rules, num, prop, value) {
|
6214
|
+
if ( contain(rules, prop, value) ) {
|
6215
|
+
return num;
|
6216
|
+
}
|
6217
|
+
|
6218
|
+
rules.splice(num, 0, { property: prop, value: value });
|
6219
|
+
return num + 1;
|
6220
|
+
};
|
6169
6221
|
|
6170
6222
|
// Properties
|
6171
6223
|
for ( var num = 0; num < rules.length; num += 1 ) {
|
@@ -6175,17 +6227,25 @@ var autoprefixer = {
|
|
6175
6227
|
if ( !prop || !prop.prefixes ) {
|
6176
6228
|
continue;
|
6177
6229
|
}
|
6230
|
+
if ( prop.check && !prop.check.call(rule.value, rule) ) {
|
6231
|
+
continue;
|
6232
|
+
}
|
6178
6233
|
|
6179
6234
|
prop.prefixes.forEach(function (prefix) {
|
6180
6235
|
if ( vendor && vendor != prefix ) {
|
6181
6236
|
return;
|
6182
6237
|
}
|
6183
|
-
|
6184
|
-
|
6185
|
-
|
6186
|
-
|
6238
|
+
var wrong = prefixes.some(function (other) {
|
6239
|
+
if ( other == prefix ) {
|
6240
|
+
return false;
|
6241
|
+
}
|
6242
|
+
return rule.value.indexOf(other) != -1;
|
6187
6243
|
});
|
6188
|
-
|
6244
|
+
if ( wrong ) {
|
6245
|
+
return;
|
6246
|
+
}
|
6247
|
+
|
6248
|
+
num = add(rules, num, prefix + rule.property, rule.value);
|
6189
6249
|
});
|
6190
6250
|
};
|
6191
6251
|
|
@@ -6222,13 +6282,16 @@ var autoprefixer = {
|
|
6222
6282
|
for ( var prefix in prefixed ) {
|
6223
6283
|
if ( prefixed[prefix] != rule.value ) {
|
6224
6284
|
if ( propVendor ) {
|
6225
|
-
|
6285
|
+
var exists = contain(rules, rule.property,
|
6286
|
+
prefixed[prefix]);
|
6287
|
+
if ( exists ) {
|
6288
|
+
rules.splice(num, 1);
|
6289
|
+
} else {
|
6290
|
+
rule.value = prefixed[prefix];
|
6291
|
+
}
|
6226
6292
|
} else {
|
6227
|
-
rules
|
6228
|
-
|
6229
|
-
value: prefixed[prefix]
|
6230
|
-
});
|
6231
|
-
num += 1;
|
6293
|
+
num = add(rules, num, rule.property,
|
6294
|
+
prefixed[prefix]);
|
6232
6295
|
}
|
6233
6296
|
}
|
6234
6297
|
}
|
@@ -6341,21 +6404,19 @@ var autoprefixer = {
|
|
6341
6404
|
if ( prefixes.length ) {
|
6342
6405
|
prefixes = uniq(prefixes);
|
6343
6406
|
|
6344
|
-
|
6345
|
-
|
6346
|
-
|
6347
|
-
|
6348
|
-
|
6349
|
-
|
6350
|
-
} else if (data[name].transition) {
|
6351
|
-
selected[name] = {
|
6352
|
-
regexp: containRegexp(name),
|
6353
|
-
prefixes: prefixes,
|
6354
|
-
transition: true
|
6355
|
-
};
|
6356
|
-
} else {
|
6357
|
-
selected[name] = { prefixes: prefixes };
|
6407
|
+
var obj = { prefixes: prefixes }
|
6408
|
+
for ( var key in data[name] ) {
|
6409
|
+
if ( key == 'browsers' ) {
|
6410
|
+
continue;
|
6411
|
+
}
|
6412
|
+
obj[key] = data[name][key];
|
6358
6413
|
}
|
6414
|
+
|
6415
|
+
if ( obj.props || obj.transition ) {
|
6416
|
+
obj.regexp = containRegexp(name);
|
6417
|
+
}
|
6418
|
+
|
6419
|
+
selected[name] = obj;
|
6359
6420
|
}
|
6360
6421
|
}
|
6361
6422
|
return selected;
|
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.3.
|
4
|
+
version: 0.3.20130502
|
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-
|
12
|
+
date: 2013-05-02 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: -3902734870157313034
|
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: -3902734870157313034
|
95
95
|
requirements: []
|
96
96
|
rubyforge_project:
|
97
97
|
rubygems_version: 1.8.23
|