stylus-source 0.28.2 → 0.29.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/VERSION +1 -1
  2. data/vendor/Readme.md +1 -1
  3. data/vendor/lib/functions/index.js +75 -1
  4. data/vendor/lib/functions/url.js +11 -12
  5. data/vendor/lib/lexer.js +2 -1
  6. data/vendor/lib/stylus.js +1 -1
  7. data/vendor/lib/visitor/compiler.js +1 -1
  8. data/vendor/lib/visitor/evaluator.js +2 -0
  9. data/vendor/node_modules/cssom/package.json +0 -3
  10. data/vendor/node_modules/mocha/History.md +21 -0
  11. data/vendor/node_modules/mocha/Makefile +2 -2
  12. data/vendor/node_modules/mocha/_mocha.js +141 -48
  13. data/vendor/node_modules/mocha/bin/_mocha +53 -61
  14. data/vendor/node_modules/mocha/bin/mocha +3 -0
  15. data/vendor/node_modules/mocha/lib/interfaces/bdd.js +23 -6
  16. data/vendor/node_modules/mocha/lib/mocha.js +55 -4
  17. data/vendor/node_modules/mocha/lib/reporters/base.js +5 -5
  18. data/vendor/node_modules/mocha/lib/reporters/dot.js +5 -4
  19. data/vendor/node_modules/mocha/lib/reporters/html.js +25 -12
  20. data/vendor/node_modules/mocha/lib/reporters/landing.js +2 -2
  21. data/vendor/node_modules/mocha/lib/reporters/min.js +2 -2
  22. data/vendor/node_modules/mocha/lib/reporters/nyan.js +6 -6
  23. data/vendor/node_modules/mocha/lib/reporters/progress.js +1 -1
  24. data/vendor/node_modules/mocha/lib/reporters/xunit.js +5 -1
  25. data/vendor/node_modules/mocha/lib/runnable.js +1 -1
  26. data/vendor/node_modules/mocha/lib/runner.js +3 -3
  27. data/vendor/node_modules/mocha/lib/suite.js +7 -1
  28. data/vendor/node_modules/mocha/lib/utils.js +1 -1
  29. data/vendor/node_modules/mocha/mocha.css +18 -1
  30. data/vendor/node_modules/mocha/mocha.js +141 -48
  31. data/vendor/node_modules/mocha/package.json +6 -3
  32. data/vendor/node_modules/mocha/test.js +3 -5
  33. data/vendor/node_modules/should/History.md +11 -0
  34. data/vendor/node_modules/should/Readme.md +22 -10
  35. data/vendor/node_modules/should/lib/should.js +70 -62
  36. data/vendor/node_modules/should/package.json +5 -2
  37. data/vendor/node_modules/should/test/should.test.js +64 -0
  38. data/vendor/package.json +1 -1
  39. data/vendor/testing/foo.css +3 -0
  40. data/vendor/testing/index.js +1 -0
  41. data/vendor/testing/small.styl +12 -10
  42. metadata +3 -16
  43. data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/Snippets/bdd - after each.tmSnippet +0 -16
  44. data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/Snippets/bdd - after.tmSnippet +0 -16
  45. data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/Snippets/bdd - before each.tmSnippet +0 -16
  46. data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/Snippets/bdd - before.tmSnippet +0 -16
  47. data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/Snippets/bdd - it.tmSnippet +0 -16
  48. data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/Snippets/untitled.tmSnippet +0 -16
  49. data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/info.plist +0 -19
  50. data/vendor/node_modules/mocha/support/compile.js +0 -154
  51. data/vendor/node_modules/mocha/support/foot.js +0 -1
  52. data/vendor/node_modules/mocha/support/head.js +0 -2
  53. data/vendor/node_modules/mocha/support/tail.js +0 -150
  54. data/vendor/node_modules/mocha/support/template.html +0 -16
@@ -28,11 +28,6 @@ module.exports = function(suite){
28
28
 
29
29
  suite.on('pre-require', function(context){
30
30
 
31
- // noop variants
32
-
33
- context.xdescribe = function(){};
34
- context.xit = function(){};
35
-
36
31
  /**
37
32
  * Execute before running tests.
38
33
  */
@@ -65,6 +60,18 @@ module.exports = function(suite){
65
60
  suites[0].afterEach(fn);
66
61
  };
67
62
 
63
+ /**
64
+ * Pending describe.
65
+ */
66
+
67
+ context.xdescribe = context.xcontext = function(title, fn){
68
+ var suite = Suite.create(suites[0], title);
69
+ suite.pending = true;
70
+ suites.unshift(suite);
71
+ fn();
72
+ suites.shift();
73
+ };
74
+
68
75
  /**
69
76
  * Describe a "suite" with the given `title`
70
77
  * and callback `fn` containing nested suites
@@ -85,7 +92,17 @@ module.exports = function(suite){
85
92
  */
86
93
 
87
94
  context.it = context.specify = function(title, fn){
88
- suites[0].addTest(new Test(title, fn));
95
+ var suite = suites[0];
96
+ if (suite.pending) var fn = null;
97
+ suite.addTest(new Test(title, fn));
98
+ };
99
+
100
+ /**
101
+ * Pending test case.
102
+ */
103
+
104
+ context.xit = context.xspecify = function(title){
105
+ context.it(title);
89
106
  };
90
107
  });
91
108
  };
