mochiscript 0.4.1 → 0.4.3.pre1

Sign up to get free protection for your applications and to get access to all the features.
@@ -241,7 +241,7 @@ var JS2 = $m;
241
241
  });
242
242
 
243
243
  $m.out = function () {
244
- for(var i=0,_c1=arguments,_l1=_c1.length,arg;(arg=_c1[i])||(i<_l1);i++){
244
+ for (var i=0,arg=null,_list_0=arguments,_len_0=_list_0.length;(arg=_list_0[i])||i<_len_0;i++){
245
245
  $m.ADAPTER.out(arg);
246
246
  if (i < arguments.length-1) {
247
247
  $m.ADAPTER.out(',');
@@ -250,7 +250,7 @@ var JS2 = $m;
250
250
  };
251
251
 
252
252
  $m.outs = function () {
253
- for(var _i1=0,_c1=arguments,_l1=_c1.length,arg;(arg=_c1[_i1])||(_i1<_l1);_i1++){
253
+ for (var _i_0=0,arg=null,_list_0=arguments,_len_0=_list_0.length;(arg=_list_0[_i_0])||_i_0<_len_0;_i_0++){
254
254
  $m.ADAPTER.outs(arg);
255
255
  }
256
256
  };
@@ -259,6 +259,210 @@ var JS2 = $m;
259
259
  })(undefined, $m);
260
260
 
261
261
 
262
+ $m.Class.extend("JSML", function(KLASS, OO){
263
+ OO.addStaticMember("process", function(txt){
264
+ return new $m.JSML(txt);
265
+ });
266
+
267
+ OO.addMember("initialize", function(txt){
268
+ var lines = txt.split(/\n/);
269
+ this.root = new $c.JSMLElement();
270
+ this.stack = [ this.root ];
271
+
272
+ for (var _i_0=0,l=null,_list_0=lines,_len_0=_list_0.length;(l=_list_0[_i_0])||_i_0<_len_0;_i_0++){
273
+ if (l.match(/^\s*$/)) continue;
274
+ this.processLine(l);
275
+ }
276
+
277
+ var toEval = 'function stuff() { var out = [];\n' + this.flatten().join('') + '\n return out.join("");\n}';
278
+ eval(toEval);
279
+
280
+ this.result = function(bound) {
281
+ bound = bound || {};
282
+ return stuff.call(bound);
283
+ };
284
+ });
285
+
286
+ OO.addMember("flatten", function(){
287
+ return this.root.flatten();
288
+ });
289
+
290
+ OO.addMember("processLine", function(line){
291
+ if (line.match(/^\s*$/)) return;
292
+
293
+ var ele = new $m.JSMLElement(line);
294
+ var scope = this.getScope();
295
+
296
+ if (ele.scope == scope) {
297
+ this.stack.pop();
298
+ this.getLast().push(ele);
299
+ this.stack.push(ele);
300
+ } else if (ele.scope > scope) {
301
+ this.getLast().push(ele);
302
+ this.stack.push(ele);
303
+ } else if (ele.scope < scope) {
304
+ var diff = scope - ele.scope + 1;
305
+ while(diff-- > 0) {
306
+ this.stack.pop();
307
+ }
308
+ this.getLast().push(ele);
309
+ this.stack.push(ele);
310
+ }
311
+ });
312
+
313
+
314
+ OO.addMember("getScope", function(){
315
+ return this.stack.length - 1;
316
+ });
317
+
318
+ OO.addMember("getLast", function(){
319
+ return this.stack[this.stack.length-1];
320
+ });
321
+
322
+ });
323
+
324
+ $m.Class.extend("JSMLElement", function(KLASS, OO){
325
+ OO.addMember("SCOPE_REGEX", /^(\s*)(.*)$/);
326
+ OO.addMember("SPLIT_REGEX", /^((?:\.|\#|\%)[^=\s\{]*)?(\{.*\})?(=|-)?(?:\s*)(.*)$/);
327
+ OO.addMember("TOKEN_REGEX", /(\%|\#|\.)([\w][\w\-]*)/g);
328
+ OO.addMember("JS_REGEX", /^(-|=)(.*)$/g);
329
+ OO.addMember("SCOPE_OFFSET", 1);
330
+ OO.addMember("SELF_CLOSING", { area: null, basefont: null, br: null, hr: null, input: null, img: null, link: null, meta: null });
331
+
332
+ OO.addMember("initialize", function(line){
333
+ this.children = [];
334
+
335
+ if (line == null) {
336
+ this.scope = this.SCOPE_OFFSET;
337
+ return;
338
+ }
339
+
340
+ var spaceMatch = line.match(this.SCOPE_REGEX);
341
+ this.scope = spaceMatch[1].length / 2 + this.SCOPE_OFFSET;
342
+
343
+ this.classes = [];
344
+ this.nodeID = null;
345
+
346
+ this.parse(spaceMatch[2]);
347
+ });
348
+
349
+ OO.addMember("push", function(child){
350
+ this.children.push(child);
351
+ });
352
+
353
+ OO.addMember("parse", function(line){
354
+ this.attributes;
355
+ this.line = line;
356
+ var self = this;
357
+
358
+ var splitted = line.match(this.SPLIT_REGEX);
359
+ var tokens = splitted[1];
360
+ var attrs = splitted[2];
361
+ var jsType = splitted[3];
362
+ var content = splitted[4];
363
+
364
+ if (tokens) {
365
+ tokens.replace(this.TOKEN_REGEX, function(match, type, name) {
366
+ switch(type) {
367
+ case '%': self.nodeType = name; break;
368
+ case '.': self.classes.push(name); break;
369
+ case '#': self.nodeID = name; break;
370
+ }
371
+ return '';
372
+ });
373
+ }
374
+
375
+ if (jsType == '=') {
376
+ this.jsEQ = content;
377
+ } else if (jsType == '-') {
378
+ this.jsExec = content;
379
+ } else {
380
+ this.content = content;
381
+ }
382
+
383
+ if (attrs) {
384
+ this.attributes = attrs;
385
+ }
386
+
387
+ if (!this.nodeType && (this.classes.length || this.nodeID)) {
388
+ this.nodeType = 'div';
389
+ }
390
+
391
+ if (this.SELF_CLOSING.hasOwnProperty(this.nodeType) && this.children.length == 0) {
392
+ this.selfClose = '/';
393
+ } else {
394
+ this.selfClose = '';
395
+ }
396
+ });
397
+
398
+ OO.addMember("flatten", function(){
399
+ var out = [];
400
+
401
+ for (var _i_0=0,c=null,_list_0=this.children,_len_0=_list_0.length;(c=_list_0[_i_0])||_i_0<_len_0;_i_0++){
402
+ var arr = c.flatten();
403
+ for (var _i_1=0,item=null,_list_1=arr,_len_1=_list_1.length;(item=_list_1[_i_1])||_i_1<_len_1;_i_1++){
404
+ out.push(item);
405
+ }
406
+ }
407
+
408
+ if (this.nodeType) {
409
+ this.handleJsEQ(out);
410
+ this.handleContent(out);
411
+ out.unshift('out.push("<' + this.nodeType + '"+$m.ROOT.JSMLElement.parseAttributes(' + (this.attributes || "{}") + ', ' + JSON.stringify(this.classes || []) + ', ' + JSON.stringify(this.id || null) + ')+"' + this.selfClose + '>");\n');
412
+ if (this.selfClose == '') {
413
+ out.push('out.push(' + JSON.stringify("</"+(this.nodeType)+">") + ');\n');
414
+ }
415
+ } else {
416
+ this.handleJsExec(out);
417
+ this.handleJsEQ(out);
418
+ this.handleContent(out);
419
+ }
420
+
421
+ return out;
422
+ });
423
+
424
+ OO.addMember("handleJsEQ", function(out){
425
+ if (this.jsEQ) {
426
+ this.jsEQ = this.jsEQ.replace(/;\s*$/, '');
427
+ out.unshift('out.push(' + this.jsEQ + ');\n');
428
+ }
429
+ });
430
+
431
+ OO.addMember("handleContent", function(out){
432
+ if (this.content != null && this.content.length > 0) {
433
+ out.unshift('out.push(' + JSON.stringify(this.content) + ');\n');
434
+ }
435
+ });
436
+
437
+
438
+ OO.addMember("handleJsExec", function(out){
439
+ if (this.jsExec) {
440
+ out.unshift(this.jsExec);
441
+ if (this.jsExec.match(/\{\s*$/)) {
442
+ out.push("}\n");
443
+ }
444
+ }
445
+ });
446
+
447
+ OO.addStaticMember("parseAttributes", function(hash, classes, id){
448
+ var out = [];
449
+ classes = classes || [];
450
+ if (hash['class']) classes.push(hash['class']);
451
+ if (classes.length) hash['class'] = classes.join(" ");
452
+
453
+ for (var k in hash) {
454
+ if (hash.hasOwnProperty(k)) {
455
+ out.push(k + '=' + JSON.stringify(hash[k]));
456
+ }
457
+ }
458
+ return (out.length ? ' ' : '') + out.join(' ');
459
+ });
460
+ });
461
+
462
+ $m.JSML = $m.ROOT.JSML;
463
+ $m.JSMLElement = $m.ROOT.JSMLElement;
464
+
465
+
262
466
  var IDENT = "[\\$\\w]+";
263
467
  var TOKENS = [
264
468
  [ "SPACE", "\\s+" ],
@@ -306,7 +510,7 @@ var REGEXES = [];
306
510
  var MAIN_REGEX = null;
307
511
  var RTYPES = {};
308
512
 
309
- for(var i=0,_c1=TOKENS,_l1=_c1.length,t;(t=_c1[i])||(i<_l1);i++){
513
+ for (var i=0,t=null,_list_0=TOKENS,_len_0=_list_0.length;(t=_list_0[i])||i<_len_0;i++){
310
514
  TYPES[t[0]] = i;
311
515
  RTYPES[i] = t[0];
312
516
  REGEXES.push("(" + t[1] + ")");
@@ -319,26 +523,26 @@ var EXTRA_REGEX_STRINGS = {
319
523
 
320
524
  var MAIN_REGEX = new RegExp("^" + REGEXES.join('|'));
321
525
 
322
- JS2.Class.extend('Tokens', function(KLASS, OO){
323
- OO.addMember("initialize",function (str) {
526
+ $m.Class.extend("Tokens", function(KLASS, OO){
527
+ OO.addMember("initialize", function(str){
324
528
  this.orig = str;
325
529
  this.str = str;
326
530
  this.iterator = 0;
327
531
  this.consumed = 0;
328
532
  });
329
533
 
330
- OO.addMember("peek",function () {
534
+ OO.addMember("peek", function(){
331
535
  if (this._peek) return this._peek;
332
536
 
333
537
  var m = this.str.match(MAIN_REGEX);
334
538
  if (!m) return null;
335
539
 
336
- for(var i=0,_c1=TOKENS,_l1=_c1.length,ele;(ele=_c1[i])||(i<_l1);i++){
540
+ for (var i=0,ele=null,_list_0=TOKENS,_len_0=_list_0.length;(ele=_list_0[i])||i<_len_0;i++){
337
541
  if (m[i+1]) return this._peek = [ i, m[i+1], ele[2] ];
338
542
  }
339
543
  });
340
544
 
341
- OO.addStaticMember("regex",function (str) {
545
+ OO.addStaticMember("regex", function(str){
342
546
  var regexStr = str.replace(/\*\*/g, "\\s*").replace(/\s+/g, "\\s+").replace(/\>\</g, ">\\s*<").replace(/\<(\w+)\>/g, function($1,$2,$3){
343
547
  return "(" + (EXTRA_REGEX_STRINGS[$2] || TOKENS[TYPES[$2]][1]) + ")";
344
548
  });
@@ -346,17 +550,17 @@ JS2.Class.extend('Tokens', function(KLASS, OO){
346
550
  return new RegExp("^" + regexStr);
347
551
  });
348
552
 
349
- OO.addMember("consume",function (n) {
553
+ OO.addMember("consume", function(n){
350
554
  this.str = this.str.substr(n, this.str.length-n);
351
555
  this._peek = null;
352
556
  this.consumed += n;
353
557
  });
354
558
 
355
- OO.addMember("length",function () {
559
+ OO.addMember("length", function(){
356
560
  return this.str.length;
357
561
  });
358
562
 
359
- OO.addMember("lookback",function (n) {
563
+ OO.addMember("lookback", function(n){
360
564
  var starting = this.consumed - 1;
361
565
 
362
566
  //$m.outs(JSON.stringify(this.orig.substr(starting-10, 10)));
@@ -370,18 +574,18 @@ JS2.Class.extend('Tokens', function(KLASS, OO){
370
574
  return this.orig.substr(starting-n+1, n);
371
575
  });
372
576
 
373
- OO.addMember("lookahead",function (n) {
577
+ OO.addMember("lookahead", function(n){
374
578
  var starting = this.consumed;
375
579
  while (this.orig.charAt(starting).match(/\s/)) starting++;
376
580
  return this.orig.substr(starting, n);
377
581
  });
378
582
 
379
583
 
380
- OO.addMember("any",function () {
584
+ OO.addMember("any", function(){
381
585
  return this.str.length > 0;
382
586
  });
383
587
 
384
- OO.addMember("match",function (regex) {
588
+ OO.addMember("match", function(regex){
385
589
  return this.str.match(regex);
386
590
  });
387
591
  });
@@ -408,22 +612,22 @@ $m.pp = function (str) {
408
612
 
409
613
 
410
614
 
411
- JS2.Class.extend('RootParser', function(KLASS, OO){
412
- OO.addMember("handlers",{});
615
+ $m.Class.extend("RootParser", function(KLASS, OO){
616
+ OO.addMember("handlers", {});
413
617
 
414
- OO.addMember("initialize",function () {
618
+ OO.addMember("initialize", function(){
415
619
  this.out = [];
416
620
  this.finished = false;
417
621
  });
418
622
 
419
- OO.addMember("parse",function (tokens) {
623
+ OO.addMember("parse", function(tokens){
420
624
  var len = tokens.length();
421
625
  if (this.startParse(tokens) === false || this.parseTokens(tokens) === false || this.endParse(tokens) === false) return false
422
626
  return len != tokens.length();
423
627
  });
424
628
 
425
629
  // TODO: messy clean this process up
426
- OO.addMember("parseTokens",function (tokens) {
630
+ OO.addMember("parseTokens", function(tokens){
427
631
  var sanity = 100;
428
632
  var origLen = tokens.length();
429
633
 
@@ -459,32 +663,32 @@ JS2.Class.extend('RootParser', function(KLASS, OO){
459
663
  }
460
664
  });
461
665
 
462
- OO.addMember("startParse",function () { });
463
- OO.addMember("endParse",function () { });
666
+ OO.addMember("startParse", function(){ });
667
+ OO.addMember("endParse", function(){ });
464
668
 
465
- OO.addMember("handleToken",function (token, tokens) {
669
+ OO.addMember("handleToken", function(token, tokens){
466
670
  this.out.push(token[1]);
467
671
  tokens.consume(token[1].length);
468
672
  });
469
673
 
470
- OO.addMember("toString",function () {
674
+ OO.addMember("toString", function(){
471
675
  var ret = [];
472
- for(var _i1=0,_c1=this.out,_l1=_c1.length,ele;(ele=_c1[_i1])||(_i1<_l1);_i1++){
676
+ for (var _i_0=0,ele=null,_list_0=this.out,_len_0=_list_0.length;(ele=_list_0[_i_0])||_i_0<_len_0;_i_0++){
473
677
  ret.push(ele === undefined ? '' : ele.toString());
474
678
  }
475
679
  return ret.join("");
476
680
  });
477
681
 
478
- OO.addMember("toJSON",function () {
682
+ OO.addMember("toJSON", function(){
479
683
  return JSON.stringify(this.toStruct());
480
684
  });
481
685
 
482
- OO.addMember("pp",function (space) {
686
+ OO.addMember("pp", function(space){
483
687
  space = space == null ? " " : space + " ";
484
688
 
485
689
  var ret = [ space + (this._TYPE || 'NODE') ];
486
690
  var generic = [];
487
- for(var _i1=0,_c1=this.out,_l1=_c1.length,ele;(ele=_c1[_i1])||(_i1<_l1);_i1++){
691
+ for (var _i_0=0,ele=null,_list_0=this.out,_len_0=_list_0.length;(ele=_list_0[_i_0])||_i_0<_len_0;_i_0++){
488
692
  if (ele === undefined) {
489
693
  ret.push(space + " UNDEFINED!");
490
694
  continue;
@@ -510,34 +714,33 @@ JS2.Class.extend('RootParser', function(KLASS, OO){
510
714
  return ret.join("\n");
511
715
  });
512
716
 
513
- OO.addMember("toStruct",function () {
717
+ OO.addMember("toStruct", function(){
514
718
  var ret = [];
515
- for(var _i1=0,_c1=this.out,_l1=_c1.length,ele;(ele=_c1[_i1])||(_i1<_l1);_i1++){
719
+ for (var _i_0=0,ele=null,_list_0=this.out,_len_0=_list_0.length;(ele=_list_0[_i_0])||_i_0<_len_0;_i_0++){
516
720
  ret.push(ele.toStruct ? ele.toStruct() : ele);
517
721
  }
518
722
  return ret;
519
723
  });
520
724
 
521
725
  // intercepts parser class for special cases
522
- OO.addMember("getHandler",function (token) {
726
+ OO.addMember("getHandler", function(token){
523
727
  return null;
524
728
  });
525
729
 
526
- OO.addMember("chop",function () {
730
+ OO.addMember("chop", function(){
527
731
  this.out.pop();
528
732
  });
529
733
  });
530
734
 
531
735
  var RootParser = $c.RootParser;
532
736
 
533
- RootParser.extend('ClassParser', function(KLASS, OO){
534
- // private closure
535
-
737
+ RootParser.extend("ClassParser", function(KLASS, OO){
738
+
536
739
  var REGEX = Tokens.regex("(?:<EXPORT>|<PUBLIC>|<CLASS>) <CLASSNAME><LCURLY>");
537
740
  var EXTENDS = Tokens.regex("(?:<EXPORT>|<PUBLIC>|<CLASS>) <CLASSNAME><EXTENDS><CLASSNAME><LCURLY>");
538
741
 
539
742
 
540
- OO.addMember("parse",function (tokens) {
743
+ OO.addMember("parse", function(tokens){
541
744
  var m = tokens.match(REGEX) || tokens.match(EXTENDS);
542
745
  var name = m[4];
543
746
  var extending = m[6] || "$m.Class";
@@ -554,13 +757,12 @@ RootParser.extend('ClassParser', function(KLASS, OO){
554
757
  });
555
758
  });
556
759
 
557
- RootParser.extend('ModuleParser', function(KLASS, OO){
558
- // private closure
559
-
760
+ RootParser.extend("ModuleParser", function(KLASS, OO){
761
+
560
762
  var REGEX = Tokens.regex("<MODULE> <CLASSNAME><LCURLY>");
561
763
 
562
764
 
563
- OO.addMember("parse",function (tokens) {
765
+ OO.addMember("parse", function(tokens){
564
766
  var m = tokens.match(REGEX);
565
767
  if (!m) return false;
566
768
  var name = m[2];
@@ -573,15 +775,15 @@ RootParser.extend('ModuleParser', function(KLASS, OO){
573
775
  });
574
776
  });
575
777
 
576
- RootParser.extend('CurlyParser', function(KLASS, OO){
577
- OO.addMember("_TYPE",'CurlyParser');
778
+ RootParser.extend("CurlyParser", function(KLASS, OO){
779
+ OO.addMember("_TYPE", 'CurlyParser');
578
780
 
579
- OO.addMember("initialize",function (chop) {
781
+ OO.addMember("initialize", function(chop){
580
782
  this.chop = chop;
581
783
  this.$super();
582
784
  });
583
785
 
584
- OO.addMember("handleToken",function (token, tokens) {
786
+ OO.addMember("handleToken", function(token, tokens){
585
787
  if (this.curly === undefined) this.curly = 0;
586
788
  if (this.foo) console.log(RTYPES[token[0]], token[1]);
587
789
  if (token[0] == TYPES.RCURLY) {
@@ -597,7 +799,7 @@ RootParser.extend('CurlyParser', function(KLASS, OO){
597
799
  }
598
800
  });
599
801
 
600
- OO.addMember("endParse",function (tokens) {
802
+ OO.addMember("endParse", function(tokens){
601
803
  if (this.chop) {
602
804
  this.out.pop();
603
805
  this.out.shift();
@@ -607,8 +809,8 @@ RootParser.extend('CurlyParser', function(KLASS, OO){
607
809
 
608
810
  var CurlyParser = $c.CurlyParser;
609
811
 
610
- CurlyParser.extend('ClassContentParser', function(KLASS, OO){
611
- OO.addMember("getHandler",function (token) {
812
+ CurlyParser.extend("ClassContentParser", function(KLASS, OO){
813
+ OO.addMember("getHandler", function(token){
612
814
  switch(token[0]) {
613
815
  case TYPES.STATIC: return "StaticParser";
614
816
  case TYPES.VAR: return "MemberParser";
@@ -620,8 +822,8 @@ CurlyParser.extend('ClassContentParser', function(KLASS, OO){
620
822
 
621
823
  });
622
824
 
623
- RootParser.extend('LineParser', function(KLASS, OO){
624
- OO.addMember("handleToken",function (token, tokens) {
825
+ RootParser.extend("LineParser", function(KLASS, OO){
826
+ OO.addMember("handleToken", function(token, tokens){
625
827
  this.$super(token, tokens);
626
828
  if (token[0] == TYPES.SEMICOLON) {
627
829
  this.finished = true;
@@ -629,31 +831,29 @@ RootParser.extend('LineParser', function(KLASS, OO){
629
831
  });
630
832
  });
631
833
 
632
- CurlyParser.extend('PrivateParser', function(KLASS, OO){
633
- // private closure
634
-
834
+ CurlyParser.extend("PrivateParser", function(KLASS, OO){
835
+
635
836
  var REGEX = Tokens.regex("<PRIVATE>\\s*");
636
837
 
637
838
 
638
- OO.addMember("startParse",function (tokens) {
839
+ OO.addMember("startParse", function(tokens){
639
840
  var m = tokens.match(REGEX);
640
841
  tokens.consume(m[0].length);
641
842
  });
642
843
 
643
- OO.addMember("endParse",function (tokens) {
844
+ OO.addMember("endParse", function(tokens){
644
845
  this.out.pop();
645
846
  this.out.shift();
646
847
  });
647
848
  });
648
849
 
649
850
 
650
- RootParser.extend('IStringParser', function(KLASS, OO){
651
- // private closure
652
-
851
+ RootParser.extend("IStringParser", function(KLASS, OO){
852
+
653
853
  var BEGIN = Tokens.regex("<ISTRING_START>");
654
854
 
655
855
 
656
- OO.addMember("parse",function (tokens) {
856
+ OO.addMember("parse", function(tokens){
657
857
  var m = tokens.match(BEGIN);
658
858
  tokens.consume(m[0].length);
659
859
  this.out.push('"');
@@ -680,21 +880,20 @@ RootParser.extend('IStringParser', function(KLASS, OO){
680
880
  }
681
881
  });
682
882
 
683
- OO.addMember("parseMiddle",function (tokens) {
883
+ OO.addMember("parseMiddle", function(tokens){
684
884
  var parser = new $c.CurlyParser(true);
685
885
  parser.parse(tokens);
686
886
  this.out.push(parser);
687
887
  });
688
888
  });
689
889
 
690
- RootParser.extend('StaticParser', function(KLASS, OO){
691
- // private closure
692
-
890
+ RootParser.extend("StaticParser", function(KLASS, OO){
891
+
693
892
  var VAR_REGEX = Tokens.regex("(<STATIC>(\\s+))<VAR>");
694
893
  var FUNCT_REGEX = Tokens.regex("(<STATIC>(\\s+))<FUNCTION>");
695
894
 
696
895
 
697
- OO.addMember("parseTokens",function (tokens) {
896
+ OO.addMember("parseTokens", function(tokens){
698
897
  var varMatch = tokens.match(VAR_REGEX);
699
898
  if (varMatch) {
700
899
  tokens.consume(varMatch[1].length);
@@ -716,13 +915,12 @@ RootParser.extend('StaticParser', function(KLASS, OO){
716
915
  });
717
916
  });
718
917
 
719
- RootParser.extend('MemberParser', function(KLASS, OO){
720
- // private closure
721
-
918
+ RootParser.extend("MemberParser", function(KLASS, OO){
919
+
722
920
  var REGEX = Tokens.regex("var <IDENT>\\s*=\\s*?");
723
921
 
724
922
 
725
- OO.addMember("parse",function (tokens) {
923
+ OO.addMember("parse", function(tokens){
726
924
  var m = tokens.str.match(REGEX);
727
925
  this.name = m[1];
728
926
  tokens.consume(m[0].length);
@@ -740,27 +938,25 @@ var MemberParser = $m.MemberParser;
740
938
 
741
939
 
742
940
 
743
- RootParser.extend('IncludeParser', function(KLASS, OO){
744
- // private closure
745
-
941
+ RootParser.extend("IncludeParser", function(KLASS, OO){
942
+
746
943
  var REGEX = Tokens.regex("<INCLUDE> <CLASSNAME><SEMICOLON>");
747
944
 
748
945
 
749
- OO.addMember("parse",function (tokens) {
946
+ OO.addMember("parse", function(tokens){
750
947
  var m = tokens.match(REGEX);
751
948
  tokens.consume(m[0].length);
752
949
  this.out = [ 'OO.include(', m[2], ');' ];
753
950
  });
754
951
  });
755
952
 
756
- RootParser.extend('HereDocParser', function(KLASS, OO){
757
- // private closure
758
-
953
+ RootParser.extend("HereDocParser", function(KLASS, OO){
954
+
759
955
  var REGEX = Tokens.regex("<HEREDOC>");
760
956
 
761
957
 
762
- OO.addMember("parse",function (tokens) {
763
- var beginning = tokens.match(/^<<(\w+)\s*([;\)])*\n/);
958
+ OO.addMember("parse", function(tokens){
959
+ var beginning = tokens.match(/^<<(\w+)(?::(\w+))?\s*([;\)])*\n/);
764
960
  tokens.consume(beginning[0].length);
765
961
 
766
962
  var spacing = tokens.match(/^(\s*)/);
@@ -771,22 +967,25 @@ RootParser.extend('HereDocParser', function(KLASS, OO){
771
967
  var toParse = strMatch[1] || '';
772
968
 
773
969
  toParse = toParse.replace(regexSub, '');
774
- toParse = toParse.replace("\n", "\\n");
970
+ toParse = toParse.replace(/\n/g, "\\n");
775
971
 
776
972
  var string = $m.parse('%{' + toParse + '}');
777
973
  tokens.consume(strMatch[0] ? strMatch[0].length : 0);
778
974
 
779
- this.out = [ string, beginning[2] || ';' ];
975
+ if (beginning[2]) {
976
+ this.out = [ '$m.JSML.process(', string, ')', beginning[3] || ';' ];
977
+ } else {
978
+ this.out = [ string, beginning[3] || ';' ];
979
+ }
780
980
  });
781
981
  });
782
982
 
783
- RootParser.extend('MethodParser', function(KLASS, OO){
784
- // private closure
785
-
983
+ RootParser.extend("MethodParser", function(KLASS, OO){
984
+
786
985
  var REGEX = Tokens.regex("<FUNCTION> <IDENT><ARGS><SPACE>");
787
986
 
788
987
 
789
- OO.addMember("parse",function (tokens) {
988
+ OO.addMember("parse", function(tokens){
790
989
  var m = tokens.str.match(REGEX);
791
990
  tokens.consume(m[0].length);
792
991
  var name = m[2];
@@ -802,13 +1001,12 @@ RootParser.extend('MethodParser', function(KLASS, OO){
802
1001
  });
803
1002
  });
804
1003
 
805
- RootParser.extend('ShorthandFunctionParser', function(KLASS, OO){
806
- // private closure
807
-
1004
+ RootParser.extend("ShorthandFunctionParser", function(KLASS, OO){
1005
+
808
1006
  var ARGS_REGEX = Tokens.regex("<ARGS>\\s*");
809
1007
 
810
1008
 
811
- OO.addMember("parse",function (tokens) {
1009
+ OO.addMember("parse", function(tokens){
812
1010
  tokens.consume(1);
813
1011
  var argsMatch = tokens.match(ARGS_REGEX);
814
1012
  var args = null;
@@ -828,8 +1026,8 @@ RootParser.extend('ShorthandFunctionParser', function(KLASS, OO){
828
1026
  });
829
1027
  });
830
1028
 
831
- RootParser.extend('CommentParser', function(KLASS, OO){
832
- OO.addMember("parse",function (tokens) {
1029
+ RootParser.extend("CommentParser", function(KLASS, OO){
1030
+ OO.addMember("parse", function(tokens){
833
1031
  var m = tokens.match(/^\/\/.*?\n/);
834
1032
  if (m) {
835
1033
  tokens.consume(m[0].length);
@@ -848,14 +1046,13 @@ RootParser.extend('CommentParser', function(KLASS, OO){
848
1046
  });
849
1047
  });
850
1048
 
851
- RootParser.extend('RegexParser', function(KLASS, OO){
852
- // private closure
853
-
1049
+ RootParser.extend("RegexParser", function(KLASS, OO){
1050
+
854
1051
  var REGEX = /^\/(\\.|[^\/])+\/[imgy]{0,4}/;
855
1052
  var DIVIDE = /(\}|\)|\+\+|\-\-|[\w\$])$/;
856
1053
 
857
1054
 
858
- OO.addMember("parseTokens",function (tokens) {
1055
+ OO.addMember("parseTokens", function(tokens){
859
1056
  var back = tokens.lookback(2);
860
1057
 
861
1058
  if (back.match(DIVIDE)) {
@@ -878,15 +1075,14 @@ RootParser.extend('RegexParser', function(KLASS, OO){
878
1075
 
879
1076
  });
880
1077
 
881
- CurlyParser.extend('ForeachParser', function(KLASS, OO){
882
- OO.addMember("_TYPE",'Foreach');
883
-
884
- // private closure
1078
+ CurlyParser.extend("ForeachParser", function(KLASS, OO){
1079
+ OO.addMember("_TYPE", 'Foreach');
885
1080
 
1081
+
886
1082
  var REGEX = Tokens.regex("<FOREACH><LBRACE><VAR> <IDENT>(?:**:**<IDENT>)? in (.*?)**<RBRACE>**{");
887
1083
 
888
1084
 
889
- OO.addMember("startParse",function (tokens) {
1085
+ OO.addMember("startParse", function(tokens){
890
1086
  var m = tokens.match(REGEX);
891
1087
  namespace = tokens.iterator++;
892
1088
 
@@ -900,221 +1096,18 @@ CurlyParser.extend('ForeachParser', function(KLASS, OO){
900
1096
 
901
1097
  var bool = "(" + this.item + "=" + "_list_" + namespace + "[" + this.iterator + "])||" + this.iterator + "<_len_" + namespace;
902
1098
 
903
- this.out = [ "for (", declare, ";", bool, ';', this.iterator + "++)" ];
1099
+ this.out = [ "for (var ", declare, ";", bool, ';', this.iterator + "++)" ];
904
1100
  });
905
1101
 
906
- OO.addMember("endParse",function (tokens) {
1102
+ OO.addMember("endParse", function(tokens){
907
1103
  tokens.iterator--;
908
1104
  });
909
1105
 
910
1106
  });
911
1107
 
912
1108
 
913
-
914
- JS2.Class.extend('JSML', function(KLASS, OO){
915
- OO.addStaticMember("process",function (txt) {
916
- return new KLASS(txt);
917
- });
918
-
919
- OO.addMember("initialize",function (txt) {
920
- var lines = txt.split(/\n/);
921
- this.root = new JS2.JSMLElement();
922
- this.stack = [ this.root ];
923
-
924
- for(var _i1=0,_c1=lines,_l1=_c1.length,l;(l=_c1[_i1])||(_i1<_l1);_i1++){
925
- if (l.match(/^\s*$/)) continue;
926
- this.processLine(l);
927
- }
928
-
929
- var toEval = 'function process() { var out = [];\n' + this.flatten().join('') + '\n return out.join("");\n}';
930
- eval(toEval);
931
-
932
- this.result = function(bound) {
933
- bound = bound || {};
934
- return process.call(bound);
935
- };
936
- });
937
-
938
- OO.addMember("flatten",function () {
939
- return this.root.flatten();
940
- });
941
-
942
- OO.addMember("processLine",function (line) {
943
- if (line.match(/^\s*$/)) return;
944
-
945
- var ele = new JS2.JSMLElement(line);
946
- var scope = this.getScope();
947
-
948
- if (ele.scope == scope) {
949
- this.stack.pop();
950
- this.getLast().push(ele);
951
- this.stack.push(ele);
952
- } else if (ele.scope > scope) {
953
- this.getLast().push(ele);
954
- this.stack.push(ele);
955
- } else if (ele.scope < scope) {
956
- var diff = scope - ele.scope + 1;
957
- while(diff-- > 0) {
958
- this.stack.pop();
959
- }
960
- this.getLast().push(ele);
961
- this.stack.push(ele);
962
- }
963
- });
964
-
965
-
966
- OO.addMember("getScope",function () {
967
- return this.stack.length - 1;
968
- });
969
-
970
- OO.addMember("getLast",function () {
971
- return this.stack[this.stack.length-1];
972
- });
973
-
974
- });
975
-
976
- JS2.Class.extend('JSMLElement', function(KLASS, OO){
977
- OO.addMember("SCOPE_REGEX",/^(\s*)(.*)$/);
978
- OO.addMember("SPLIT_REGEX",/^((?:\.|\#|\%)[^=\s\{]*)?(\{.*\})?(=|-)?(?:\s*)(.*)$/);
979
- OO.addMember("TOKEN_REGEX",/(\%|\#|\.)([\w][\w\-]*)/g);
980
- OO.addMember("JS_REGEX",/^(-|=)(.*)$/g);
981
- OO.addMember("SCOPE_OFFSET",1);
982
- OO.addMember("SELF_CLOSING",{ area: null, basefont: null, br: null, hr: null, input: null, img: null, link: null, meta: null });
983
-
984
- OO.addMember("initialize",function (line) {
985
- this.children = [];
986
-
987
- if (line == null) {
988
- this.scope = this.SCOPE_OFFSET;
989
- return;
990
- }
991
-
992
- var spaceMatch = line.match(this.SCOPE_REGEX);
993
- this.scope = spaceMatch[1].length / 2 + this.SCOPE_OFFSET;
994
-
995
- this.classes = [];
996
- this.nodeID = null;
997
-
998
- this.parse(spaceMatch[2]);
999
- });
1000
-
1001
- OO.addMember("push",function (child) {
1002
- this.children.push(child);
1003
- });
1004
-
1005
- OO.addMember("parse",function (line) {
1006
- this.attributes;
1007
- this.line = line;
1008
- var self = this;
1009
-
1010
- var splitted = line.match(this.SPLIT_REGEX);
1011
- var tokens = splitted[1];
1012
- var attrs = splitted[2];
1013
- var jsType = splitted[3];
1014
- var content = splitted[4];
1015
-
1016
- if (tokens) {
1017
- tokens.replace(this.TOKEN_REGEX, function(match, type, name){
1018
- switch(type) {
1019
- case '%': self.nodeType = name; break;
1020
- case '.': self.classes.push(name); break;
1021
- case '#': self.nodeID = name; break;
1022
- }
1023
- return '';
1024
- });
1025
- }
1026
-
1027
- if (jsType == '=') {
1028
- this.jsEQ = content;
1029
- } else if (jsType == '-') {
1030
- this.jsExec = content;
1031
- } else {
1032
- this.content = content;
1033
- }
1034
-
1035
- if (attrs) {
1036
- this.attributes = attrs;
1037
- }
1038
-
1039
- if (!this.nodeType && (this.classes.length || this.nodeID)) {
1040
- this.nodeType = 'div';
1041
- }
1042
-
1043
- if (this.SELF_CLOSING.hasOwnProperty(this.nodeType) && this.children.length == 0) {
1044
- this.selfClose = '/';
1045
- } else {
1046
- this.selfClose = '';
1047
- }
1048
- });
1049
-
1050
- OO.addMember("flatten",function () {
1051
- var out = [];
1052
-
1053
- for(var _i1=0,_c1=this.children,_l1=_c1.length,c;(c=_c1[_i1])||(_i1<_l1);_i1++){
1054
- var arr = c.flatten();
1055
- for(var _i2=0,_c2=arr,_l2=_c2.length,item;(item=_c2[_i2])||(_i2<_l2);_i2++){
1056
- out.push(item);
1057
- }
1058
- }
1059
-
1060
- if (this.nodeType) {
1061
- this.handleJsEQ(out);
1062
- this.handleContent(out);
1063
- out.unshift('out.push("<' + this.nodeType + '"+JS2.JSMLElement.parseAttributes(' + (this.attributes || "{}") + ', ' + JSON.stringify(this.classes || []) + ', ' + JSON.stringify(this.id || null) + ')+"' + this.selfClose + '>");\n');
1064
- if (this.selfClose == '') {
1065
- out.push('out.push(' + JSON.stringify("</"+(this.nodeType)+">") + ');\n');
1066
- }
1067
- } else {
1068
- this.handleJsExec(out);
1069
- this.handleJsEQ(out);
1070
- this.handleContent(out);
1071
- }
1072
-
1073
- return out;
1074
- });
1075
-
1076
- OO.addMember("handleJsEQ",function (out) {
1077
- if (this.jsEQ) {
1078
- this.jsEQ = this.jsEQ.replace(/;\s*$/, '');
1079
- out.unshift('out.push(' + this.jsEQ + ');\n');
1080
- }
1081
- });
1082
-
1083
- OO.addMember("handleContent",function (out) {
1084
- if (this.content != null && this.content.length > 0) {
1085
- out.unshift('out.push(' + JSON.stringify(this.content) + ');\n');
1086
- }
1087
- });
1088
-
1089
-
1090
- OO.addMember("handleJsExec",function (out) {
1091
- if (this.jsExec) {
1092
- out.unshift(this.jsExec);
1093
- if (this.jsExec.match(/\{\s*$/)) {
1094
- out.push("}\n");
1095
- }
1096
- }
1097
- });
1098
-
1099
- OO.addStaticMember("parseAttributes",function (hash, classes, id) {
1100
- var out = [];
1101
- classes = classes || [];
1102
- if (hash['class']) classes.push(hash['class']);
1103
- if (classes.length) hash['class'] = classes.join(" ");
1104
-
1105
- for (var k in hash) {
1106
- if (hash.hasOwnProperty(k)) {
1107
- out.push(k + '=' + JSON.stringify(hash[k]));
1108
- }
1109
- }
1110
- return (out.length ? ' ' : '') + out.join(' ');
1111
- });
1112
- });
1113
-
1114
-
1115
- JS2.Class.extend('CLI', function(KLASS, OO){
1116
- // private closure
1117
-
1109
+ $m.Class.extend("CLI", function(KLASS, OO){
1110
+
1118
1111
  var COMMANDS = {
1119
1112
  help: 'help',
1120
1113
  render: 'render',
@@ -1123,21 +1116,21 @@ JS2.Class.extend('CLI', function(KLASS, OO){
1123
1116
  };
1124
1117
 
1125
1118
 
1126
- OO.addMember("run",function (args) {
1119
+ OO.addMember("run", function(args){
1127
1120
  var opts = this.parseOpts(args);
1128
1121
  var options = opts[0];
1129
1122
  var command = opts[1];
1130
1123
  var files = opts[2];
1131
1124
  });
1132
1125
 
1133
- OO.addMember("parseOpts",function (args) {
1126
+ OO.addMember("parseOpts", function(args){
1134
1127
  var files = [];
1135
1128
  var options = {};
1136
1129
  var command = null;
1137
1130
 
1138
1131
  var endedArgs = false;
1139
1132
 
1140
- for(var i=0,_c1=args,_l1=_c1.length,arg;(arg=_c1[i])||(i<_l1);i++){
1133
+ for (var i=0,arg=null,_list_0=args,_len_0=_list_0.length;(arg=_list_0[i])||i<_len_0;i++){
1141
1134
  if (endedArgs) {
1142
1135
  files.push(arg);
1143
1136
  }
data/lib/mochiscript.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Mochiscript
2
- VERSION = "0.4.1".sub("-", '.')
2
+ VERSION = "0.4.3.pre1".sub("-", '.')
3
3
  end
4
4
 
5
5
  require File.dirname(__FILE__) + '/mochiscript/core'
@@ -204,7 +204,7 @@ window.$m = $m;
204
204
  });
205
205
 
206
206
  $m.out = function () {
207
- for(var i=0,_c1=arguments,_l1=_c1.length,arg;(arg=_c1[i])||(i<_l1);i++){
207
+ for (var i=0,arg=null,_list_0=arguments,_len_0=_list_0.length;(arg=_list_0[i])||i<_len_0;i++){
208
208
  $m.ADAPTER.out(arg);
209
209
  if (i < arguments.length-1) {
210
210
  $m.ADAPTER.out(',');
@@ -213,7 +213,7 @@ window.$m = $m;
213
213
  };
214
214
 
215
215
  $m.outs = function () {
216
- for(var _i1=0,_c1=arguments,_l1=_c1.length,arg;(arg=_c1[_i1])||(_i1<_l1);_i1++){
216
+ for (var _i_0=0,arg=null,_list_0=arguments,_len_0=_list_0.length;(arg=_list_0[_i_0])||_i_0<_len_0;_i_0++){
217
217
  $m.ADAPTER.outs(arg);
218
218
  }
219
219
  };
@@ -222,4 +222,208 @@ window.$m = $m;
222
222
  })(undefined, $m);
223
223
 
224
224
 
225
+ $m.Class.extend("JSML", function(KLASS, OO){
226
+ OO.addStaticMember("process", function(txt){
227
+ return new $m.JSML(txt);
228
+ });
229
+
230
+ OO.addMember("initialize", function(txt){
231
+ var lines = txt.split(/\n/);
232
+ this.root = new $c.JSMLElement();
233
+ this.stack = [ this.root ];
234
+
235
+ for (var _i_0=0,l=null,_list_0=lines,_len_0=_list_0.length;(l=_list_0[_i_0])||_i_0<_len_0;_i_0++){
236
+ if (l.match(/^\s*$/)) continue;
237
+ this.processLine(l);
238
+ }
239
+
240
+ var toEval = 'function stuff() { var out = [];\n' + this.flatten().join('') + '\n return out.join("");\n}';
241
+ eval(toEval);
242
+
243
+ this.result = function(bound) {
244
+ bound = bound || {};
245
+ return stuff.call(bound);
246
+ };
247
+ });
248
+
249
+ OO.addMember("flatten", function(){
250
+ return this.root.flatten();
251
+ });
252
+
253
+ OO.addMember("processLine", function(line){
254
+ if (line.match(/^\s*$/)) return;
255
+
256
+ var ele = new $m.JSMLElement(line);
257
+ var scope = this.getScope();
258
+
259
+ if (ele.scope == scope) {
260
+ this.stack.pop();
261
+ this.getLast().push(ele);
262
+ this.stack.push(ele);
263
+ } else if (ele.scope > scope) {
264
+ this.getLast().push(ele);
265
+ this.stack.push(ele);
266
+ } else if (ele.scope < scope) {
267
+ var diff = scope - ele.scope + 1;
268
+ while(diff-- > 0) {
269
+ this.stack.pop();
270
+ }
271
+ this.getLast().push(ele);
272
+ this.stack.push(ele);
273
+ }
274
+ });
275
+
276
+
277
+ OO.addMember("getScope", function(){
278
+ return this.stack.length - 1;
279
+ });
280
+
281
+ OO.addMember("getLast", function(){
282
+ return this.stack[this.stack.length-1];
283
+ });
284
+
285
+ });
286
+
287
+ $m.Class.extend("JSMLElement", function(KLASS, OO){
288
+ OO.addMember("SCOPE_REGEX", /^(\s*)(.*)$/);
289
+ OO.addMember("SPLIT_REGEX", /^((?:\.|\#|\%)[^=\s\{]*)?(\{.*\})?(=|-)?(?:\s*)(.*)$/);
290
+ OO.addMember("TOKEN_REGEX", /(\%|\#|\.)([\w][\w\-]*)/g);
291
+ OO.addMember("JS_REGEX", /^(-|=)(.*)$/g);
292
+ OO.addMember("SCOPE_OFFSET", 1);
293
+ OO.addMember("SELF_CLOSING", { area: null, basefont: null, br: null, hr: null, input: null, img: null, link: null, meta: null });
294
+
295
+ OO.addMember("initialize", function(line){
296
+ this.children = [];
297
+
298
+ if (line == null) {
299
+ this.scope = this.SCOPE_OFFSET;
300
+ return;
301
+ }
302
+
303
+ var spaceMatch = line.match(this.SCOPE_REGEX);
304
+ this.scope = spaceMatch[1].length / 2 + this.SCOPE_OFFSET;
305
+
306
+ this.classes = [];
307
+ this.nodeID = null;
308
+
309
+ this.parse(spaceMatch[2]);
310
+ });
311
+
312
+ OO.addMember("push", function(child){
313
+ this.children.push(child);
314
+ });
315
+
316
+ OO.addMember("parse", function(line){
317
+ this.attributes;
318
+ this.line = line;
319
+ var self = this;
320
+
321
+ var splitted = line.match(this.SPLIT_REGEX);
322
+ var tokens = splitted[1];
323
+ var attrs = splitted[2];
324
+ var jsType = splitted[3];
325
+ var content = splitted[4];
326
+
327
+ if (tokens) {
328
+ tokens.replace(this.TOKEN_REGEX, function(match, type, name) {
329
+ switch(type) {
330
+ case '%': self.nodeType = name; break;
331
+ case '.': self.classes.push(name); break;
332
+ case '#': self.nodeID = name; break;
333
+ }
334
+ return '';
335
+ });
336
+ }
337
+
338
+ if (jsType == '=') {
339
+ this.jsEQ = content;
340
+ } else if (jsType == '-') {
341
+ this.jsExec = content;
342
+ } else {
343
+ this.content = content;
344
+ }
345
+
346
+ if (attrs) {
347
+ this.attributes = attrs;
348
+ }
349
+
350
+ if (!this.nodeType && (this.classes.length || this.nodeID)) {
351
+ this.nodeType = 'div';
352
+ }
353
+
354
+ if (this.SELF_CLOSING.hasOwnProperty(this.nodeType) && this.children.length == 0) {
355
+ this.selfClose = '/';
356
+ } else {
357
+ this.selfClose = '';
358
+ }
359
+ });
360
+
361
+ OO.addMember("flatten", function(){
362
+ var out = [];
363
+
364
+ for (var _i_0=0,c=null,_list_0=this.children,_len_0=_list_0.length;(c=_list_0[_i_0])||_i_0<_len_0;_i_0++){
365
+ var arr = c.flatten();
366
+ for (var _i_1=0,item=null,_list_1=arr,_len_1=_list_1.length;(item=_list_1[_i_1])||_i_1<_len_1;_i_1++){
367
+ out.push(item);
368
+ }
369
+ }
370
+
371
+ if (this.nodeType) {
372
+ this.handleJsEQ(out);
373
+ this.handleContent(out);
374
+ out.unshift('out.push("<' + this.nodeType + '"+$m.ROOT.JSMLElement.parseAttributes(' + (this.attributes || "{}") + ', ' + JSON.stringify(this.classes || []) + ', ' + JSON.stringify(this.id || null) + ')+"' + this.selfClose + '>");\n');
375
+ if (this.selfClose == '') {
376
+ out.push('out.push(' + JSON.stringify("</"+(this.nodeType)+">") + ');\n');
377
+ }
378
+ } else {
379
+ this.handleJsExec(out);
380
+ this.handleJsEQ(out);
381
+ this.handleContent(out);
382
+ }
383
+
384
+ return out;
385
+ });
386
+
387
+ OO.addMember("handleJsEQ", function(out){
388
+ if (this.jsEQ) {
389
+ this.jsEQ = this.jsEQ.replace(/;\s*$/, '');
390
+ out.unshift('out.push(' + this.jsEQ + ');\n');
391
+ }
392
+ });
393
+
394
+ OO.addMember("handleContent", function(out){
395
+ if (this.content != null && this.content.length > 0) {
396
+ out.unshift('out.push(' + JSON.stringify(this.content) + ');\n');
397
+ }
398
+ });
399
+
400
+
401
+ OO.addMember("handleJsExec", function(out){
402
+ if (this.jsExec) {
403
+ out.unshift(this.jsExec);
404
+ if (this.jsExec.match(/\{\s*$/)) {
405
+ out.push("}\n");
406
+ }
407
+ }
408
+ });
409
+
410
+ OO.addStaticMember("parseAttributes", function(hash, classes, id){
411
+ var out = [];
412
+ classes = classes || [];
413
+ if (hash['class']) classes.push(hash['class']);
414
+ if (classes.length) hash['class'] = classes.join(" ");
415
+
416
+ for (var k in hash) {
417
+ if (hash.hasOwnProperty(k)) {
418
+ out.push(k + '=' + JSON.stringify(hash[k]));
419
+ }
420
+ }
421
+ return (out.length ? ' ' : '') + out.join(' ');
422
+ });
423
+ });
424
+
425
+ $m.JSML = $m.ROOT.JSML;
426
+ $m.JSMLElement = $m.ROOT.JSMLElement;
427
+
428
+
225
429
  })(window);
metadata CHANGED
@@ -1,49 +1,45 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: mochiscript
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.4.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.3.pre1
5
+ prerelease: 6
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Jeff Su
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-11-03 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-14 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: therubyracer
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70315670553940 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: json
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70315670553940
25
+ - !ruby/object:Gem::Dependency
26
+ name: json
27
+ requirement: &70315670552880 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
35
33
  type: :runtime
36
- version_requirements: *id002
34
+ prerelease: false
35
+ version_requirements: *70315670552880
37
36
  description: Javascript Dessert
38
- email:
37
+ email:
39
38
  - me@jeffsu.com
40
39
  executables: []
41
-
42
40
  extensions: []
43
-
44
41
  extra_rdoc_files: []
45
-
46
- files:
42
+ files:
47
43
  - .gitignore
48
44
  - Gemfile
49
45
  - Rakefile
@@ -52,32 +48,28 @@ files:
52
48
  - lib/mochiscript/rails/engine.rb
53
49
  - mochiscript.gemspec
54
50
  - vendor/assets/javascripts/mochiscript.js
55
- homepage: ""
51
+ homepage: ''
56
52
  licenses: []
57
-
58
53
  post_install_message:
59
54
  rdoc_options: []
60
-
61
- require_paths:
55
+ require_paths:
62
56
  - lib
63
- required_ruby_version: !ruby/object:Gem::Requirement
57
+ required_ruby_version: !ruby/object:Gem::Requirement
64
58
  none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: "0"
69
- required_rubygems_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
70
64
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: "0"
65
+ requirements:
66
+ - - ! '>'
67
+ - !ruby/object:Gem::Version
68
+ version: 1.3.1
75
69
  requirements: []
76
-
77
70
  rubyforge_project: mochiscript
78
- rubygems_version: 1.8.9
71
+ rubygems_version: 1.8.10
79
72
  signing_key:
80
73
  specification_version: 3
81
74
  summary: Javascript Dessert
82
75
  test_files: []
83
-