mochiscript 0.4.1 → 0.4.3.pre1

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.
@@ -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
-