@@ -116,13 +116,15 @@ Mocha.prototype.ui = function(name){
116
116
  * @api private
117
117
  */
118
118
 
119
- Mocha.prototype.loadFiles = function(){
119
+ Mocha.prototype.loadFiles = function(fn){
120
120
  var suite = this.suite;
121
+ var pending = this.files.length;
121
122
  this.files.forEach(function(file){
122
123
  file = path.resolve(file);
123
124
  suite.emit('pre-require', global, file);
124
125
  suite.emit('require', require(file), file);
125
126
  suite.emit('post-require', global, file);
127
+ --pending || (fn && fn());
126
128
  });
127
129
  };
128
130
 
@@ -132,7 +134,7 @@ Mocha.prototype.loadFiles = function(){
132
134
  * @api private
133
135
  */
134
136
 
135
- Mocha.prototype.growl = function(runner, reporter) {
137
+ Mocha.prototype._growl = function(runner, reporter) {
136
138
  var notify = require('growl');
137
139
 
138
140
  runner.on('end', function(){
@@ -165,6 +167,55 @@ Mocha.prototype.grep = function(re){
165
167
  return this;
166
168
  };
167
169
 
170
+ /**
171
+ * Invert `.grep()` matches.
172
+ *
173
+ * @return {Mocha}
174
+ * @api public
175
+ */
176
+
177
+ Mocha.prototype.invert = function(){
178
+ this.options.invert = true;
179
+ return this;
180
+ };
181
+
182
+ /**
183
+ * Ignore global leaks.
184
+ *
185
+ * @return {Mocha}
186
+ * @api public
187
+ */
188
+
189
+ Mocha.prototype.ignoreLeaks = function(){
190
+ this.options.ignoreLeaks = true;
191
+ return this;
192
+ };
193
+
194
+ /**
195
+ * Enable growl support.
196
+ *
197
+ * @return {Mocha}
198
+ * @api public
199
+ */
200
+
201
+ Mocha.prototype.growl = function(){
202
+ this.options.growl = true;
203
+ return this;
204
+ };
205
+
206
+ /**
207
+ * Ignore `globals`.
208
+ *
209
+ * @param {Array} globals
210
+ * @return {Mocha}
211
+ * @api public
212
+ */
213
+
214
+ Mocha.prototype.globals = function(globals){
215
+ this.options.globals = globals;
216
+ return this;
217
+ };
218
+
168
219
  /**
169
220
  * Run tests and invoke `fn()` when complete.
170
221
  *
@@ -180,8 +231,8 @@ Mocha.prototype.run = function(fn){
180
231
  var runner = new exports.Runner(suite);
181
232
  var reporter = new this._reporter(runner);
182
233
  runner.ignoreLeaks = options.ignoreLeaks;
183
- if (options.grep) runner.grep(options.grep);
234
+ if (options.grep) runner.grep(options.grep, options.invert);
184
235
  if (options.globals) runner.globals(options.globals);
185
- if (options.growl) this.growl(runner, reporter);
236
+ if (options.growl) this._growl(runner, reporter);
186
237
  return runner.run(fn);
187
238
  };
@@ -74,7 +74,7 @@ exports.colors = {
74
74
 
75
75
  var color = exports.color = function(type, str) {
76
76
  if (!exports.useColors) return str;
77
- return '\033[' + exports.colors[type] + 'm' + str + '\033[0m';
77
+ return '\u001b[' + exports.colors[type] + 'm' + str + '\u001b[0m';
78
78
  };
79
79
 
80
80
  /**
@@ -97,19 +97,19 @@ exports.window = {
97
97
 
98
98
  exports.cursor = {
99
99
  hide: function(){
100
- process.stdout.write('\033[?25l');
100
+ process.stdout.write('\u001b[?25l');
101
101
  },
102
102
 
103
103
  show: function(){
104
- process.stdout.write('\033[?25h');
104
+ process.stdout.write('\u001b[?25h');
105
105
  },
106
106
 
107
107
  deleteLine: function(){
108
- process.stdout.write('\033[2K');
108
+ process.stdout.write('\u001b[2K');
109
109
  },
110
110
 
111
111
  beginningOfLine: function(){
112
- process.stdout.write('\033[0G');
112
+ process.stdout.write('\u001b[0G');
113
113
  },
114
114
 
115
115
  CR: function(){
@@ -25,6 +25,7 @@ function Dot(runner) {
25
25
  var self = this
26
26
  , stats = this.stats
27
27
  , width = Base.window.width * .75 | 0
28
+ , c = '․'
28
29
  , n = 0;
29
30
 
30
31
  runner.on('start', function(){
@@ -32,21 +33,21 @@ function Dot(runner) {
32
33
  });
33
34
 
34
35
  runner.on('pending', function(test){
35
- process.stdout.write(color('pending', '.'));
36
+ process.stdout.write(color('pending', c));
36
37
  });
37
38
 
38
39
  runner.on('pass', function(test){
39
40
  if (++n % width == 0) process.stdout.write('\n ');
40
41
  if ('slow' == test.speed) {
41
- process.stdout.write(color('bright yellow', '.'));
42
+ process.stdout.write(color('bright yellow', c));
42
43
  } else {
43
- process.stdout.write(color(test.speed, '.'));
44
+ process.stdout.write(color(test.speed, c));
44
45
  }
45
46
  });
46
47
 
47
48
  runner.on('fail', function(test, err){
48
49
  if (++n % width == 0) process.stdout.write('\n ');
49
- process.stdout.write(color('fail', '.'));
50
+ process.stdout.write(color('fail', c));
50
51
  });
51
52
 
52
53
  runner.on('end', function(){
@@ -30,8 +30,8 @@ exports = module.exports = HTML;
30
30
 
31
31
  var statsTemplate = '<ul id="stats">'
32
32
  + '<li class="progress"><canvas width="40" height="40"></canvas></li>'
33
- + '<li class="passes">passes: <em>0</em></li>'
34
- + '<li class="failures">failures: <em>0</em></li>'
33
+ + '<li class="passes"><a href="#">passes:</a> <em>0</em></li>'
34
+ + '<li class="failures"><a href="#">failures:</a> <em>0</em></li>'
35
35
  + '<li class="duration">duration: <em>0</em>s</li>'
36
36
  + '</ul>';
37
37
 
@@ -52,7 +52,9 @@ function HTML(runner) {
52
52
  , stat = fragment(statsTemplate)
53
53
  , items = stat.getElementsByTagName('li')
54
54
  , passes = items[1].getElementsByTagName('em')[0]
55
+ , passesLink = items[1].getElementsByTagName('a')[0]
55
56
  , failures = items[2].getElementsByTagName('em')[0]
57
+ , failuresLink = items[2].getElementsByTagName('a')[0]
56
58
  , duration = items[3].getElementsByTagName('em')[0]
57
59
  , canvas = stat.getElementsByTagName('canvas')[0]
58
60
  , report = fragment('<ul id="report"></ul>')
@@ -67,6 +69,18 @@ function HTML(runner) {
67
69
 
68
70
  if (!root) return error('#mocha div missing, add it to your document');
69
71
 
72
+ // pass toggle
73
+ on(passesLink, 'click', function () {
74
+ var className = /pass/.test(report.className) ? '' : ' pass';
75
+ report.className = report.className.replace(/fail|pass/g, '') + className;
76
+ });
77
+
78
+ // failure toggle
79
+ on(failuresLink, 'click', function () {
80
+ var className = /fail/.test(report.className) ? '' : ' fail';
81
+ report.className = report.className.replace(/fail|pass/g, '') + className;
82
+ });
83
+
70
84
  root.appendChild(stat);
71
85
  root.appendChild(report);
72
86
 
@@ -134,17 +148,16 @@ function HTML(runner) {
134
148
  }
135
149
 
136
150
  // toggle code
137
- var h2 = el.getElementsByTagName('h2')[0];
138
-
139
- on(h2, 'click', function(){
140
- pre.style.display = 'none' == pre.style.display
141
- ? 'block'
142
- : 'none';
143
- });
144
-
145
- // code
146
151
  // TODO: defer
147
152
  if (!test.pending) {
153
+ var h2 = el.getElementsByTagName('h2')[0];
154
+
155
+ on(h2, 'click', function(){
156
+ pre.style.display = 'none' == pre.style.display
157
+ ? 'inline-block'
158
+ : 'none';
159
+ });
160
+
148
161
  var pre = fragment('<pre><code>%e</code></pre>', utils.clean(test.fn.toString()));
149
162
  el.appendChild(pre);
150
163
  pre.style.display = 'none';
@@ -203,4 +216,4 @@ function on(el, event, fn) {
203
216
  } else {
204
217
  el.attachEvent('on' + event, fn);
205
218
  }
206
- }
219
+ }
@@ -73,14 +73,14 @@ function Landing(runner) {
73
73
  }
74
74
 
75
75
  // render landing strip
76
- stream.write('\033[4F\n\n');
76
+ stream.write('\u001b[4F\n\n');
77
77
  stream.write(runway());
78
78
  stream.write('\n ');
79
79
  stream.write(color('runway', Array(col).join('⋅')));
80
80
  stream.write(plane)
81
81
  stream.write(color('runway', Array(width - col).join('⋅') + '\n'));
82
82
  stream.write(runway());
83
- stream.write('\033[0m');
83
+ stream.write('\u001b[0m');
84
84
  });
85
85
 
86
86
  runner.on('end', function(){
@@ -23,9 +23,9 @@ function Min(runner) {
23
23
 
24
24
  runner.on('start', function(){
25
25
  // clear screen
26
- process.stdout.write('\033[2J');
26
+ process.stdout.write('\u001b[2J');
27
27
  // set cursor position
28
- process.stdout.write('\033[1;3H');
28
+ process.stdout.write('\u001b[1;3H');
29
29
  });
30
30
 
31
31
  runner.on('end', this.epilogue.bind(this));
@@ -87,7 +87,7 @@ NyanCat.prototype.drawScoreboard = function(){
87
87
 
88
88
  function draw(color, n) {
89
89
  write(' ');
90
- write('\033[' + color + 'm' + n + '\033[0m');
90
+ write('\u001b[' + color + 'm' + n + '\u001b[0m');
91
91
  write('\n');
92
92
  }
93
93
 
@@ -126,7 +126,7 @@ NyanCat.prototype.drawRainbow = function(){
126
126
  var self = this;
127
127
 
128
128
  this.trajectories.forEach(function(line, index) {
129
- write('\033[' + self.scoreboardWidth + 'C');
129
+ write('\u001b[' + self.scoreboardWidth + 'C');
130
130
  write(line.join(''));
131
131
  write('\n');
132
132
  });
@@ -146,7 +146,7 @@ NyanCat.prototype.drawNyanCat = function(status) {
146
146
  var startWidth = this.scoreboardWidth + this.trajectories[0].length;
147
147
 
148
148
  [0, 1, 2, 3].forEach(function(index) {
149
- write('\033[' + startWidth + 'C');
149
+ write('\u001b[' + startWidth + 'C');
150
150
 
151
151
  switch (index) {
152
152
  case 0:
@@ -194,7 +194,7 @@ NyanCat.prototype.drawNyanCat = function(status) {
194
194
  */
195
195
 
196
196
  NyanCat.prototype.cursorUp = function(n) {
197
- write('\033[' + n + 'A');
197
+ write('\u001b[' + n + 'A');
198
198
  };
199
199
 
200
200
  /**
@@ -205,7 +205,7 @@ NyanCat.prototype.cursorUp = function(n) {
205
205
  */
206
206
 
207
207
  NyanCat.prototype.cursorDown = function(n) {
208
- write('\033[' + n + 'B');
208
+ write('\u001b[' + n + 'B');
209
209
  };
210
210
 
211
211
  /**
@@ -241,7 +241,7 @@ NyanCat.prototype.generateColors = function(){
241
241
  NyanCat.prototype.rainbowify = function(str){
242
242
  var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length];
243
243
  this.colorIndex += 1;
244
- return '\033[38;5;' + color + 'm' + str + '\033[0m';
244
+ return '\u001b[38;5;' + color + 'm' + str + '\u001b[0m';
245
245
  };
246
246
 
247
247
  /**
@@ -60,7 +60,7 @@ function Progress(runner, options) {
60
60
  , i = width - n;
61
61
 
62
62
  cursor.CR();
63
- process.stdout.write('\033[J');
63
+ process.stdout.write('\u001b[J');
64
64
  process.stdout.write(color('progress', ' ' + options.open));
65
65
  process.stdout.write(Array(n).join(options.complete));
66
66
  process.stdout.write(Array(i).join(options.incomplete));
@@ -36,7 +36,11 @@ function XUnit(runner) {
36
36
  , tests = []
37
37
  , self = this;
38
38
 
39
- runner.on('test end', function(test){
39
+ runner.on('pass', function(test){
40
+ tests.push(test);
41
+ });
42
+
43
+ runner.on('fail', function(test){
40
44
  tests.push(test);
41
45
  });
42
46
 
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  var EventEmitter = require('events').EventEmitter
7
- , debug = require('debug')('runnable');
7
+ , debug = require('debug')('mocha:runnable');
8
8
 
9
9
  /**
10
10
  * Save timer references to avoid Sinon interfering (see GH-237).
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  var EventEmitter = require('events').EventEmitter
7
- , debug = require('debug')('runner')
7
+ , debug = require('debug')('mocha:runner')
8
8
  , Test = require('./test')
9
9
  , utils = require('./utils')
10
10
  , filter = utils.filter
@@ -411,9 +411,9 @@ Runner.prototype.runSuite = function(suite, fn){
411
411
  */
412
412
 
413
413
  Runner.prototype.uncaught = function(err){
414
- debug('uncaught exception');
414
+ debug('uncaught exception %s', err.message);
415
415
  var runnable = this.currentRunnable;
416
- if ('failed' == runnable.state) return;
416
+ if (!runnable || 'failed' == runnable.state) return;
417
417
  runnable.clearTimeout();
418
418
  err.uncaught = true;
419
419
  this.fail(runnable, err);
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  var EventEmitter = require('events').EventEmitter
7
- , debug = require('debug')('suite')
7
+ , debug = require('debug')('mocha:suite')
8
8
  , utils = require('./utils')
9
9
  , Hook = require('./hook');
10
10
 
@@ -30,6 +30,7 @@ exports = module.exports = Suite;
30
30
  exports.create = function(parent, title){
31
31
  var suite = new Suite(title, parent.ctx);
32
32
  suite.parent = parent;
33
+ if (parent.pending) suite.pending = true;
33
34
  title = suite.fullTitle();
34
35
  parent.addSuite(suite);
35
36
  return suite;
@@ -49,6 +50,7 @@ function Suite(title, ctx) {
49
50
  this.ctx = ctx;
50
51
  this.suites = [];
51
52
  this.tests = [];
53
+ this.pending = false;
52
54
  this._beforeEach = [];
53
55
  this._beforeAll = [];
54
56
  this._afterEach = [];
@@ -120,6 +122,7 @@ Suite.prototype.bail = function(bail){
120
122
  */
121
123
 
122
124
  Suite.prototype.beforeAll = function(fn){
125
+ if (this.pending) return this;
123
126
  var hook = new Hook('"before all" hook', fn);
124
127
  hook.parent = this;
125
128
  hook.timeout(this.timeout());
@@ -138,6 +141,7 @@ Suite.prototype.beforeAll = function(fn){
138
141
  */
139
142
 
140
143
  Suite.prototype.afterAll = function(fn){
144
+ if (this.pending) return this;
141
145
  var hook = new Hook('"after all" hook', fn);
142
146
  hook.parent = this;
143
147
  hook.timeout(this.timeout());
@@ -156,6 +160,7 @@ Suite.prototype.afterAll = function(fn){
156
160
  */
157
161
 
158
162
  Suite.prototype.beforeEach = function(fn){
163
+ if (this.pending) return this;
159
164
  var hook = new Hook('"before each" hook', fn);
160
165
  hook.parent = this;
161
166
  hook.timeout(this.timeout());
@@ -174,6 +179,7 @@ Suite.prototype.beforeEach = function(fn){
174
179
  */
175
180
 
176
181
  Suite.prototype.afterEach = function(fn){
182
+ if (this.pending) return this;
177
183
  var hook = new Hook('"after each" hook', fn);
178
184
  hook.parent = this;
179
185
  hook.timeout(this.timeout());
@@ -6,7 +6,7 @@
6
6
  var fs = require('fs')
7
7
  , path = require('path')
8
8
  , join = path.join
9
- , debug = require('debug')('watch');
9
+ , debug = require('debug')('mocha:watch');
10
10
 
11
11
  /**
12
12
  * Ignored directories.
@@ -1,4 +1,4 @@
1
-
1
+ @charset "UTF-8";
2
2
  body {
3
3
  font: 20px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
4
4
  padding: 60px 50px;
@@ -143,6 +143,14 @@ body {
143
143
  -webkit-box-shadow: 0 1px 3px #eee;
144
144
  }
145
145
 
146
+ #report.pass .test.fail {
147
+ display: none;
148
+ }
149
+
150
+ #report.fail .test.pass {
151
+ display: none;
152
+ }
153
+
146
154
  #error {
147
155
  color: #c00;
148
156
  font-size: 1.5 em;
@@ -168,6 +176,15 @@ body {
168
176
  color: black;
169
177
  }
170
178
 
179
+ #stats a {
180
+ text-decoration: none;
181
+ color: inherit;
182
+ }
183
+
184
+ #stats a:hover {
185
+ border-bottom: 1px solid #eee;
186
+ }
187
+
171
188
  #stats li {
172
189
  display: inline-block;
173
190
  margin: 0 5px;