mochiscript 0.4.0.pre14 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -252,6 +252,10 @@ var TOKENS = [
252
252
 
253
253
  [ "STATIC", "static\\b" ],
254
254
  [ "MODULE", "module\\b", 'ModuleParser' ],
255
+
256
+ [ "EXPORT", "export\\s+class\\b", 'ClassParser' ],
257
+ [ "PUBLIC", "public\\s+class\\b", 'ClassParser' ],
258
+
255
259
  [ "CLASS", "class\\b", 'ClassParser' ],
256
260
  [ "FUNCTION", "function\\b" ],
257
261
  [ "INCLUDE", "include\\b" ],
@@ -453,7 +457,7 @@ JS2.Class.extend('RootParser', function(KLASS, OO){
453
457
  OO.addMember("toString",function () {
454
458
  var ret = [];
455
459
  for(var _i1=0,_c1=this.out,_l1=_c1.length,ele;(ele=_c1[_i1])||(_i1<_l1);_i1++){
456
- ret.push(ele.toString());
460
+ ret.push(ele === undefined ? '' : ele.toString());
457
461
  }
458
462
  return ret.join("");
459
463
  });
@@ -468,6 +472,11 @@ JS2.Class.extend('RootParser', function(KLASS, OO){
468
472
  var ret = [ space + (this._TYPE || 'NODE') ];
469
473
  var generic = [];
470
474
  for(var _i1=0,_c1=this.out,_l1=_c1.length,ele;(ele=_c1[_i1])||(_i1<_l1);_i1++){
475
+ if (ele === undefined) {
476
+ ret.push(space + " UNDEFINED!");
477
+ continue;
478
+ }
479
+
471
480
  if (ele.pp) {
472
481
  if (generic.length) {
473
482
  ret.push(space + " TOKENS:" + JSON.stringify(generic.join('')));
@@ -511,24 +520,22 @@ var RootParser = $c.RootParser;
511
520
  RootParser.extend('ClassParser', function(KLASS, OO){
512
521
  // private closure
513
522
 
514
- var REGEX = Tokens.regex("<CLASS> <CLASSNAME><LCURLY>");
515
- var EXTENDS = Tokens.regex("<CLASS> <CLASSNAME><EXTENDS><CLASSNAME><LCURLY>");
523
+ var REGEX = Tokens.regex("(?:<EXPORT>|<PUBLIC>|<CLASS>) <CLASSNAME><LCURLY>");
524
+ var EXTENDS = Tokens.regex("(?:<EXPORT>|<PUBLIC>|<CLASS>) <CLASSNAME><EXTENDS><CLASSNAME><LCURLY>");
516
525
 
517
526
 
518
527
  OO.addMember("parse",function (tokens) {
519
528
  var m = tokens.match(REGEX) || tokens.match(EXTENDS);
520
- var name = m[2];
521
- var extending = m[4] || "$m.Class";
529
+ var name = m[4];
530
+ var extending = m[6] || "$m.Class";
522
531
 
523
532
  tokens.consume(m[0].length-1);
524
533
 
525
534
  var content = new $c.ClassContentParser();
526
535
  content.parse(tokens);
527
536
 
528
- var behind = tokens.lookback(7);
529
- var isPublic = ($m.PLATFORM == 'node' && behind.match(/public$/)) ? "\nexports." + name + '=' + name + ';' : '';
530
- var isExports = ($m.PLATFORM == 'node' && behind == 'export') ? "\nmodule.exports." + name + '=' + name + ';' : '';
531
-
537
+ var isPublic = ($m.PLATFORM == 'node' && m[2] == 'public') ? "\nexports." + name + '=' + name + ';' : '';
538
+ var isExports = ($m.PLATFORM == 'node' && m[1] == 'export') ? "\nmodule.exports." + name + '=' + name + ';' : '';
532
539
 
533
540
  this.out = [ "var ", name, " = " + extending + ".extend(function(KLASS, OO)", content, ");", isPublic, isExports ];
534
541
  });
data/lib/mochiscript.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Mochiscript
2
- VERSION = "0.4.0-pre14".sub("-", '.')
2
+ VERSION = "0.4.0".sub("-", '.')
3
3
  end
4
4
 
5
5
  require File.dirname(__FILE__) + '/mochiscript/core'
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mochiscript
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: 6
5
- version: 0.4.0.pre14
4
+ prerelease:
5
+ version: 0.4.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jeff Su
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-11-01 00:00:00 Z
13
+ date: 2011-11-02 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: therubyracer
@@ -69,9 +69,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
69
69
  required_rubygems_version: !ruby/object:Gem::Requirement
70
70
  none: false
71
71
  requirements:
72
- - - ">"
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: 1.3.1
74
+ version: "0"
75
75
  requirements: []
76
76
 
77
77
  rubyforge_project: mochiscript