autoprefixer-rails 0.5.20130615 → 0.5.20130616
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +5 -0
- data/Gemfile.lock +1 -1
- data/lib/autoprefixer-rails.rb +9 -1
- data/lib/autoprefixer-rails/version.rb +1 -1
- data/vendor/autoprefixer.js +47 -10
- metadata +4 -4
data/ChangeLog
CHANGED
@@ -4,6 +4,11 @@
|
|
4
4
|
* Fix a lot of CSS parsing errors.
|
5
5
|
* Fix sass-rails 4.0.0.rc2 compatibility.
|
6
6
|
|
7
|
+
20130616:
|
8
|
+
* More useful message for CSS parsing errors.
|
9
|
+
* Remove old WebKit gradient syntax.
|
10
|
+
* Fix parsing error on comment with braces.
|
11
|
+
|
7
12
|
== 0.4 (Winter Is Coming)
|
8
13
|
* Remove outdated prefixes.
|
9
14
|
* Add border-radius and box-shadow properties to database.
|
data/Gemfile.lock
CHANGED
data/lib/autoprefixer-rails.rb
CHANGED
@@ -33,7 +33,15 @@ module AutoprefixerRails
|
|
33
33
|
def self.install(assets, browsers = nil)
|
34
34
|
assets.register_postprocessor 'text/css', :autoprefixer do |context, css|
|
35
35
|
if defined?(Sass::Rails) and Sass::Rails::VERSION == '4.0.0.rc2'
|
36
|
-
|
36
|
+
begin
|
37
|
+
AutoprefixerRails.compile(css, browsers)
|
38
|
+
rescue ExecJS::ProgramError => e
|
39
|
+
if e.message =~ /Can't parse CSS/
|
40
|
+
css
|
41
|
+
else
|
42
|
+
raise e
|
43
|
+
end
|
44
|
+
end
|
37
45
|
else
|
38
46
|
AutoprefixerRails.compile(css, browsers)
|
39
47
|
end
|
data/vendor/autoprefixer.js
CHANGED
@@ -1337,10 +1337,15 @@ require.register("autoprefixer/lib/autoprefixer.js", function(exports, require,
|
|
1337
1337
|
|
1338
1338
|
autoprefixer = {
|
1339
1339
|
compile: function(str, requirements) {
|
1340
|
-
var nodes
|
1341
|
-
|
1340
|
+
var nodes,
|
1341
|
+
_this = this;
|
1342
|
+
nodes = this.catchParseErrors(function() {
|
1343
|
+
return parse(_this.removeBadComments(str));
|
1344
|
+
});
|
1342
1345
|
this.rework(requirements)(nodes.stylesheet);
|
1343
|
-
return
|
1346
|
+
return this.catchParseErrors(function() {
|
1347
|
+
return stringify(nodes);
|
1348
|
+
});
|
1344
1349
|
},
|
1345
1350
|
rework: function(requirements) {
|
1346
1351
|
var browsers, prefixes;
|
@@ -1357,8 +1362,8 @@ require.register("autoprefixer/lib/autoprefixer.js", function(exports, require,
|
|
1357
1362
|
browsers: require('../data/browsers'),
|
1358
1363
|
prefixes: require('../data/prefixes')
|
1359
1364
|
},
|
1360
|
-
|
1361
|
-
return css.replace(/\/\*[^\*]*\*\/\s*:/g, ':');
|
1365
|
+
removeBadComments: function(css) {
|
1366
|
+
return css.replace(/\/\*[^\*]*\*\/\s*:/g, ':').replace(/\/\*[^\*]*\{[^\*]*\*\//g, '');
|
1362
1367
|
},
|
1363
1368
|
inspect: function(requirements) {
|
1364
1369
|
var browsers, prefixes;
|
@@ -1366,6 +1371,18 @@ require.register("autoprefixer/lib/autoprefixer.js", function(exports, require,
|
|
1366
1371
|
prefixes = new Prefixes(this.data.prefixes, browsers);
|
1367
1372
|
this.inspectFunc || (this.inspectFunc = require('./autoprefixer/inspect'));
|
1368
1373
|
return this.inspectFunc(prefixes);
|
1374
|
+
},
|
1375
|
+
catchParseErrors: function(callback) {
|
1376
|
+
var e, error;
|
1377
|
+
try {
|
1378
|
+
return callback();
|
1379
|
+
} catch (_error) {
|
1380
|
+
e = _error;
|
1381
|
+
error = new Error("Can't parse CSS");
|
1382
|
+
error.stack = e.stack;
|
1383
|
+
error.css = true;
|
1384
|
+
throw error;
|
1385
|
+
}
|
1369
1386
|
}
|
1370
1387
|
};
|
1371
1388
|
|
@@ -1504,12 +1521,16 @@ require.register("autoprefixer/lib/autoprefixer/binary.js", function(exports, re
|
|
1504
1521
|
prefixed = autoprefixer.compile(css, this.requirements);
|
1505
1522
|
} catch (_error) {
|
1506
1523
|
error = _error;
|
1507
|
-
if (error.autoprefixer) {
|
1524
|
+
if (error.autoprefixer || error.css) {
|
1508
1525
|
this.error("autoprefixer: " + error.message);
|
1509
1526
|
} else {
|
1510
1527
|
this.error('autoprefixer: Internal error');
|
1511
|
-
|
1512
|
-
|
1528
|
+
}
|
1529
|
+
if (error.css || !error.autoprefixer) {
|
1530
|
+
if (error.stack != null) {
|
1531
|
+
this.error('');
|
1532
|
+
this.error(error.stack);
|
1533
|
+
}
|
1513
1534
|
}
|
1514
1535
|
}
|
1515
1536
|
if (!prefixed) {
|
@@ -1962,6 +1983,16 @@ require.register("autoprefixer/lib/autoprefixer/hacks/gradient.js", function(exp
|
|
1962
1983
|
return "" + param + "deg";
|
1963
1984
|
};
|
1964
1985
|
|
1986
|
+
Gradient.prototype.prefixed = function(prefix) {
|
1987
|
+
var type;
|
1988
|
+
if (prefix === '-webkit-') {
|
1989
|
+
type = this.name === 'linear-gradient' ? 'linear' : 'radial';
|
1990
|
+
return utils.regexp("-webkit-(" + type + "-gradient|gradient\\(\\s*" + type + ")", false);
|
1991
|
+
} else {
|
1992
|
+
return Gradient.__super__.prefixed.apply(this, arguments);
|
1993
|
+
}
|
1994
|
+
};
|
1995
|
+
|
1965
1996
|
return Gradient;
|
1966
1997
|
|
1967
1998
|
})(Value);
|
@@ -2470,8 +2501,14 @@ require.register("autoprefixer/lib/autoprefixer/utils.js", function(exports, req
|
|
2470
2501
|
escapeRegexp: function(string) {
|
2471
2502
|
return string.replace(/([.?*+\^\$\[\]\\(){}|\-])/g, "\\$1");
|
2472
2503
|
},
|
2473
|
-
regexp: function(word) {
|
2474
|
-
|
2504
|
+
regexp: function(word, escape) {
|
2505
|
+
if (escape == null) {
|
2506
|
+
escape = true;
|
2507
|
+
}
|
2508
|
+
if (escape) {
|
2509
|
+
word = this.escapeRegexp(word);
|
2510
|
+
}
|
2511
|
+
return new RegExp('(^|\\s|,|\\()(' + word + '($|\\s|\\(|,))', 'gi');
|
2475
2512
|
}
|
2476
2513
|
};
|
2477
2514
|
|
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.5.
|
4
|
+
version: 0.5.20130616
|
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-06-
|
12
|
+
date: 2013-06-16 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: -740665598923324032
|
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: -740665598923324032
|
95
95
|
requirements: []
|
96
96
|
rubyforge_project:
|
97
97
|
rubygems_version: 1.8.23
|