autoprefixer-rails 0.1.20130409 → 0.2.20130413

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 CHANGED
@@ -1,2 +1,6 @@
1
+ == 0.2 (Hear Me Roar!)
2
+ * Update parse libraries.
3
+ * Add inspect method and rake tast.
4
+
1
5
  == 0.1 (Fire and Blood)
2
6
  * Initial release.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- autoprefixer-rails (0.1.20130409)
4
+ autoprefixer-rails (0.2.20130413)
5
5
  execjs
6
6
 
7
7
  GEM
@@ -36,7 +36,7 @@ GEM
36
36
  multi_json (~> 1.0)
37
37
  arel (3.0.2)
38
38
  builder (3.0.4)
39
- diff-lcs (1.2.2)
39
+ diff-lcs (1.2.3)
40
40
  erubis (2.7.0)
41
41
  execjs (1.4.0)
42
42
  multi_json (~> 1.0)
@@ -98,7 +98,7 @@ GEM
98
98
  libv8 (~> 3.11.8.12)
99
99
  ref
100
100
  thor (0.18.1)
101
- tilt (1.3.6)
101
+ tilt (1.3.7)
102
102
  treetop (1.4.12)
103
103
  polyglot
104
104
  polyglot (>= 0.3.1)
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Autoprefixer Rails
2
2
 
