mochiscript 0.4.6.pre3 → 0.4.6.pre4

Sign up to get free protection for your applications and to get access to all the features.
data/bin/ms-bootstrap ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ BOOTSTRAP_JS = File.dirname(__FILE__) + '/../vendor/assets/javascripts/mochiscript.js'
4
+ puts File.read(BOOTSTRAP_JS)
@@ -260,11 +260,11 @@ var JS2 = $m;
260
260
 
261
261
 
262
262
  $m.Class.extend("JSML", function(KLASS, OO){
263
- OO.addStaticMember("process", function(txt){
263
+ OO.addStaticMember("process", function(txt){var self=this;
264
264
  return new $m.JSML(txt);
265
265
  });
266
266
 
267
- OO.addMember("initialize", function(txt){
267
+ OO.addMember("initialize", function(txt){var self=this;
268
268
  var lines = txt.split(/\n/);
269
269
  this.root = new $c.JSMLElement();
270
270
  this.stack = [ this.root ];
@@ -284,11 +284,11 @@ $m.Class.extend("JSML", function(KLASS, OO){
284
284
  };
285
285
  });
286
286
 
287
- OO.addMember("flatten", function(){
287
+ OO.addMember("flatten", function(){var self=this;
288
288
  return this.root.flatten();
289
289
  });
290
290
 
291
- OO.addMember("processLine", function(line){
291
+ OO.addMember("processLine", function(line){var self=this;
292
292
  if (line.match(/^\s*$/)) return;
293
293
 
294
294
  var ele = new $m.JSMLElement(line);
@@ -312,11 +312,11 @@ $m.Class.extend("JSML", function(KLASS, OO){
312
312
  });
313
313
 
314
314
 
315
- OO.addMember("getScope", function(){
315
+ OO.addMember("getScope", function(){var self=this;
316
316
  return this.stack.length - 1;
317
317
  });
318
318
 
319
- OO.addMember("getLast", function(){
319
+ OO.addMember("getLast", function(){var self=this;
320
320
  return this.stack[this.stack.length-1];
321
321
  });
322
322
 
@@ -330,7 +330,7 @@ $m.Class.extend("JSMLElement", function(KLASS, OO){
330
330
  OO.addMember("SCOPE_OFFSET", 1);
331
331
  OO.addMember("SELF_CLOSING", { area: null, basefont: null, br: null, hr: null, input: null, img: null, link: null, meta: null });
332
332
 
333
- OO.addMember("initialize", function(line){
333
+ OO.addMember("initialize", function(line){var self=this;
334
334
  this.children = [];
335
335
 
336
336
  if (line == null) {
@@ -347,11 +347,11 @@ $m.Class.extend("JSMLElement", function(KLASS, OO){
347
347
  this.parse(spaceMatch[2]);
348
348
  });
349
349
 
350
- OO.addMember("push", function(child){
350
+ OO.addMember("push", function(child){var self=this;
351
351
  this.children.push(child);
352
352
  });
353
353
 
354
- OO.addMember("parse", function(line){
354
+ OO.addMember("parse", function(line){var self=this;
355
355
  this.attributes;
356
356
  this.line = line;
357
357
  var self = this;
@@ -396,7 +396,7 @@ $m.Class.extend("JSMLElement", function(KLASS, OO){
396
396
  }
397
397
  });
398
398
 
399
- OO.addMember("flatten", function(){
399
+ OO.addMember("flatten", function(){var self=this;
400
400
  var out = [];
401
401
 
402
402
  for (var i=0; i<this.children.length; i++) {
@@ -424,21 +424,21 @@ $m.Class.extend("JSMLElement", function(KLASS, OO){
424
424
  return out;
425
425
  });
426
426
 
427
- OO.addMember("handleJsEQ", function(out){
427
+ OO.addMember("handleJsEQ", function(out){var self=this;
428
428
  if (this.jsEQ) {
429
429
  this.jsEQ = this.jsEQ.replace(/;\s*$/, '');
430
430
  out.unshift('out.push(' + this.jsEQ + ');\n');
431
431
  }
432
432
  });
433
433
 
434
- OO.addMember("handleContent", function(out){
434
+ OO.addMember("handleContent", function(out){var self=this;
435
435
  if (this.content != null && this.content.length > 0) {
436
436
  out.unshift('out.push(' + JSON.stringify(this.content) + ');\n');
437
437
  }
438
438
  });
439
439
 
440
440
 
441
- OO.addMember("handleJsExec", function(out){
441
+ OO.addMember("handleJsExec", function(out){var self=this;
442
442
  if (this.jsExec) {
443
443
  out.unshift(this.jsExec);
444
444
  if (this.jsExec.match(/\{\s*$/)) {
@@ -447,7 +447,7 @@ $m.Class.extend("JSMLElement", function(KLASS, OO){
447
447
  }
448
448
  });
449
449
 
450
- OO.addStaticMember("parseAttributes", function(hash, classes, id){
450
+ OO.addStaticMember("parseAttributes", function(hash, classes, id){var self=this;
451
451
  var out = [];
452
452
  classes = classes || [];
453
453
  if (hash['class']) classes.push(hash['class']);
@@ -528,14 +528,14 @@ var EXTRA_REGEX_STRINGS = {
528
528
  var MAIN_REGEX = new RegExp("^" + REGEXES.join('|'));
529
529
 
530
530
  $m.Class.extend("Tokens", function(KLASS, OO){
531
- OO.addMember("initialize", function(str){
531
+ OO.addMember("initialize", function(str){var self=this;
532
532
  this.orig = str;
533
533
  this.str = str;
534
534
  this.iterator = 0;
535
535
  this.consumed = 0;
536
536
  });
537
537
 
538
- OO.addMember("peek", function(){
538
+ OO.addMember("peek", function(){var self=this;
539
539
  if (this._peek) return this._peek;
540
540
 
541
541
  var m = this.str.match(MAIN_REGEX);
@@ -546,7 +546,7 @@ $m.Class.extend("Tokens", function(KLASS, OO){
546
546
  }
547
547
  });
548
548
 
549
- OO.addStaticMember("regex", function(str){
549
+ OO.addStaticMember("regex", function(str){var self=this;
550
550
  var regexStr = str.replace(/\*\*/g, "\\s*").replace(/\s+/g, "\\s+").replace(/\>\</g, ">\\s*<").replace(/\<(\w+)\>/g, function($1,$2,$3){
551
551
  return "(" + (EXTRA_REGEX_STRINGS[$2] || TOKENS[TYPES[$2]][1]) + ")";
552
552
  });
@@ -554,17 +554,17 @@ $m.Class.extend("Tokens", function(KLASS, OO){
554
554
  return new RegExp("^" + regexStr);
555
555
  });
556
556
 
557
- OO.addMember("consume", function(n){
557
+ OO.addMember("consume", function(n){var self=this;
558
558
  this.str = this.str.substr(n, this.str.length-n);
559
559
  this._peek = null;
560
560
  this.consumed += n;
561
561
  });
562
562
 
563
- OO.addMember("length", function(){
563
+ OO.addMember("length", function(){var self=this;
564
564
  return this.str.length;
565
565
  });
566
566
 
567
- OO.addMember("lookback", function(n){
567
+ OO.addMember("lookback", function(n){var self=this;
568
568
  var starting = this.consumed - 1;
569
569
 
570
570
  //$m.outs(JSON.stringify(this.orig.substr(starting-10, 10)));
@@ -578,18 +578,18 @@ $m.Class.extend("Tokens", function(KLASS, OO){
578
578
  return this.orig.substr(starting-n+1, n);
579
579
  });
580
580
 
581
- OO.addMember("lookahead", function(n){
581
+ OO.addMember("lookahead", function(n){var self=this;
582
582
  var starting = this.consumed;
583
583
  while (this.orig.charAt(starting).match(/\s/)) starting++;
584
584
  return this.orig.substr(starting, n);
585
585
  });
586
586
 
587
587
 
588
- OO.addMember("any", function(){
588
+ OO.addMember("any", function(){var self=this;
589
589
  return this.str.length > 0;
590
590
  });
591
591
 
592
- OO.addMember("match", function(regex){
592
+ OO.addMember("match", function(regex){var self=this;
593
593
  return this.str.match(regex);
594
594
  });
595
595
  });
@@ -619,19 +619,19 @@ var OPTIONS = {};
619
619
  $m.Class.extend("RootParser", function(KLASS, OO){
620
620
  OO.addMember("handlers", {});
621
621
 
622
- OO.addMember("initialize", function(){
622
+ OO.addMember("initialize", function(){var self=this;
623
623
  this.out = [];
624
624
  this.finished = false;
625
625
  });
626
626
 
627
- OO.addMember("parse", function(tokens){
627
+ OO.addMember("parse", function(tokens){var self=this;
628
628
  var len = tokens.length();
629
629
  if (this.startParse(tokens) === false || this.parseTokens(tokens) === false || this.endParse(tokens) === false) return false
630
630
  return len != tokens.length();
631
631
  });
632
632
 
633
633
  // TODO: messy clean this process up
634
- OO.addMember("parseTokens", function(tokens){
634
+ OO.addMember("parseTokens", function(tokens){var self=this;
635
635
  var sanity = 100;
636
636
  var origLen = tokens.length();
637
637
 
@@ -667,15 +667,15 @@ $m.Class.extend("RootParser", function(KLASS, OO){
667
667
  }
668
668
  });
669
669
 
670
- OO.addMember("startParse", function(){ });
671
- OO.addMember("endParse", function(){ });
670
+ OO.addMember("startParse", function(){var self=this; });
671
+ OO.addMember("endParse", function(){var self=this; });
672
672
 
673
- OO.addMember("handleToken", function(token, tokens){
673
+ OO.addMember("handleToken", function(token, tokens){var self=this;
674
674
  this.out.push(token[1]);
675
675
  tokens.consume(token[1].length);
676
676
  });
677
677
 
678
- OO.addMember("toString", function(){
678
+ OO.addMember("toString", function(){var self=this;
679
679
  var ret = [];
680
680
  for (var i=0; i<this.out.length; i++) {
681
681
  var ele = this.out[i];
@@ -684,11 +684,11 @@ $m.Class.extend("RootParser", function(KLASS, OO){
684
684
  return ret.join("");
685
685
  });
686
686
 
687
- OO.addMember("toJSON", function(){
687
+ OO.addMember("toJSON", function(){var self=this;
688
688
  return JSON.stringify(this.toStruct());
689
689
  });
690
690
 
691
- OO.addMember("pp", function(space){
691
+ OO.addMember("pp", function(space){var self=this;
692
692
  space = space == null ? " " : space + " ";
693
693
 
694
694
  var ret = [ space + (this._TYPE || 'NODE') ];
@@ -719,7 +719,7 @@ $m.Class.extend("RootParser", function(KLASS, OO){
719
719
  return ret.join("\n");
720
720
  });
721
721
 
722
- OO.addMember("toStruct", function(){
722
+ OO.addMember("toStruct", function(){var self=this;
723
723
  var ret = [];
724
724
  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++){
725
725
  ret.push(ele.toStruct ? ele.toStruct() : ele);
@@ -728,11 +728,11 @@ $m.Class.extend("RootParser", function(KLASS, OO){
728
728
  });
729
729
 
730
730
  // intercepts parser class for special cases
731
- OO.addMember("getHandler", function(token){
731
+ OO.addMember("getHandler", function(token){var self=this;
732
732
  return null;
733
733
  });
734
734
 
735
- OO.addMember("chop", function(){
735
+ OO.addMember("chop", function(){var self=this;
736
736
  this.out.pop();
737
737
  });
738
738
  });
@@ -745,7 +745,7 @@ RootParser.extend("ClassParser", function(KLASS, OO){
745
745
  var EXTENDS = Tokens.regex("(?:<EXPORT>|<PUBLIC>|<CLASS>) <CLASSNAME><EXTENDS><CLASSNAME><LCURLY>");
746
746
 
747
747
 
748
- OO.addMember("parse", function(tokens){
748
+ OO.addMember("parse", function(tokens){var self=this;
749
749
  var m = tokens.match(REGEX) || tokens.match(EXTENDS);
750
750
  var name = m[4];
751
751
  var extending = m[6] || "$m.Class";
@@ -767,7 +767,7 @@ RootParser.extend("ModuleParser", function(KLASS, OO){
767
767
  var REGEX = Tokens.regex("<MODULE> <CLASSNAME><LCURLY>");
768
768
 
769
769
 
770
- OO.addMember("parse", function(tokens){
770
+ OO.addMember("parse", function(tokens){var self=this;
771
771
  var m = tokens.match(REGEX);
772
772
  if (!m) return false;
773
773
  var name = m[2];
@@ -783,12 +783,12 @@ RootParser.extend("ModuleParser", function(KLASS, OO){
783
783
  RootParser.extend("CurlyParser", function(KLASS, OO){
784
784
  OO.addMember("_TYPE", 'CurlyParser');
785
785
 
786
- OO.addMember("initialize", function(chop){
786
+ OO.addMember("initialize", function(chop){var self=this;
787
787
  this.chop = chop;
788
788
  this.$super();
789
789
  });
790
790
 
791
- OO.addMember("handleToken", function(token, tokens){
791
+ OO.addMember("handleToken", function(token, tokens){var self=this;
792
792
  if (this.curly === undefined) this.curly = 0;
793
793
  if (token[0] == TYPES.RCURLY) {
794
794
  this.curly--;
@@ -803,7 +803,7 @@ RootParser.extend("CurlyParser", function(KLASS, OO){
803
803
  }
804
804
  });
805
805
 
806
- OO.addMember("endParse", function(tokens){
806
+ OO.addMember("endParse", function(tokens){var self=this;
807
807
  if (this.chop) {
808
808
  this.out.pop();
809
809
  this.out.shift();
@@ -814,7 +814,7 @@ RootParser.extend("CurlyParser", function(KLASS, OO){
814
814
  var CurlyParser = $c.CurlyParser;
815
815
 
816
816
  CurlyParser.extend("ClassContentParser", function(KLASS, OO){
817
- OO.addMember("getHandler", function(token){
817
+ OO.addMember("getHandler", function(token){var self=this;
818
818
  switch(token[0]) {
819
819
  case TYPES.STATIC: return "StaticParser";
820
820
  case TYPES.VAR: return "MemberParser";
@@ -826,7 +826,7 @@ CurlyParser.extend("ClassContentParser", function(KLASS, OO){
826
826
  });
827
827
 
828
828
  RootParser.extend("LineParser", function(KLASS, OO){
829
- OO.addMember("handleToken", function(token, tokens){
829
+ OO.addMember("handleToken", function(token, tokens){var self=this;
830
830
  this.$super(token, tokens);
831
831
  if (token[0] == TYPES.SEMICOLON) {
832
832
  this.finished = true;
@@ -839,12 +839,12 @@ CurlyParser.extend("PrivateParser", function(KLASS, OO){
839
839
  var REGEX = Tokens.regex("<PRIVATE>\\s*");
840
840
 
841
841
 
842
- OO.addMember("startParse", function(tokens){
842
+ OO.addMember("startParse", function(tokens){var self=this;
843
843
  var m = tokens.match(REGEX);
844
844
  tokens.consume(m[0].length);
845
845
  });
846
846
 
847
- OO.addMember("endParse", function(tokens){
847
+ OO.addMember("endParse", function(tokens){var self=this;
848
848
  this.out.pop();
849
849
  this.out.shift();
850
850
  });
@@ -856,7 +856,7 @@ RootParser.extend("IStringParser", function(KLASS, OO){
856
856
  var BEGIN = Tokens.regex("<ISTRING_START>");
857
857
 
858
858
 
859
- OO.addMember("parse", function(tokens){
859
+ OO.addMember("parse", function(tokens){var self=this;
860
860
  var m = tokens.match(BEGIN);
861
861
  tokens.consume(m[0].length);
862
862
  this.out.push('"');
@@ -883,7 +883,7 @@ RootParser.extend("IStringParser", function(KLASS, OO){
883
883
  }
884
884
  });
885
885
 
886
- OO.addMember("parseMiddle", function(tokens){
886
+ OO.addMember("parseMiddle", function(tokens){var self=this;
887
887
  var parser = new $c.CurlyParser(true);
888
888
  parser.parse(tokens);
889
889
  this.out.push(parser);
@@ -896,7 +896,7 @@ RootParser.extend("StaticParser", function(KLASS, OO){
896
896
  var FUNCT_REGEX = Tokens.regex("(<STATIC>(\\s+))<FUNCTION>");
897
897
 
898
898
 
899
- OO.addMember("parseTokens", function(tokens){
899
+ OO.addMember("parseTokens", function(tokens){var self=this;
900
900
  var varMatch = tokens.match(VAR_REGEX);
901
901
  if (varMatch) {
902
902
  tokens.consume(varMatch[1].length);
@@ -923,7 +923,7 @@ RootParser.extend("MemberParser", function(KLASS, OO){
923
923
  var REGEX = Tokens.regex("var <IDENT>\\s*=\\s*?");
924
924
 
925
925
 
926
- OO.addMember("parse", function(tokens){
926
+ OO.addMember("parse", function(tokens){var self=this;
927
927
  var m = tokens.str.match(REGEX);
928
928
  this.name = m[1];
929
929
  tokens.consume(m[0].length);
@@ -946,7 +946,7 @@ RootParser.extend("IncludeParser", function(KLASS, OO){
946
946
  var REGEX = Tokens.regex("<INCLUDE> <CLASSNAME><SEMICOLON>");
947
947
 
948
948
 
949
- OO.addMember("parse", function(tokens){
949
+ OO.addMember("parse", function(tokens){var self=this;
950
950
  var m = tokens.match(REGEX);
951
951
  tokens.consume(m[0].length);
952
952
  this.out = [ 'OO.include(', m[2], ');' ];
@@ -958,7 +958,7 @@ RootParser.extend("HereDocParser", function(KLASS, OO){
958
958
  var REGEX = Tokens.regex("<HEREDOC>");
959
959
 
960
960
 
961
- OO.addMember("parse", function(tokens){
961
+ OO.addMember("parse", function(tokens){var self=this;
962
962
  var beginning = tokens.match(/^<<(\w+)(?::(\w+))?\s*([;\)])*\n/);
963
963
  var terminator = beginning[1];
964
964
 
@@ -991,7 +991,7 @@ RootParser.extend("MethodParser", function(KLASS, OO){
991
991
  var REGEX = Tokens.regex("<FUNCTION> <IDENT><ARGS><SPACE>");
992
992
 
993
993
 
994
- OO.addMember("parse", function(tokens){
994
+ OO.addMember("parse", function(tokens){var self=this;
995
995
  var m = tokens.str.match(REGEX);
996
996
  tokens.consume(m[0].length);
997
997
  var name = m[2];
@@ -1013,7 +1013,7 @@ RootParser.extend("ShorthandMapperParser", function(KLASS, OO){
1013
1013
  var ARGS_REGEX = Tokens.regex("<ARGS>\\s*");
1014
1014
 
1015
1015
 
1016
- OO.addMember("parse", function(tokens){
1016
+ OO.addMember("parse", function(tokens){var self=this;
1017
1017
  tokens.consume(1);
1018
1018
  var nameMatch = tokens.match(/^([\w\$]+)\s*/);
1019
1019
  tokens.consume(nameMatch[0].length);
@@ -1042,7 +1042,7 @@ RootParser.extend("ShorthandFunctionParser", function(KLASS, OO){
1042
1042
  var ARGS_REGEX = Tokens.regex("<ARGS>\\s*");
1043
1043
 
1044
1044
 
1045
- OO.addMember("parse", function(tokens){
1045
+ OO.addMember("parse", function(tokens){var self=this;
1046
1046
  tokens.consume(1);
1047
1047
  var argsMatch = tokens.match(ARGS_REGEX);
1048
1048
  var args = null;
@@ -1063,7 +1063,7 @@ RootParser.extend("ShorthandFunctionParser", function(KLASS, OO){
1063
1063
  });
1064
1064
 
1065
1065
  RootParser.extend("CommentParser", function(KLASS, OO){
1066
- OO.addMember("parse", function(tokens){
1066
+ OO.addMember("parse", function(tokens){var self=this;
1067
1067
  var m = tokens.match(/^\/\/.*?\n/);
1068
1068
  if (m) {
1069
1069
  tokens.consume(m[0].length);
@@ -1088,7 +1088,7 @@ RootParser.extend("RegexParser", function(KLASS, OO){
1088
1088
  var DIVIDE = /(\}|\)|\+\+|\-\-|[\w\$])$/;
1089
1089
 
1090
1090
 
1091
- OO.addMember("parseTokens", function(tokens){
1091
+ OO.addMember("parseTokens", function(tokens){var self=this;
1092
1092
  var back = tokens.lookback(2);
1093
1093
 
1094
1094
  if (back.match(DIVIDE)) {
@@ -1112,7 +1112,7 @@ RootParser.extend("RegexParser", function(KLASS, OO){
1112
1112
  });
1113
1113
 
1114
1114
  CurlyParser.extend("ReturnableCurlyParser", function(KLASS, OO){
1115
- OO.addMember("toString", function(){
1115
+ OO.addMember("toString", function(){var self=this;
1116
1116
  var ret = this.$super();
1117
1117
  return ret.replace(/^{(\s*)(return)?/, '{$1return ');
1118
1118
  });
@@ -1126,7 +1126,7 @@ CurlyParser.extend("ForeachParser", function(KLASS, OO){
1126
1126
  var REGEX = Tokens.regex("<FOREACH><LBRACE><VAR> <IDENT>(?:**:**<IDENT>)? in (.*?)**<RBRACE>**{");
1127
1127
 
1128
1128
 
1129
- OO.addMember("startParse", function(tokens){
1129
+ OO.addMember("startParse", function(tokens){var self=this;
1130
1130
  var m = tokens.match(REGEX);
1131
1131
  namespace = tokens.iterator++;
1132
1132
 
@@ -1143,7 +1143,7 @@ CurlyParser.extend("ForeachParser", function(KLASS, OO){
1143
1143
  this.out = [ "for (var ", declare, ";", bool, ';', this.iterator + "++)" ];
1144
1144
  });
1145
1145
 
1146
- OO.addMember("endParse", function(tokens){
1146
+ OO.addMember("endParse", function(tokens){var self=this;
1147
1147
  tokens.iterator--;
1148
1148
  });
1149
1149
 
@@ -1160,14 +1160,14 @@ $m.Class.extend("CLI", function(KLASS, OO){
1160
1160
  };
1161
1161
 
1162
1162
 
1163
- OO.addMember("run", function(args){
1163
+ OO.addMember("run", function(args){var self=this;
1164
1164
  var opts = this.parseOpts(args);
1165
1165
  var options = opts[0];
1166
1166
  var command = opts[1];
1167
1167
  var files = opts[2];
1168
1168
  });
1169
1169
 
1170
- OO.addMember("parseOpts", function(args){
1170
+ OO.addMember("parseOpts", function(args){var self=this;
1171
1171
  var files = [];
1172
1172
  var options = {};
1173
1173
  var command = null;
@@ -1,29 +1,8 @@
1
- require 'tilt'
2
1
  require 'sprockets'
3
- require 'sprockets/engines'
4
2
 
5
- module Mochiscript::Rails
6
- class Engine < ::Rails::Engine
7
- config.before_configuration {}
8
- end
9
-
10
- #
11
- # Mochiscript template implementation. See:
12
- # http://github.com/jeffsu/mochiscript
13
- #
14
- class MochiscriptTemplate < Tilt::Template
15
- self.default_mime_type = 'application/javascript'
16
-
17
- def prepare
18
- @ctx = Mochiscript::Context.new
19
- end
20
-
21
- def evaluate(scope, locals, &block)
22
- return @ctx.parse(data)
23
- end
24
- end
3
+ class Engine < ::Rails::Engine
25
4
  end
26
5
 
27
6
  module Sprockets
28
- register_engine '.ms', Mochiscript::Rails::MochiscriptTemplate
7
+ register_engine '.ms', Mochiscript::Tilt::Template
29
8
  end
@@ -0,0 +1,8 @@
1
+ module Sinatra
2
+ module Templates
3
+ def mochiscript(template, options={}, locals={})
4
+ options.merge! :layout => false, :default_content_type => :js
5
+ render :ms, template, options, locals
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,19 @@
1
+ require 'tilt'
2
+
3
+ module Mochiscript::Tilt
4
+ class Template < Tilt::Template
5
+ self.default_mime_type = 'application/javascript'
6
+
7
+ def prepare
8
+ @ctx = Mochiscript::Context.new
9
+ end
10
+
11
+ def evaluate(scope, locals, &block)
12
+ return @ctx.parse(data)
13
+ end
14
+ end
15
+ end
16
+
17
+ module Tilt
18
+ register Mochiscript::Tilt::Template, 'ms'
19
+ end
@@ -1,3 +1,3 @@
1
1
  module Mochiscript
2
- VERSION = "0.4.6.pre3"
2
+ VERSION = "0.4.6.pre4"
3
3
  end
data/lib/mochiscript.rb CHANGED
@@ -1,3 +1,10 @@
1
1
  require File.dirname(__FILE__) + '/mochiscript/version'
2
2
  require File.dirname(__FILE__) + '/mochiscript/core'
3
- require File.dirname(__FILE__) + '/mochiscript/rails/engine' if defined?(::Rails)
3
+
4
+ if defined?(::Sinatra)
5
+ require File.dirname(__FILE__) + '/mochiscript/tilt/template'
6
+ require File.dirname(__FILE__) + '/mochiscript/sinatra/templates'
7
+ elsif defined?(::Rails)
8
+ require File.dirname(__FILE__) + '/mochiscript/tilt/template'
9
+ require File.dirname(__FILE__) + '/mochiscript/rails/engine'
10
+ end
@@ -225,11 +225,11 @@ window.$m = $m;
225
225
 
226
226
 
227
227
  $m.Class.extend("JSML", function(KLASS, OO){
228
- OO.addStaticMember("process", function(txt){
228
+ OO.addStaticMember("process", function(txt){var self=this;
229
229
  return new $m.JSML(txt);
230
230
  });
231
231
 
232
- OO.addMember("initialize", function(txt){
232
+ OO.addMember("initialize", function(txt){var self=this;
233
233
  var lines = txt.split(/\n/);
234
234
  this.root = new $c.JSMLElement();
235
235
  this.stack = [ this.root ];
@@ -249,11 +249,11 @@ $m.Class.extend("JSML", function(KLASS, OO){
249
249
  };
250
250
  });
251
251
 
252
- OO.addMember("flatten", function(){
252
+ OO.addMember("flatten", function(){var self=this;
253
253
  return this.root.flatten();
254
254
  });
255
255
 
256
- OO.addMember("processLine", function(line){
256
+ OO.addMember("processLine", function(line){var self=this;
257
257
  if (line.match(/^\s*$/)) return;
258
258
 
259
259
  var ele = new $m.JSMLElement(line);
@@ -277,11 +277,11 @@ $m.Class.extend("JSML", function(KLASS, OO){
277
277
  });
278
278
 
279
279
 
280
- OO.addMember("getScope", function(){
280
+ OO.addMember("getScope", function(){var self=this;
281
281
  return this.stack.length - 1;
282
282
  });
283
283
 
284
- OO.addMember("getLast", function(){
284
+ OO.addMember("getLast", function(){var self=this;
285
285
  return this.stack[this.stack.length-1];
286
286
  });
287
287
 
@@ -295,7 +295,7 @@ $m.Class.extend("JSMLElement", function(KLASS, OO){
295
295
  OO.addMember("SCOPE_OFFSET", 1);
296
296
  OO.addMember("SELF_CLOSING", { area: null, basefont: null, br: null, hr: null, input: null, img: null, link: null, meta: null });
297
297
 
298
- OO.addMember("initialize", function(line){
298
+ OO.addMember("initialize", function(line){var self=this;
299
299
  this.children = [];
300
300
 
301
301
  if (line == null) {
@@ -312,11 +312,11 @@ $m.Class.extend("JSMLElement", function(KLASS, OO){
312
312
  this.parse(spaceMatch[2]);
313
313
  });
314
314
 
315
- OO.addMember("push", function(child){
315
+ OO.addMember("push", function(child){var self=this;
316
316
  this.children.push(child);
317
317
  });
318
318
 
319
- OO.addMember("parse", function(line){
319
+ OO.addMember("parse", function(line){var self=this;
320
320
  this.attributes;
321
321
  this.line = line;
322
322
  var self = this;
@@ -361,7 +361,7 @@ $m.Class.extend("JSMLElement", function(KLASS, OO){
361
361
  }
362
362
  });
363
363
 
364
- OO.addMember("flatten", function(){
364
+ OO.addMember("flatten", function(){var self=this;
365
365
  var out = [];
366
366
 
367
367
  for (var i=0; i<this.children.length; i++) {
@@ -389,21 +389,21 @@ $m.Class.extend("JSMLElement", function(KLASS, OO){
389
389
  return out;
390
390
  });
391
391
 
392
- OO.addMember("handleJsEQ", function(out){
392
+ OO.addMember("handleJsEQ", function(out){var self=this;
393
393
  if (this.jsEQ) {
394
394
  this.jsEQ = this.jsEQ.replace(/;\s*$/, '');
395
395
  out.unshift('out.push(' + this.jsEQ + ');\n');
396
396
  }
397
397
  });
398
398
 
399
- OO.addMember("handleContent", function(out){
399
+ OO.addMember("handleContent", function(out){var self=this;
400
400
  if (this.content != null && this.content.length > 0) {
401
401
  out.unshift('out.push(' + JSON.stringify(this.content) + ');\n');
402
402
  }
403
403
  });
404
404
 
405
405
 
406
- OO.addMember("handleJsExec", function(out){
406
+ OO.addMember("handleJsExec", function(out){var self=this;
407
407
  if (this.jsExec) {
408
408
  out.unshift(this.jsExec);
409
409
  if (this.jsExec.match(/\{\s*$/)) {
@@ -412,7 +412,7 @@ $m.Class.extend("JSMLElement", function(KLASS, OO){
412
412
  }
413
413
  });
414
414
 
415
- OO.addStaticMember("parseAttributes", function(hash, classes, id){
415
+ OO.addStaticMember("parseAttributes", function(hash, classes, id){var self=this;
416
416
  var out = [];
417
417
  classes = classes || [];
418
418
  if (hash['class']) classes.push(hash['class']);
metadata CHANGED
@@ -1,87 +1,85 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: mochiscript
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.6.pre4
4
5
  prerelease: 6
5
- version: 0.4.6.pre3
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: 2012-02-29 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2012-03-03 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: &70238662876240 !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: *70238662876240
25
+ - !ruby/object:Gem::Dependency
26
+ name: json
27
+ requirement: &70238662874820 !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: *70238662874820
37
36
  description: Javascript Dessert
38
- email:
37
+ email:
39
38
  - me@jeffsu.com
40
- executables:
39
+ executables:
40
+ - ms-bootstrap
41
41
  - ms-parse
42
42
  - ms-run
43
43
  extensions: []
44
-
45
44
  extra_rdoc_files: []
46
-
47
- files:
45
+ files:
48
46
  - .gitignore
49
47
  - Gemfile
50
48
  - Rakefile
49
+ - bin/ms-bootstrap
51
50
  - bin/ms-parse
52
51
  - bin/ms-run
53
52
  - lib/mochiscript.rb
54
53
  - lib/mochiscript/core.rb
55
54
  - lib/mochiscript/rails/engine.rb
55
+ - lib/mochiscript/sinatra/templates.rb
56
+ - lib/mochiscript/tilt/template.rb
56
57
  - lib/mochiscript/version.rb
57
58
  - mochiscript.gemspec
58
59
  - vendor/assets/javascripts/mochiscript.js
59
- homepage: ""
60
+ homepage: ''
60
61
  licenses: []
61
-
62
62
  post_install_message:
63
63
  rdoc_options: []
64
-
65
- require_paths:
64
+ require_paths:
66
65
  - lib
67
- required_ruby_version: !ruby/object:Gem::Requirement
66
+ required_ruby_version: !ruby/object:Gem::Requirement
68
67
  none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- version: "0"
73
- required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
73
  none: false
75
- requirements:
76
- - - ">"
77
- - !ruby/object:Gem::Version
74
+ requirements:
75
+ - - ! '>'
76
+ - !ruby/object:Gem::Version
78
77
  version: 1.3.1
79
78
  requirements: []
80
-
81
79
  rubyforge_project: mochiscript
82
- rubygems_version: 1.8.11
80
+ rubygems_version: 1.8.10
83
81
  signing_key:
84
82
  specification_version: 3
85
83
  summary: Javascript Dessert
86
84
  test_files: []
87
-
85
+ has_rdoc: