Trapped-Common.deploy.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. smalltalk.addPackage('Trapped-Common', {});
  2. smalltalk.addClass('TrappedDispatcher', smalltalk.Object, [], 'Trapped-Common');
  3. smalltalk.addMethod(
  4. "_changed_",
  5. smalltalk.method({
  6. selector: "changed:",
  7. fn: function (path){
  8. var self=this;
  9. var $1;
  10. var needsToRun;
  11. needsToRun=false;
  12. smalltalk.send(self,"_do_",[(function(each){
  13. var aPath;
  14. var lesser;
  15. aPath=smalltalk.send(each,"_second",[]);
  16. aPath;
  17. lesser=smalltalk.send(smalltalk.send(aPath,"_size",[]),"_min_",[smalltalk.send(path,"_size",[])]);
  18. lesser;
  19. $1=smalltalk.send(smalltalk.send(path,"_copyFrom_to_",[(1),lesser]),"__eq",[smalltalk.send(aPath,"_copyFrom_to_",[(1),lesser])]);
  20. if(smalltalk.assert($1)){
  21. smalltalk.send(each,"_at_put_",[(1),true]);
  22. needsToRun=true;
  23. return needsToRun;
  24. };
  25. })]);
  26. return needsToRun;
  27. }
  28. }),
  29. smalltalk.TrappedDispatcher);
  30. smalltalk.addMethod(
  31. "_run",
  32. smalltalk.method({
  33. selector: "run",
  34. fn: function (){
  35. var self=this;
  36. var $1;
  37. smalltalk.send(self,"_do_",[(function(each){
  38. $1=smalltalk.send(each,"_first",[]);
  39. if(smalltalk.assert($1)){
  40. return smalltalk.send((function(){
  41. return smalltalk.send(smalltalk.send(each,"_third",[]),"_value",[]);
  42. }),"_ensure_",[(function(){
  43. return smalltalk.send(each,"_at_put_",[(1),false]);
  44. })]);
  45. };
  46. })]);
  47. return self}
  48. }),
  49. smalltalk.TrappedDispatcher);
  50. smalltalk.addClass('TrappedModelWrapper', smalltalk.Object, ['dispatcher', 'payload'], 'Trapped-Common');
  51. smalltalk.addMethod(
  52. "_dispatcher",
  53. smalltalk.method({
  54. selector: "dispatcher",
  55. fn: function (){
  56. var self=this;
  57. return self["@dispatcher"];
  58. }
  59. }),
  60. smalltalk.TrappedModelWrapper);
  61. smalltalk.addMethod(
  62. "_dispatcher_",
  63. smalltalk.method({
  64. selector: "dispatcher:",
  65. fn: function (aDispatcher){
  66. var self=this;
  67. self["@dispatcher"]=aDispatcher;
  68. return self}
  69. }),
  70. smalltalk.TrappedModelWrapper);
  71. smalltalk.addMethod(
  72. "_name",
  73. smalltalk.method({
  74. selector: "name",
  75. fn: function (){
  76. var self=this;
  77. var $1;
  78. $1=smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[]);
  79. return $1;
  80. }
  81. }),
  82. smalltalk.TrappedModelWrapper);
  83. smalltalk.addMethod(
  84. "_payload",
  85. smalltalk.method({
  86. selector: "payload",
  87. fn: function (){
  88. var self=this;
  89. return self["@payload"];
  90. }
  91. }),
  92. smalltalk.TrappedModelWrapper);
  93. smalltalk.addMethod(
  94. "_payload_",
  95. smalltalk.method({
  96. selector: "payload:",
  97. fn: function (anObject){
  98. var self=this;
  99. self["@payload"]=anObject;
  100. return self}
  101. }),
  102. smalltalk.TrappedModelWrapper);
  103. smalltalk.addMethod(
  104. "_start",
  105. smalltalk.method({
  106. selector: "start",
  107. fn: function (){
  108. var self=this;
  109. smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_current",[]),"_register_name_",[self,smalltalk.send(self,"_name",[])]);
  110. return self}
  111. }),
  112. smalltalk.TrappedModelWrapper);
  113. smalltalk.addMethod(
  114. "_watch_do_",
  115. smalltalk.method({
  116. selector: "watch:do:",
  117. fn: function (path,aBlock){
  118. var self=this;
  119. smalltalk.send(smalltalk.send(self,"_dispatcher",[]),"_add_",[[true,path,(function(){
  120. return smalltalk.send(self,"_read_do_",[path,aBlock]);
  121. })]]);
  122. smalltalk.send((function(){
  123. return smalltalk.send(smalltalk.send(self,"_dispatcher",[]),"_run",[]);
  124. }),"_fork",[]);
  125. return self}
  126. }),
  127. smalltalk.TrappedModelWrapper);
  128. smalltalk.addMethod(
  129. "_start",
  130. smalltalk.method({
  131. selector: "start",
  132. fn: function (){
  133. var self=this;
  134. smalltalk.send(smalltalk.send(self,"_new",[]),"_start",[]);
  135. return self}
  136. }),
  137. smalltalk.TrappedModelWrapper.klass);