mochiscript 0.4.0.pre14 → 0.4.0
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.
- data/lib/mochiscript/core.rb +16 -9
- data/lib/mochiscript.rb +1 -1
- metadata +5 -5
data/lib/mochiscript/core.rb
CHANGED
@@ -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("
|
515
|
-
var EXTENDS = Tokens.regex("
|
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[
|
521
|
-
var extending = m[
|
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
|
529
|
-
var
|
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
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:
|
5
|
-
version: 0.4.0
|
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-
|
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:
|
74
|
+
version: "0"
|
75
75
|
requirements: []
|
76
76
|
|
77
77
|
rubyforge_project: mochiscript
|