3
- Parse CSS and add prefixed properties and values when it really necessary
4
- for selected browsers.
3
+ Parse CSS and add prefixed properties and values by
4
+ [Can I Use](http://caniuse.com/) database for actual browsers.
5
5
 
6
6
  This gem provides Ruby and Ruby on Rails integration with
7
7
  [Autoprefixer](https://github.com/ai/autoprefixer) JS library.
@@ -15,9 +15,8 @@ a {
15
15
  }
16
16
  ```
17
17
 
18
- Autoprefixer will see in own database (from [Can I Use](http://caniuse.com/))
19
- with current browser statistics and properties support and adds only
20
- actual prefixes by Assets Pipeline:
18
+ Autoprefixer will take database with current browser statistics
19
+ and properties support and adds only actual prefixes by Assets Pipeline:
21
20
 
22
21
  ```css
23
22
  a {
@@ -5,11 +5,9 @@ Gem::Specification.new do |s|
5
5
  s.name = 'autoprefixer-rails'
6
6
  s.version = AutoprefixerRails::VERSION.dup
7
7
  s.date = Time.now.strftime('%Y-%m-%d')
8
- s.summary = 'Parse CSS and add only actual prefixed'
9
- s.description = <<-EOF
10
- Parse CSS and add prefixed properties and values
11
- when it really necessary for selected browsers.
12
- EOF
8
+ s.summary = 'Parse CSS and add only actual prefixed by Can I Use database'
9
+ s.description = 'Parse CSS and add prefixed properties and values ' +
10
+ 'by Can I Use database for actual browsers'
13
11
 
14
12
  s.files = `git ls-files`.split("\n")
15
13
  s.test_files = `git ls-files -- {spec}/*`.split("\n")
@@ -50,6 +50,11 @@ module AutoprefixerRails
50
50
  def self.compiler
51
51
  @compiler ||= ExecJS.compile("window = this;\n" + js_file.read)
52
52
  end
53
+
54
+ # Return string with selected browsers and prefixed CSS properties and values
55
+ def self.inspect(browsers = [])
56
+ compiler.call('autoprefixer.inspect', browsers)
57
+ end
53
58
  end
54
59
 
55
60
  if defined?(Rails)
@@ -20,11 +20,21 @@ require 'sprockets/railtie'
20
20
 
21
21
  module AutoprefixedRails
22
22
  class Railtie < ::Rails::Railtie
23
+ rake_tasks do |app|
24
+ require 'rake/autoprefixer_tasks'
25
+ Rake::AutoprefixerTasks.new(browsers(app))
26
+ end
27
+
23
28
  initializer :setup_autoprefixer do |app|
29
+ dirs = [app.root.join('app/'), app.root.join('lib/')]
30
+ AutoprefixerRails.install(app.assets, browsers(app), :dirs => dirs)
31
+ end
32
+
33
+ # Read browsers requirements from application config
34
+ def browsers(app)
24
35
  file = app.root.join('config/autoprefixer.yml')
25
36
  config = file.exist? ? YAML.load_file(file) : { 'browsers' => [] }
26
- dirs = [app.root.join('app/'), app.root.join('lib/')]
27
- AutoprefixerRails.install(app.assets, config['browsers'], :dirs => dirs)
37
+ config['browsers']
28
38
  end
29
39
  end
30
40
  end
@@ -1,3 +1,3 @@
1
1
  module AutoprefixerRails
2
- VERSION = '0.1.20130409'.freeze unless defined? AutoprefixerRails::VERSION
2
+ VERSION = '0.2.20130413'.freeze unless defined? AutoprefixerRails::VERSION
3
3
  end
@@ -0,0 +1,45 @@
1
+ =begin
2
+ Copyright 2013 Andrey “A.I.” Sitnik <andrey@sitnik.ru>,
3
+ sponsored by Evil Martians.
4
+
5
+ This program is free software: you can redistribute it and/or modify
6
+ it under the terms of the GNU Lesser General Public License as published by
7
+ the Free Software Foundation, either version 3 of the License, or
8
+ (at your option) any later version.
9
+
10
+ This program is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ GNU Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public License
16
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ =end
18
+
19
+ require 'rake'
20
+ require 'rake/tasklib'
21
+ require 'autoprefixer-rails'
22
+
23
+ module Rake
24
+ # Define task to inspect Autoprefixer browsers, properties and values.
25
+ # Call it from your `Rakefile`:
26
+ #
27
+ # AutoprefixerTasks.new(['> 1%', 'opera 12'])
28
+ class AutoprefixerTasks < Rake::TaskLib
29
+ attr_reader :browsers
30
+
31
+ def initialize(browsers = [])
32
+ @browsers = browsers
33
+ define
34
+ end
35
+
36
+ def define
37
+ namespace :autoprefixer do
38
+ desc 'Show selected browsers and prefixed CSS properties and values'
39
+ task :inspect do
40
+ puts AutoprefixerRails.inspect(@browsers)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
data/spec/app/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require File.expand_path('../config/application', __FILE__)
2
+ App::Application.load_tasks
@@ -27,4 +27,10 @@ describe AutoprefixerRails do
27
27
  assets['app/assets/stylesheets/test.css'].to_s.should ==
28
28
  "a { transition: all 1s }\n"
29
29
  end
30
+
31
+ it "should inspect" do
32
+ inspect = AutoprefixerRails.inspect(['chrome 25'])
33
+ inspect.should =~ /Browsers:\n Chrome 25\n\n/
34
+ inspect.should =~ / transition: webkit/
35
+ end
30
36
  end
data/spec/rails_spec.rb CHANGED
@@ -13,3 +13,11 @@ describe CssController, :type => :controller do
13
13
  response.body.should == ".f { transition: none }\n"
14
14
  end
15
15
  end
16
+
17
+ describe 'Rake task' do
18
+ it "should inspect" do
19
+ inspect = `cd spec/app; bundle exec rake autoprefixer:inspect`
20
+ inspect.should =~ /Browsers:\n Chrome 25\n\n/
21
+ inspect.should =~ / transition: webkit/
22
+ end
23
+ end
@@ -1,30 +1,4 @@
1
- /*
2
- * Copyright 2013 Andrey Sitnik <andrey@sitnik.ru>,
3
- * sponsored by Evil Martians.
4
- *
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU Lesser General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- *
10
- * This program is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- * GNU Lesser General Public License for more details.
14
- *
15
- * You should have received a copy of the GNU Lesser General Public License
16
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
17
- */
18
-
19
- ;(function(){
20
-
21
-
22
- /**
23
- * hasOwnProperty.
24
- */
25
-
26
- var has = Object.prototype.hasOwnProperty;
27
-
1
+ ;(function () {
28
2
  /**
29
3
  * Require the given path.
30
4
  *
@@ -101,10 +75,10 @@ require.resolve = function(path) {
101
75
 
102
76
  for (var i = 0; i < paths.length; i++) {
103
77
  var path = paths[i];
104
- if (has.call(require.modules, path)) return path;
78
+ if (require.modules.hasOwnProperty(path)) return path;
105
79
  }
106
80
 
107
- if (has.call(require.aliases, index)) {
81
+ if (require.aliases.hasOwnProperty(index)) {
108
82
  return require.aliases[index];
109
83
  }
110
84
  };
@@ -158,7 +132,7 @@ require.register = function(path, definition) {
158
132
  */
159
133
 
160
134
  require.alias = function(from, to) {
161
- if (!has.call(require.modules, from)) {
135
+ if (!require.modules.hasOwnProperty(from)) {
162
136
  throw new Error('Failed to alias "' + from + '", it does not exist');
163
137
  }
164
138
  require.aliases[to] = from;
@@ -220,7 +194,7 @@ require.relative = function(parent) {
220
194
  */
221
195
 
222
196
  localRequire.exists = function(path) {
223
- return has.call(require.modules, localRequire.resolve(path));
197
+ return require.modules.hasOwnProperty(localRequire.resolve(path));
224
198
  };
225
199
 
226
200
  return localRequire;
@@ -261,10 +235,10 @@ module.exports = function(css){
261
235
  var node;
262
236
  var rules = [];
263
237
  whitespace();
264
- comments();
238
+ comments(rules);
265
239
  while (css[0] != '}' && (node = atrule() || rule())) {
266
- comments();
267
240
  rules.push(node);
241
+ comments(rules);
268
242
  }
269
243
  return rules;
270
244
  }
@@ -292,8 +266,11 @@ module.exports = function(css){
292
266
  * Parse comments;
293
267
  */
294
268
 
295
- function comments() {
296
- while (comment()) ;
269
+ function comments(rules) {
270
+ rules = rules || [];
271
+ var c;
272
+ while (c = comment()) rules.push(c);
273
+ return rules;
297
274
  }
298
275
 
299
276
  /**
@@ -305,9 +282,10 @@ module.exports = function(css){
305
282
  var i = 2;
306
283
  while ('*' != css[i] || '/' != css[i + 1]) ++i;
307
284
  i += 2;
285
+ var comment = css.slice(2, i - 2);
308
286
  css = css.slice(i);
309
287
  whitespace();
310
- return true;
288
+ return { comment: comment };
311
289
  }
312
290
  }
313
291
 
@@ -399,6 +377,25 @@ module.exports = function(css){
399
377
  };
400
378
  }
401
379
 
380
+ /**
381
+ * Parse supports.
382
+ */
383
+
384
+ function supports() {
385
+ var m = match(/^@supports *([^{]+)/);
386
+ if (!m) return;
387
+ var supports = m[1].trim();
388
+
389
+ if (!open()) return;
390
+ comments();
391
+
392
+ var style = rules();
393
+
394
+ if (!close()) return;
395
+
396
+ return { supports: supports, rules: style };
397
+ }
398
+
402
399
  /**
403
400
  * Parse media.
404
401
  */
@@ -418,6 +415,51 @@ module.exports = function(css){
418
415
  return { media: media, rules: style };
419
416
  }
420
417
 
418
+ /**
419
+ * Parse paged media.
420
+ */
421
+
422
+ function atpage() {
423
+ var m = match(/^@page */);
424
+ if (!m) return;
425
+
426
+ var sel = selector() || [];
427
+ var decls = [];
428
+
429
+ if (!open()) return;
430
+ comments();
431
+
432
+ // declarations
433
+ var decl;
434
+ while (decl = declaration() || atmargin()) {
435
+ decls.push(decl);
436
+ comments();
437
+ }
438
+
439
+ if (!close()) return;
440
+
441
+ return {
442
+ type: "page",
443
+ selectors: sel,
444
+ declarations: decls
445
+ };
446
+ }
447
+
448
+ /**
449
+ * Parse margin at-rules
450
+ */
451
+
452
+ function atmargin() {
453
+ var m = match(/^@([a-z\-]+) */);
454
+ if (!m) return;
455
+ var type = m[1]
456
+
457
+ return {
458
+ type: type,
459
+ declarations: declarations()
460
+ }
461
+ }
462
+
421
463
  /**
422
464
  * Parse import
423
465
  */
@@ -434,6 +476,14 @@ module.exports = function(css){
434
476
  return _atrule('charset');
435
477
  }
436
478
 
479
+ /**
480
+ * Parse namespace
481
+ */
482
+
483
+ function atnamespace() {
484
+ return _atrule('namespace')
485
+ }
486
+
437
487
  /**
438
488
  * Parse non-block at-rules
439
489
  */
@@ -474,8 +524,11 @@ module.exports = function(css){
474
524
  function atrule() {
475
525
  return keyframes()
476
526
  || media()
527
+ || supports()
477
528
  || atimport()
478
- || atcharset();
529
+ || atcharset()
530
+ || atnamespace()
531
+ || atpage();
479
532
  }
480
533
 
481
534
  /**
@@ -532,6 +585,7 @@ Compiler.prototype.compile = function(node){
532
585
  */
533
586
 
534
587
  Compiler.prototype.visit = function(node){
588
+ if (node.comment) return this.comment(node);
535
589
  if (node.charset) return this.charset(node);
536
590
  if (node.keyframes) return this.keyframes(node);
537
591
  if (node.media) return this.media(node);
@@ -539,6 +593,15 @@ Compiler.prototype.visit = function(node){
539
593
  return this.rule(node);
540
594
  };
541
595
 
596
+ /**
597
+ * Visit comment node.
598
+ */
599
+
600
+ Compiler.prototype.comment = function(node){
601
+ if (this.compress) return '';
602
+ return '/*' + node.comment + '*/';
603
+ };
604
+
542
605
  /**
543
606
  * Visit import node.
544
607
  */
@@ -633,6 +696,8 @@ Compiler.prototype.keyframe = function(node){
633
696
  */
634
697
 
635
698
  Compiler.prototype.rule = function(node){
699
+ var indent = this.indent();
700
+
636
701
  if (this.compress) {
637
702
  return node.selectors.join(',')
638
703
  + '{'
@@ -640,7 +705,7 @@ Compiler.prototype.rule = function(node){
640
705
  + '}';
641
706
  }
642
707
 
643
- return this.indent() + node.selectors.join(',\n')
708
+ return node.selectors.map(function(s){ return indent + s }).join(',\n')
644
709
  + ' {\n'
645
710
  + this.indent(1)
646
711
  + node.declarations.map(this.declaration, this).join(';\n')
@@ -1106,7 +1171,7 @@ exports.basename = function(path){
1106
1171
  };
1107
1172
 
1108
1173
  exports.dirname = function(path){
1109
- return path.split('/').slice(0, -1).join('/') || '.';
1174
+ return path.split('/').slice(0, -1).join('/') || '.';
1110
1175
  };
1111
1176
 
1112
1177
  exports.extname = function(path){
@@ -1116,18 +1181,17 @@ exports.extname = function(path){
1116
1181
  return '.' + ext;
1117
1182
  };
1118
1183
  });
1119
- require.register("rework/index.js", function(exports, require, module){
1184
+ require.register("visionmedia-rework/index.js", function(exports, require, module){
1120
1185
 
1121
1186
  module.exports = require('./lib/rework');
1122
1187
  });
1123
- require.register("rework/lib/rework.js", function(exports, require, module){
1188
+ require.register("visionmedia-rework/lib/rework.js", function(exports, require, module){
1124
1189
 
1125
1190
  /**
1126
1191
  * Module dependencies.
1127
1192
  */
1128
1193
 
1129
- var css = require('css')
1130
- , visit = require('./visit');
1194
+ var css = require('css');
1131
1195
 
1132
1196
  /**
1133
1197
  * Expose `rework`.
@@ -1139,7 +1203,13 @@ exports = module.exports = rework;
1139
1203
  * Expose `visit` helpers.
1140
1204
  */
1141
1205
 
1142
- exports.visit = visit;
1206
+ exports.visit = require('./visit');
1207
+
1208
+ /**
1209
+ * Expose prefix properties.
1210
+ */
1211
+
1212
+ exports.properties = require('./properties');
1143
1213
 
1144
1214
  /**
1145
1215
  * Initialize a new stylesheet `Rework` with `str`.
@@ -1210,6 +1280,7 @@ Rework.prototype.toString = function(options){
1210
1280
 
1211
1281
  exports.media = require('./plugins/media');
1212
1282
  exports.mixin = exports.mixins = require('./plugins/mixin');
1283
+ exports.function = exports.functions = require('./plugins/function');
1213
1284
  exports.prefix = require('./plugins/prefix');
1214
1285
  exports.colors = require('./plugins/colors');
1215
1286
  exports.extend = require('./plugins/extend');
@@ -1222,9 +1293,10 @@ exports.at2x = require('./plugins/at2x');
1222
1293
  exports.url = require('./plugins/url');
1223
1294
  exports.ease = require('./plugins/ease');
1224
1295
  exports.vars = require('./plugins/vars');
1296
+ exports.inline = require('./plugins/inline');
1225
1297
 
1226
1298
  });
1227
- require.register("rework/lib/utils.js", function(exports, require, module){
1299
+ require.register("visionmedia-rework/lib/utils.js", function(exports, require, module){
1228
1300
 
1229
1301
  /**
1230
1302
  * Strip `str` quotes.
@@ -1239,7 +1311,7 @@ exports.stripQuotes = function(str) {
1239
1311
  return str;
1240
1312
  };
1241
1313
  });
1242
- require.register("rework/lib/visit.js", function(exports, require, module){
1314
+ require.register("visionmedia-rework/lib/visit.js", function(exports, require, module){
1243
1315
 
1244
1316
  /**
1245
1317
  * Visit `node`'s declarations recursively and
@@ -1274,14 +1346,147 @@ exports.declarations = function(node, fn){
1274
1346
  };
1275
1347
 
1276
1348
  });
1277
- require.register("rework/lib/plugins/url.js", function(exports, require, module){
1349
+ require.register("visionmedia-rework/lib/properties.js", function(exports, require, module){
1350
+
1351
+ /**
1352
+ * Prefixed properties.
1353
+ */
1354
+
1355
+ module.exports = [
1356
+ 'animation',
1357
+ 'animation-delay',
1358
+ 'animation-direction',
1359
+ 'animation-duration',
1360
+ 'animation-fill-mode',
1361
+ 'animation-iteration-count',
1362
+ 'animation-name',
1363
+ 'animation-play-state',
1364
+ 'animation-timing-function',
1365
+ 'appearance',
1366
+ 'background-visibility',
1367
+ 'background-composite',
1368
+ 'blend-mode',
1369
+ 'border-bottom-left-radius',
1370
+ 'border-bottom-right-radius',
1371
+ 'border-fit',
1372
+ 'border-image',
1373
+ 'border-vertical-spacing',
1374
+ 'box-align',
1375
+ 'box-direction',
1376
+ 'box-flex',
1377
+ 'box-flex-group',
1378
+ 'box-lines',
1379
+ 'box-ordinal-group',
1380
+ 'box-orient',
1381
+ 'box-pack',
1382
+ 'box-reflect',
1383
+ 'box-sizing',
1384
+ 'clip-path',
1385
+ 'column-count',
1386
+ 'column-width',
1387
+ 'column-min-width',
1388
+ 'column-width-policy',
1389
+ 'column-gap',
1390
+ 'column-rule',
1391
+ 'column-rule-color',
1392
+ 'column-rule-style',
1393
+ 'column-rule-width',
1394
+ 'column-span',
1395
+ 'flex',
1396
+ 'flex-basis',
1397
+ 'flex-direction',
1398
+ 'flex-flow',
1399
+ 'flex-grow',
1400
+ 'flex-shrink',
1401
+ 'flex-wrap',
1402
+ 'flex-flow-from',
1403
+ 'flex-flow-into',
1404
+ 'font-smoothing',
1405
+ 'transform',
1406
+ 'transform-origin',
1407
+ 'transform-origin-x',
1408
+ 'transform-origin-y',
1409
+ 'transform-origin-z',
1410
+ 'transform-style',
1411
+ 'transition',
1412
+ 'transition-delay',
1413
+ 'transition-duration',
1414
+ 'transition-property',
1415
+ 'transition-timing-function',
1416
+ 'user-drag',
1417
+ 'user-modify',
1418
+ 'user-select',
1419
+ 'wrap',
1420
+ 'wrap-flow',
1421
+ 'wrap-margin',
1422
+ 'wrap-padding',
1423
+ 'wrap-through'
1424
+ ];
1425
+
1426
+ });
1427
+ require.register("visionmedia-rework/lib/plugins/function.js", function(exports, require, module){
1428
+
1429
+ /**
1430
+ * Module dependencies.
1431
+ */
1432
+
1433
+ var visit = require('../visit')
1434
+ , utils = require('../utils');
1435
+
1436
+ /**
1437
+ * Define custom function.
1438
+ */
1439
+
1440
+ module.exports = function(functions) {
1441
+ if (!functions) throw new Error('functions object required');
1442
+ return function(style, rework){
1443
+ visit.declarations(style, function(declarations){
1444
+ for (var name in functions) {
1445
+ func(declarations, name, functions[name]);
1446
+ }
1447
+ });
1448
+ }
1449
+ };
1450
+
1451
+ /**
1452
+ * Escape regexp codes in string.
1453
+ *
1454
+ * @param {String} s
1455
+ * @api private
1456
+ */
1457
+
1458
+ function escape(s) {
1459
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
1460
+ }
1461
+
1462
+ /**
1463
+ * Visit declarations and apply functions.
1464
+ *
1465
+ * @param {Array} declarations
1466
+ * @param {Object} functions
1467
+ * @api private
1468
+ */
1469
+
1470
+ function func(declarations, name, func) {
1471
+ var regexp = new RegExp(escape(name) + '\\(([^\)]+)\\)', 'g');
1472
+ declarations.forEach(function(decl){
1473
+ if (!~decl.value.indexOf(name + '(')) return;
1474
+ decl.value = decl.value.replace(regexp, function(_, args){
1475
+ args = args.split(/,\s*/).map(utils.stripQuotes);
1476
+ return func.apply(decl, args);
1477
+ });
1478
+ });
1479
+ }
1480
+
1481
+ });
1482
+ require.register("visionmedia-rework/lib/plugins/url.js", function(exports, require, module){
1278
1483
 
1279
1484
  /**
1280
1485
  * Module dependencies.
1281
1486
  */
1282
1487
 
1283
1488
  var utils = require('../utils')
1284
- , visit = require('../visit');
1489
+ , func = require('./function');
1285
1490
 
1286
1491
  /**
1287
1492
  * Map `url()` calls.
@@ -1299,21 +1504,15 @@ var utils = require('../utils')
1299
1504
  */
1300
1505
 
1301
1506
  module.exports = function(fn) {
1302
- return function(style, rework){
1303
- visit.declarations(style, function(declarations){
1304
- declarations.forEach(function(decl, i){
1305
- if (!~decl.value.indexOf('url(')) return;
1306
- decl.value = decl.value.replace(/url\(([^)]+)\)/g, function(_, url){
1307
- url = utils.stripQuotes(url);
1308
- return 'url("' + fn(url) + '")';
1309
- });
1310
- });
1311
- });
1312
- }
1507
+ return func({ url: url });
1508
+
1509
+ function url(path){
1510
+ return 'url("' + fn(path) + '")';
1511
+ };
1313
1512
  };
1314
1513
 
1315
1514
  });
1316
- require.register("rework/lib/plugins/vars.js", function(exports, require, module){
1515
+ require.register("visionmedia-rework/lib/plugins/vars.js", function(exports, require, module){
1317
1516
 
1318
1517
  /**
1319
1518
  * Module dependencies.
@@ -1340,12 +1539,13 @@ var visit = require('../visit');
1340
1539
  *
1341
1540
  */
1342
1541
 
1343
- module.exports = function() {
1344
- var map = {};
1542
+ module.exports = function(map) {
1543
+ map = map || {};
1345
1544
 
1346
1545
  function replace(str) {
1347
1546
  return str.replace(/\bvar\((.*?)\)/g, function(_, name){
1348
1547
  var val = map[name];
1548
+ if (!val) throw new Error('variable "' + name + '" is undefined');
1349
1549
  if (val.match(/\bvar\(/)) val = replace(val);
1350
1550
  return val;
1351
1551
  });
@@ -1370,7 +1570,7 @@ module.exports = function() {
1370
1570
  };
1371
1571
 
1372
1572
  });
1373
- require.register("rework/lib/plugins/ease.js", function(exports, require, module){
1573
+ require.register("visionmedia-rework/lib/plugins/ease.js", function(exports, require, module){
1374
1574
 
1375
1575
  /**
1376
1576
  * Module dependencies.
@@ -1457,7 +1657,7 @@ function substitute(declarations) {
1457
1657
  }
1458
1658
 
1459
1659
  });
1460
- require.register("rework/lib/plugins/at2x.js", function(exports, require, module){
1660
+ require.register("visionmedia-rework/lib/plugins/at2x.js", function(exports, require, module){
1461
1661
 
1462
1662
  /**
1463
1663
  * Module dependencies.
@@ -1548,14 +1748,14 @@ function backgroundWithURL(decl) {
1548
1748
  }
1549
1749
 
1550
1750
  });
1551
- require.register("rework/lib/plugins/colors.js", function(exports, require, module){
1751
+ require.register("visionmedia-rework/lib/plugins/colors.js", function(exports, require, module){
1552
1752
 
1553
1753
  /**
1554
1754
  * Module dependencies.
1555
1755
  */
1556
1756
 
1557
1757
  var parse = require('color-parser')
1558
- , visit = require('../visit');
1758
+ , functions = require('./function');
1559
1759
 
1560
1760
  /**
1561
1761
  * Provide color manipulation helpers:
@@ -1573,57 +1773,22 @@ var parse = require('color-parser')
1573
1773
  */
1574
1774
 
1575
1775
  module.exports = function() {
1576
- return function(style, rework){
1577
- visit.declarations(style, substitute);
1578
- }
1776
+ return functions({
1777
+ rgba: function(color, alpha){
1778
+ if (2 == arguments.length) {
1779
+ var c = parse(color.trim());
1780
+ var args = [c.r, c.g, c.b, alpha];
1781
+ } else {
1782
+ var args = [].slice.call(arguments);
1783
+ }
1784
+
1785
+ return 'rgba(' + args.join(', ') + ')';
1786
+ }
1787
+ });
1579
1788
  };
1580
1789
 
1581
- /**
1582
- * Substitute easing functions.
1583
- *
1584
- * @api private
1585
- */
1586
-
1587
- function substitute(declarations) {
1588
- for (var i = 0; i < declarations.length; ++i) {
1589
- var decl = declarations[i];
1590
- var val = decl.value;
1591
- var index = val.indexOf('rgba');
1592
- if (-1 == index) continue;
1593
-
1594
- // grab rgba(...) value
1595
- var rgba = val.slice(index, val.indexOf(')', index));
1596
-
1597
- // arity > 2
1598
- if (rgba.split(',').length > 2) continue;
1599
-
1600
- // color
1601
- var c = rgba.slice(rgba.indexOf('(') + 1, rgba.indexOf(',')).trim();
1602
- c = parse(c);
1603
-
1604
- // alpha
1605
- var a = rgba.slice(rgba.indexOf(',') + 1, rgba.length);
1606
- a = parseFloat(a);
1607
-
1608
- // format
1609
- c = 'rgba('
1610
- + c.r
1611
- + ','
1612
- + c.g
1613
- + ','
1614
- + c.b
1615
- + ','
1616
- + a
1617
- + ')';
1618
-
1619
- // replace
1620
- decl.value = val.replace(rgba + ')', c);
1621
- }
1622
- }
1623
-
1624
1790
  });
1625
- require.register("rework/lib/plugins/extend.js", function(exports, require, module){
1626
-
1791
+ require.register("visionmedia-rework/lib/plugins/extend.js", function(exports, require, module){
1627
1792
  /**
1628
1793
  * Module dependencies.
1629
1794
  */
@@ -1636,16 +1801,28 @@ var debug = require('debug')('rework:extend');
1636
1801
 
1637
1802
  module.exports = function() {
1638
1803
  debug('use extend');
1639
- return function(style, rework){
1804
+ return function(style, rework) {
1640
1805
  var map = {};
1641
- style.rules.forEach(function(rule){
1642
- if (!rule.declarations) return;
1643
- rule.selectors.forEach(function(sel, i){
1806
+ var rules = style.rules.length;
1807
+
1808
+ for (var j = 0; j < rules; j++) {
1809
+ var rule = style.rules[j];
1810
+ if (!rule || !rule.selectors) return;
1811
+
1812
+ // map selectors
1813
+ rule.selectors.forEach(function(sel, i) {
1644
1814
  map[sel] = rule;
1645
1815
  if ('%' == sel[0]) rule.selectors.splice(i, 1);
1646
1816
  });
1817
+
1818
+ // visit extend: properties
1647
1819
  visit(rule, map);
1648
- });
1820
+
1821
+ // clean up empty rules
1822
+ if (!rule.declarations.length) {
1823
+ style.rules.splice(j--, 1);
1824
+ }
1825
+ };
1649
1826
  }
1650
1827
  };
1651
1828
 
@@ -1668,12 +1845,12 @@ function visit(rule, map) {
1668
1845
  if (!extend) throw new Error('failed to extend "' + val + '"');
1669
1846
 
1670
1847
  var keys = Object.keys(map);
1671
- keys.forEach(function(key){
1848
+ keys.forEach(function(key) {
1672
1849
  if (0 != key.indexOf(val)) return;
1673
1850
  var extend = map[key];
1674
1851
  var suffix = key.replace(val, '');
1675
1852
  debug('extend %j with %j', rule.selectors, extend.selectors);
1676
- extend.selectors = extend.selectors.concat(rule.selectors.map(function(sel){
1853
+ extend.selectors = extend.selectors.concat(rule.selectors.map(function(sel) {
1677
1854
  return sel + suffix;
1678
1855
  }));
1679
1856
  });
@@ -1683,7 +1860,7 @@ function visit(rule, map) {
1683
1860
  }
1684
1861
 
1685
1862
  });
1686
- require.register("rework/lib/plugins/mixin.js", function(exports, require, module){
1863
+ require.register("visionmedia-rework/lib/plugins/mixin.js", function(exports, require, module){
1687
1864
 
1688
1865
  /**
1689
1866
  * Module dependencies.
@@ -1738,7 +1915,7 @@ function mixin(declarations, mixins) {
1738
1915
  }
1739
1916
 
1740
1917
  });
1741
- require.register("rework/lib/plugins/keyframes.js", function(exports, require, module){
1918
+ require.register("visionmedia-rework/lib/plugins/keyframes.js", function(exports, require, module){
1742
1919
 
1743
1920
  /**
1744
1921
  * Prefix keyframes.
@@ -1830,7 +2007,7 @@ function cloneKeyframe(keyframe) {
1830
2007
  return clone;
1831
2008
  }
1832
2009
  });
1833
- require.register("rework/lib/plugins/references.js", function(exports, require, module){
2010
+ require.register("visionmedia-rework/lib/plugins/references.js", function(exports, require, module){
1834
2011
 
1835
2012
  /**
1836
2013
  * Module dependencies.
@@ -1887,7 +2064,7 @@ function substitute(declarations) {
1887
2064
  }
1888
2065
 
1889
2066
  });
1890
- require.register("rework/lib/plugins/opacity.js", function(exports, require, module){
2067
+ require.register("visionmedia-rework/lib/plugins/opacity.js", function(exports, require, module){
1891
2068
 
1892
2069
  /**
1893
2070
  * Add IE opacity support.
@@ -1937,7 +2114,7 @@ module.exports = function() {
1937
2114
  }
1938
2115
  };
1939
2116
  });
1940
- require.register("rework/lib/plugins/prefix-selectors.js", function(exports, require, module){
2117
+ require.register("visionmedia-rework/lib/plugins/prefix-selectors.js", function(exports, require, module){
1941
2118
 
1942
2119
  /**
1943
2120
  * Prefix selectors with `str`.
@@ -1966,7 +2143,7 @@ module.exports = function(str) {
1966
2143
  }
1967
2144
  };
1968
2145
  });
1969
- require.register("rework/lib/plugins/prefix-value.js", function(exports, require, module){
2146
+ require.register("visionmedia-rework/lib/plugins/prefix-value.js", function(exports, require, module){
1970
2147
 
1971
2148
  /**
1972
2149
  * Module dependencies.
@@ -2023,7 +2200,7 @@ module.exports = function(value, vendors) {
2023
2200
  };
2024
2201
 
2025
2202
  });
2026
- require.register("rework/lib/plugins/media.js", function(exports, require, module){
2203
+ require.register("visionmedia-rework/lib/plugins/media.js", function(exports, require, module){
2027
2204
 
2028
2205
  /**
2029
2206
  * Module dependencies.
@@ -2055,7 +2232,7 @@ module.exports = function(obj) {
2055
2232
  }
2056
2233
  };
2057
2234
  });
2058
- require.register("rework/lib/plugins/prefix.js", function(exports, require, module){
2235
+ require.register("visionmedia-rework/lib/plugins/prefix.js", function(exports, require, module){
2059
2236
 
2060
2237
  /**
2061
2238
  * Module dependencies.
@@ -2118,67 +2295,11 @@ module.exports = function(prop, vendors) {
2118
2295
  };
2119
2296
 
2120
2297
  });
2121
- require.alias("visionmedia-css/index.js", "rework/deps/css/index.js");
2122
- require.alias("visionmedia-css-parse/index.js", "visionmedia-css/deps/css-parse/index.js");
2298
+ require.register("autoprefixer/data/browsers.js", function(exports, require, module){
2299
+ // Don't edit this files, because it's autogenerated.
2300
+ // See updaters/ dir for generator. Run bin/update to update.
2123
2301
 
2124
- require.alias("visionmedia-css-stringify/index.js", "visionmedia-css/deps/css-stringify/index.js");
2125
-
2126
- require.alias("visionmedia-debug/index.js", "rework/deps/debug/index.js");
2127
- require.alias("visionmedia-debug/debug.js", "rework/deps/debug/debug.js");
2128
-
2129
- require.alias("component-color-parser/index.js", "rework/deps/color-parser/index.js");
2130
- require.alias("component-color-parser/colors.js", "rework/deps/color-parser/colors.js");
2131
-
2132
- require.alias("component-path/index.js", "rework/deps/path/index.js");
2133
-
2134
- if (typeof exports == "object") {
2135
- module.exports = require("rework");
2136
- } else if (typeof define == "function" && define.amd) {
2137
- define(function(){ return require("rework"); });
2138
- } else {
2139
- window["rework"] = require("rework");
2140
- }})();
2141
- (function () {
2142
-
2143
- // Return array, that doesn’t contain duplicates.
2144
- var uniq = function (array) {
2145
- var filtered = [];
2146
- array.forEach(function (i) {
2147
- if ( filtered.indexOf(i) === -1 ) {
2148
- filtered.push(i);
2149
- }
2150
- });
2151
- return filtered;
2152
- };
2153
-
2154
- // Parse CSS and add prefixed properties and values, when it really necessary
2155
- // for selected browsers.
2156
- //
2157
- // var prefixed = autoprefixer.compile(css);
2158
- //
2159
- // By default, it add prefixes for last 2 releases of each browsers.
2160
- // You can use global statistics to select browsers:
2161
- //
2162
- // autoprefixer.compile(css, '> 1%');
2163
- //
2164
- // versions fo each browsers:
2165
- //
2166
- // autoprefixer.compile(css, 'last 1 version');
2167
- //
2168
- // or set them manually:
2169
- //
2170
- // autoprefixer.compile(css, ['chrome 26', 'ff 20', 'ie 10']);
2171
- //
2172
- // If you want to combine Autoprefixer with another Rework filters,
2173
- // you can use it as separated filter:
2174
- //
2175
- // rework(css).
2176
- // use(autoprefixer.filter(last 1 version')).
2177
- // toString();
2178
- var autoprefixer = {
2179
- // Load data
2180
- data: {
2181
- browsers: {
2302
+ module.exports = {
2182
2303
  chrome: {
2183
2304
  prefix: "-webkit-",
2184
2305
  versions: [
@@ -2381,8 +2502,14 @@ var autoprefixer = {
2381
2502
  0
2382
2503
  ]
2383
2504
  }
2384
- },
2385
- props: {
2505
+ };
2506
+
2507
+ });
2508
+ require.register("autoprefixer/data/props.js", function(exports, require, module){
2509
+ // Don't edit this files, because it's autogenerated.
2510
+ // See updaters/ dir for generator. Run bin/update to update.
2511
+
2512
+ module.exports = {
2386
2513
  "@keyframes": {
2387
2514
  browsers: [
2388
2515
  "ff 5",
@@ -5654,7 +5781,155 @@ var autoprefixer = {
5654
5781
  "ios 5.1"
5655
5782
  ]
5656
5783
  }
5657
- }
5784
+ };
5785
+
5786
+ });
5787
+ require.register("autoprefixer/lib/autoprefixer/inspect.js", function(exports, require, module){
5788
+ /*
5789
+ * Copyright 2013 Andrey Sitnik <andrey@sitnik.ru>,
5790
+ * sponsored by Evil Martians.
5791
+ *
5792
+ * This program is free software: you can redistribute it and/or modify
5793
+ * it under the terms of the GNU Lesser General Public License as published by
5794
+ * the Free Software Foundation, either version 3 of the License, or
5795
+ * (at your option) any later version.
5796
+ *
5797
+ * This program is distributed in the hope that it will be useful,
5798
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
5799
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5800
+ * GNU Lesser General Public License for more details.
5801
+ *
5802
+ * You should have received a copy of the GNU Lesser General Public License
5803
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
5804
+ */
5805
+ 'use strict';
5806
+
5807
+ var autoprefixer = require('../autoprefixer.js');
5808
+
5809
+ var transition;
5810
+ var format = function (props) {
5811
+ transition = false;
5812
+ return props.map(function (prop) {
5813
+ var name = prop.name;
5814
+ if (prop.transition) {
5815
+ name += '*';
5816
+ transition = true;
5817
+ }
5818
+ return ' ' + name + ': ' + prop.prefixes.map(function (i) {
5819
+ return i.replace(/^-(.*)-$/g, '$1');
5820
+ }).join(', ');
5821
+ }).join("\n");
5822
+ };
5823
+
5824
+ // Show, what browser, properties and values will used by autoprefixed
5825
+ // with this `req`.
5826
+ var inspect = function (reqs) {
5827
+ var browsers = autoprefixer.parse(reqs || []);
5828
+ var props = autoprefixer.props(browsers);
5829
+
5830
+ var name, version, last, selected = [];
5831
+ for (var i = 0; i < browsers.length; i++) {
5832
+ version = browsers[i].split(' ')[1];
5833
+ if ( browsers[i].indexOf(last) == 0 ) {
5834
+ selected[selected.length - 1] += ', ' + version;
5835
+ } else {
5836
+ last = browsers[i].split(' ')[0];
5837
+ if ( last == 'ie' ) {
5838
+ name = 'IE';
5839
+ } else if ( last == 'ff' ) {
5840
+ name = 'Firefox';
5841
+ } else if ( last == 'ios' ) {
5842
+ name = 'iOS';
5843
+ } else {
5844
+ name = last.slice(0, 1).toUpperCase() + last.slice(1);
5845
+ }
5846
+ selected.push(name + ' ' + version);
5847
+ }
5848
+ }
5849
+
5850
+ var properties = props.filter(function (i) { return !i.onlyValue; });
5851
+ var values = props.filter(function (i) { return i.onlyValue; });
5852
+
5853
+ var out = "Browsers:\n" +
5854
+ selected.map(function (i) { return ' ' + i; }).join("\n") + "\n";
5855
+
5856
+ if ( properties.length > 0 ) {
5857
+ out += "\nProperties:\n" + format(properties) + "\n";
5858
+ if ( transition ) {
5859
+ out += "* - properties, which can be used in transition\n"
5860
+ }
5861
+ }
5862
+ if ( values.length > 0 ) {
5863
+ out += "\nValues:\n" + format(values) + "\n"
5864
+ }
5865
+ return out;
5866
+ };
5867
+
5868
+ module.exports = inspect;
5869
+
5870
+ });
5871
+ require.register("autoprefixer/lib/autoprefixer.js", function(exports, require, module){
5872
+ /*
5873
+ * Copyright 2013 Andrey Sitnik <andrey@sitnik.ru>,
5874
+ * sponsored by Evil Martians.
5875
+ *
5876
+ * This program is free software: you can redistribute it and/or modify
5877
+ * it under the terms of the GNU Lesser General Public License as published by
5878
+ * the Free Software Foundation, either version 3 of the License, or
5879
+ * (at your option) any later version.
5880
+ *
5881
+ * This program is distributed in the hope that it will be useful,
5882
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
5883
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5884
+ * GNU Lesser General Public License for more details.
5885
+ *
5886
+ * You should have received a copy of the GNU Lesser General Public License
5887
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
5888
+ */
5889
+ 'use strict';
5890
+
5891
+ var rework = require('rework');
5892
+
5893
+ // Return array, that doesn’t contain duplicates.
5894
+ var uniq = function (array) {
5895
+ var filtered = [];
5896
+ array.forEach(function (i) {
5897
+ if ( filtered.indexOf(i) === -1 ) {
5898
+ filtered.push(i);
5899
+ }
5900
+ });
5901
+ return filtered;
5902
+ };
5903
+
5904
+ // Parse CSS and add prefixed properties and values by Can I Use database
5905
+ // for actual browsers.
5906
+ //
5907
+ // var prefixed = autoprefixer.compile(css);
5908
+ //
5909
+ // By default, it add prefixes for last 2 releases of each browsers.
5910
+ // You can use global statistics to select browsers:
5911
+ //
5912
+ // autoprefixer.compile(css, '> 1%');
5913
+ //
5914
+ // versions fo each browsers:
5915
+ //
5916
+ // autoprefixer.compile(css, 'last 1 version');
5917
+ //
5918
+ // or set them manually:
5919
+ //
5920
+ // autoprefixer.compile(css, ['chrome 26', 'ff 20', 'ie 10']);
5921
+ //
5922
+ // If you want to combine Autoprefixer with another Rework filters,
5923
+ // you can use it as separated filter:
5924
+ //
5925
+ // rework(css).
5926
+ // use(autoprefixer.filter(last 1 version')).
5927
+ // toString();
5928
+ var autoprefixer = {
5929
+ // Load data
5930
+ data: {
5931
+ browsers: require('../data/browsers'),
5932
+ props: require('../data/props')
5658
5933
  },
5659
5934
 
5660
5935
  // Parse `css` by Rework and add prefixed properties for browsers
@@ -5799,5 +6074,52 @@ var autoprefixer = {
5799
6074
  }
5800
6075
  };
5801
6076
 
5802
- window.autoprefixer = autoprefixer;
5803
- })();
6077
+ module.exports = autoprefixer;
6078
+
6079
+ });
6080
+ require.alias("visionmedia-rework/index.js", "autoprefixer/deps/rework/index.js");
6081
+ require.alias("visionmedia-rework/lib/rework.js", "autoprefixer/deps/rework/lib/rework.js");
6082
+ require.alias("visionmedia-rework/lib/utils.js", "autoprefixer/deps/rework/lib/utils.js");
6083
+ require.alias("visionmedia-rework/lib/visit.js", "autoprefixer/deps/rework/lib/visit.js");
6084
+ require.alias("visionmedia-rework/lib/properties.js", "autoprefixer/deps/rework/lib/properties.js");
6085
+ require.alias("visionmedia-rework/lib/plugins/function.js", "autoprefixer/deps/rework/lib/plugins/function.js");
6086
+ require.alias("visionmedia-rework/lib/plugins/url.js", "autoprefixer/deps/rework/lib/plugins/url.js");
6087
+ require.alias("visionmedia-rework/lib/plugins/vars.js", "autoprefixer/deps/rework/lib/plugins/vars.js");
6088
+ require.alias("visionmedia-rework/lib/plugins/ease.js", "autoprefixer/deps/rework/lib/plugins/ease.js");
6089
+ require.alias("visionmedia-rework/lib/plugins/at2x.js", "autoprefixer/deps/rework/lib/plugins/at2x.js");
6090
+ require.alias("visionmedia-rework/lib/plugins/colors.js", "autoprefixer/deps/rework/lib/plugins/colors.js");
6091
+ require.alias("visionmedia-rework/lib/plugins/extend.js", "autoprefixer/deps/rework/lib/plugins/extend.js");
6092
+ require.alias("visionmedia-rework/lib/plugins/mixin.js", "autoprefixer/deps/rework/lib/plugins/mixin.js");
6093
+ require.alias("visionmedia-rework/lib/plugins/keyframes.js", "autoprefixer/deps/rework/lib/plugins/keyframes.js");
6094
+ require.alias("visionmedia-rework/lib/plugins/references.js", "autoprefixer/deps/rework/lib/plugins/references.js");
6095
+ require.alias("visionmedia-rework/lib/plugins/opacity.js", "autoprefixer/deps/rework/lib/plugins/opacity.js");
6096
+ require.alias("visionmedia-rework/lib/plugins/prefix-selectors.js", "autoprefixer/deps/rework/lib/plugins/prefix-selectors.js");
6097
+ require.alias("visionmedia-rework/lib/plugins/prefix-value.js", "autoprefixer/deps/rework/lib/plugins/prefix-value.js");
6098
+ require.alias("visionmedia-rework/lib/plugins/media.js", "autoprefixer/deps/rework/lib/plugins/media.js");
6099
+ require.alias("visionmedia-rework/lib/plugins/prefix.js", "autoprefixer/deps/rework/lib/plugins/prefix.js");
6100
+ require.alias("visionmedia-css/index.js", "visionmedia-rework/deps/css/index.js");
6101
+ require.alias("visionmedia-css-parse/index.js", "visionmedia-css/deps/css-parse/index.js");
6102
+
6103
+ require.alias("visionmedia-css-stringify/index.js", "visionmedia-css/deps/css-stringify/index.js");
6104
+
6105
+ require.alias("visionmedia-debug/index.js", "visionmedia-rework/deps/debug/index.js");
6106
+ require.alias("visionmedia-debug/debug.js", "visionmedia-rework/deps/debug/debug.js");
6107
+
6108
+ require.alias("component-color-parser/index.js", "visionmedia-rework/deps/color-parser/index.js");
6109
+ require.alias("component-color-parser/colors.js", "visionmedia-rework/deps/color-parser/colors.js");
6110
+
6111
+ require.alias("component-path/index.js", "visionmedia-rework/deps/path/index.js");
6112
+
6113
+ require.register('visionmedia-rework/lib/plugins/inline.js', function(_, _, module){
6114
+ module.exports = function () {};
6115
+ });
6116
+
6117
+ var autoprefixer = require('autoprefixer/lib/autoprefixer.js');
6118
+ autoprefixer.inspect = require('autoprefixer/lib/autoprefixer/inspect.js');
6119
+ if (typeof exports == 'object') {
6120
+ module.exports = autoprefixer;
6121
+ } else if (typeof define == 'function' && define.amd) {
6122
+ define(function(){ return autoprefixer; });
6123
+ } else {
6124
+ this['autoprefixer'] = autoprefixer;
6125
+ } })();
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.1.20130409
4
+ version: 0.2.20130413
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-04-09 00:00:00.000000000 Z
12
+ date: 2013-04-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: execjs
@@ -27,8 +27,8 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
- description: ! " Parse CSS and add prefixed properties and values\n when it
31
- really necessary for selected browsers.\n"
30
+ description: Parse CSS and add prefixed properties and values by Can I Use database
31
+ for actual browsers
32
32
  email: andrey@sitnik.ru
33
33
  executables: []
34
34
  extensions: []
@@ -50,7 +50,9 @@ files:
50
50
  - lib/autoprefixer-rails.rb
51
51
  - lib/autoprefixer-rails/railtie.rb
52
52
  - lib/autoprefixer-rails/version.rb
53
+ - lib/rake/autoprefixer_tasks.rb
53
54
  - spec/app/.gitignore
55
+ - spec/app/Rakefile
54
56
  - spec/app/app/assets/stylesheets/test.css
55
57
  - spec/app/app/controllers/application_controller.rb
56
58
  - spec/app/app/controllers/css_controller.rb
@@ -80,7 +82,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
80
82
  version: '0'
81
83
  segments:
82
84
  - 0
83
- hash: 2468643414422888895
85
+ hash: 3802016816897382572
84
86
  required_rubygems_version: !ruby/object:Gem::Requirement
85
87
  none: false
86
88
  requirements:
@@ -89,11 +91,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
91
  version: '0'
90
92
  segments:
91
93
  - 0
92
- hash: 2468643414422888895
94
+ hash: 3802016816897382572
93
95
  requirements: []
94
96
  rubyforge_project:
95
97
  rubygems_version: 1.8.23
96
98
  signing_key:
97
99
  specification_version: 3
98
- summary: Parse CSS and add only actual prefixed
100
+ summary: Parse CSS and add only actual prefixed by Can I Use database
99
101
  test_files: []