Nemo.deploy.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. smalltalk.addPackage('Nemo', {});
  2. smalltalk.addClass('NemoConnection', smalltalk.Object, ['socket'], 'Nemo');
  3. smalltalk.addMethod(
  4. "_close",
  5. smalltalk.method({
  6. selector: "close",
  7. fn: function (){
  8. var self=this;
  9. smalltalk.send(self['@socket'], "_close", []);
  10. (self['@socket']=nil);
  11. return self;}
  12. }),
  13. smalltalk.NemoConnection);
  14. smalltalk.addMethod(
  15. "_createDefaultSocket",
  16. smalltalk.method({
  17. selector: "createDefaultSocket",
  18. fn: function (){
  19. var self=this;
  20. smalltalk.send(self, "_createSocketOn_", [smalltalk.send(self, "_defaultURL", [])]);
  21. return self;}
  22. }),
  23. smalltalk.NemoConnection);
  24. smalltalk.addMethod(
  25. "_createLocalSocketOn_",
  26. smalltalk.method({
  27. selector: "createLocalSocketOn:",
  28. fn: function (aPort){
  29. var self=this;
  30. return smalltalk.send(self, "_createSocketOn_", [smalltalk.send(smalltalk.send("ws://localhost:", "__comma", [smalltalk.send(aPort, "_asString", [])]), "__comma", ["/nemo"])]);
  31. return self;}
  32. }),
  33. smalltalk.NemoConnection);
  34. smalltalk.addMethod(
  35. "_createSocketOn_",
  36. smalltalk.method({
  37. selector: "createSocketOn:",
  38. fn: function (uri){
  39. var self=this;
  40. (self['@socket']=new WebSocket(uri));
  41. smalltalk.send(self['@socket'], "_at_put_", ["onmessage", (function(message){return smalltalk.send(self, "_handleMessage_", [message]);})]);
  42. smalltalk.send(self['@socket'], "_at_put_", ["onerror", (function(err){return smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [err]);})]);
  43. return self;}
  44. }),
  45. smalltalk.NemoConnection);
  46. smalltalk.addMethod(
  47. "_defaultURL",
  48. smalltalk.method({
  49. selector: "defaultURL",
  50. fn: function (){
  51. var self=this;
  52. return smalltalk.send(smalltalk.send(self, "_class", []), "_defaultURL", []);
  53. return self;}
  54. }),
  55. smalltalk.NemoConnection);
  56. smalltalk.addMethod(
  57. "_handleMessage_",
  58. smalltalk.method({
  59. selector: "handleMessage:",
  60. fn: function (aMessage){
  61. var self=this;
  62. var $early={};
  63. try{var string=nil;
  64. var result=nil;
  65. (string=smalltalk.send(aMessage, "_data", []));
  66. ((($receiver = smalltalk.send(string, "_isString", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return (function(){throw $early=[self]})();})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return (function(){throw $early=[self]})();})]));
  67. smalltalk.send((smalltalk.Transcript || Transcript), "_show_", [string]);
  68. (result=smalltalk.send(smalltalk.send((smalltalk.Compiler || Compiler), "_new", []), "_evaluateExpression_", [string]));
  69. smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [result]);
  70. smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", [smalltalk.send(result, "_asNemoString", [])]);
  71. smalltalk.send(self['@socket'], "_send_", [smalltalk.send(result, "_asNemoString", [])]);
  72. return self;
  73. } catch(e) {if(e===$early)return e[0]; throw e}}
  74. }),
  75. smalltalk.NemoConnection);
  76. smalltalk.addMethod(
  77. "_send_",
  78. smalltalk.method({
  79. selector: "send:",
  80. fn: function (aString){
  81. var self=this;
  82. smalltalk.send(self['@socket'], "_send_", [aString]);
  83. return self;}
  84. }),
  85. smalltalk.NemoConnection);
  86. smalltalk.NemoConnection.klass.iVarNames = ['default'];
  87. smalltalk.addMethod(
  88. "_default",
  89. smalltalk.method({
  90. selector: "default",
  91. fn: function (){
  92. var self=this;
  93. return (($receiver = self['@default']) == nil || $receiver == undefined) ? (function(){return (self['@default']=smalltalk.send(self, "_new", []));})() : $receiver;
  94. return self;}
  95. }),
  96. smalltalk.NemoConnection.klass);
  97. smalltalk.addMethod(
  98. "_defaultURL",
  99. smalltalk.method({
  100. selector: "defaultURL",
  101. fn: function (){
  102. var self=this;
  103. return "ws://localhost:8010/nemo";
  104. return self;}
  105. }),
  106. smalltalk.NemoConnection.klass);
  107. smalltalk.addMethod(
  108. "_asNemo",
  109. smalltalk.method({
  110. selector: "asNemo",
  111. fn: function (){
  112. var self=this;
  113. return smalltalk.send(self, "_asJSON", []);
  114. return self;}
  115. }),
  116. smalltalk.Object);
  117. smalltalk.addMethod(
  118. "_asNemoString",
  119. smalltalk.method({
  120. selector: "asNemoString",
  121. fn: function (){
  122. var self=this;
  123. return smalltalk.send((smalltalk.JSON || JSON), "_stringify_", [smalltalk.send(self, "_asNemo", [])]);
  124. return self;}
  125. }),
  126. smalltalk.Object);
  127. smalltalk.addMethod(
  128. "_asNemo",
  129. smalltalk.method({
  130. selector: "asNemo",
  131. fn: function (){
  132. var self=this;
  133. return (function($rec){smalltalk.send($rec, "_at_put_", ["name", smalltalk.send(self, "_name", [])]);smalltalk.send($rec, "_at_put_", ["superclass", (($receiver = smalltalk.send(self, "_superclass", [])) != nil && $receiver != undefined) ? (function(){return smalltalk.send(smalltalk.send(self, "_superclass", []), "_name", []);})() : nil]);smalltalk.send($rec, "_at_put_", ["classComment", smalltalk.send(self, "_comment", [])]);smalltalk.send($rec, "_at_put_", ["definition", smalltalk.send(self, "_definition", [])]);smalltalk.send($rec, "_at_put_", ["package", smalltalk.send(self, "_category", [])]);return smalltalk.send($rec, "_asNemo", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
  134. return self;}
  135. }),
  136. smalltalk.Class);
  137. smalltalk.addMethod(
  138. "_asNemo",
  139. smalltalk.method({
  140. selector: "asNemo",
  141. fn: function (){
  142. var self=this;
  143. return smalltalk.send(smalltalk.send(self, "_asArray", []), "_collect_", [(function(each){return smalltalk.send(each, "_asNemo", []);})]);
  144. return self;}
  145. }),
  146. smalltalk.Collection);
  147. smalltalk.addMethod(
  148. "_asNemo",
  149. smalltalk.method({
  150. selector: "asNemo",
  151. fn: function (){
  152. var self=this;
  153. var c=nil;
  154. (c=smalltalk.send(smalltalk.send(self, "_class", []), "_new", []));
  155. smalltalk.send(self, "_keysAndValuesDo_", [(function(key, value){return smalltalk.send(c, "_at_put_", [key, smalltalk.send(value, "_asNemo", [])]);})]);
  156. return c;
  157. return self;}
  158. }),
  159. smalltalk.HashedCollection);
  160. smalltalk.addMethod(
  161. "_asNemo",
  162. smalltalk.method({
  163. selector: "asNemo",
  164. fn: function (){
  165. var self=this;
  166. return smalltalk.send(smalltalk.send(self, "_asHashedCollection", []), "_asNemo", []);
  167. return self;}
  168. }),
  169. smalltalk.Dictionary);
  170. smalltalk.addMethod(
  171. "_asNemo",
  172. smalltalk.method({
  173. selector: "asNemo",
  174. fn: function (){
  175. var self=this;
  176. return self;
  177. return self;}
  178. }),
  179. smalltalk.String);
  180. smalltalk.addMethod(
  181. "_asNemo",
  182. smalltalk.method({
  183. selector: "asNemo",
  184. fn: function (){
  185. var self=this;
  186. return (function($rec){smalltalk.send($rec, "_at_put_", ["name", smalltalk.send(self, "_name", [])]);return smalltalk.send($rec, "_asNemo", []);})(smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
  187. return self;}
  188. }),
  189. smalltalk.Package);