Trapped-Frontend.js 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. smalltalk.addPackage('Trapped-Frontend', {});
  2. smalltalk.addClass('TrappedFly', smalltalk.Object, [], 'Trapped-Frontend');
  3. smalltalk.addMethod(
  4. "_name",
  5. smalltalk.method({
  6. selector: "name",
  7. category: 'action',
  8. fn: function (){
  9. var self=this;
  10. var $1;
  11. $1=smalltalk.send(smalltalk.send(self,"_class",[]),"_name",[]);
  12. return $1;
  13. },
  14. args: [],
  15. source: "name\x0a\x09^ self class name",
  16. messageSends: ["name", "class"],
  17. referencedClasses: []
  18. }),
  19. smalltalk.TrappedFly);
  20. smalltalk.addMethod(
  21. "_start",
  22. smalltalk.method({
  23. selector: "start",
  24. category: 'action',
  25. fn: function (){
  26. var self=this;
  27. smalltalk.send(smalltalk.send((smalltalk.Trapped || Trapped),"_current",[]),"_register_name_",[self,smalltalk.send(self,"_name",[])]);
  28. return self},
  29. args: [],
  30. source: "start\x0a\x09Trapped current register: self name: self name",
  31. messageSends: ["register:name:", "name", "current"],
  32. referencedClasses: ["Trapped"]
  33. }),
  34. smalltalk.TrappedFly);
  35. smalltalk.addMethod(
  36. "_start",
  37. smalltalk.method({
  38. selector: "start",
  39. category: 'action',
  40. fn: function (){
  41. var self=this;
  42. smalltalk.send(smalltalk.send(self,"_new",[]),"_start",[]);
  43. return self},
  44. args: [],
  45. source: "start\x0a\x09self new start",
  46. messageSends: ["start", "new"],
  47. referencedClasses: []
  48. }),
  49. smalltalk.TrappedFly.klass);
  50. smalltalk.addClass('TrappedSingleton', smalltalk.Object, [], 'Trapped-Frontend');
  51. smalltalk.addMethod(
  52. "_start",
  53. smalltalk.method({
  54. selector: "start",
  55. category: 'action',
  56. fn: function (){
  57. var self=this;
  58. var $1;
  59. $1=smalltalk.send(self,"_subclassResponsibility",[]);
  60. return $1;
  61. },
  62. args: [],
  63. source: "start\x0a\x09^ self subclassResponsibility",
  64. messageSends: ["subclassResponsibility"],
  65. referencedClasses: []
  66. }),
  67. smalltalk.TrappedSingleton);
  68. smalltalk.TrappedSingleton.klass.iVarNames = ['current'];
  69. smalltalk.addMethod(
  70. "_current",
  71. smalltalk.method({
  72. selector: "current",
  73. category: 'accessing',
  74. fn: function (){
  75. var self=this;
  76. var $1;
  77. if(($receiver = self["@current"]) == nil || $receiver == undefined){
  78. self["@current"]=smalltalk.send(self,"_new",[]);
  79. $1=self["@current"];
  80. } else {
  81. $1=self["@current"];
  82. };
  83. return $1;
  84. },
  85. args: [],
  86. source: "current\x0a\x09^ current ifNil: [ current := self new ]",
  87. messageSends: ["ifNil:", "new"],
  88. referencedClasses: []
  89. }),
  90. smalltalk.TrappedSingleton.klass);
  91. smalltalk.addMethod(
  92. "_start",
  93. smalltalk.method({
  94. selector: "start",
  95. category: 'action',
  96. fn: function (){
  97. var self=this;
  98. smalltalk.send(smalltalk.send(self,"_current",[]),"_start",[]);
  99. return self},
  100. args: [],
  101. source: "start\x0a\x09self current start",
  102. messageSends: ["start", "current"],
  103. referencedClasses: []
  104. }),
  105. smalltalk.TrappedSingleton.klass);
  106. smalltalk.addClass('Trapped', smalltalk.TrappedSingleton, ['registry'], 'Trapped-Frontend');
  107. smalltalk.addMethod(
  108. "_byName_",
  109. smalltalk.method({
  110. selector: "byName:",
  111. category: 'accessing',
  112. fn: function (aString){
  113. var self=this;
  114. var $1;
  115. $1=smalltalk.send(self["@registry"],"_at_",[aString]);
  116. return $1;
  117. },
  118. args: ["aString"],
  119. source: "byName: aString\x0a\x09^ registry at: aString",
  120. messageSends: ["at:"],
  121. referencedClasses: []
  122. }),
  123. smalltalk.Trapped);
  124. smalltalk.addMethod(
  125. "_initialize",
  126. smalltalk.method({
  127. selector: "initialize",
  128. category: 'initialization',
  129. fn: function (){
  130. var self=this;
  131. smalltalk.send(self,"_initialize",[],smalltalk.TrappedSingleton);
  132. self["@registry"]=smalltalk.HashedCollection._fromPairs_([]);
  133. return self},
  134. args: [],
  135. source: "initialize\x0a\x09super initialize.\x0a\x09registry := #{}.",
  136. messageSends: ["initialize"],
  137. referencedClasses: []
  138. }),
  139. smalltalk.Trapped);
  140. smalltalk.addMethod(
  141. "_register_name_",
  142. smalltalk.method({
  143. selector: "register:name:",
  144. category: 'accessing',
  145. fn: function (aFly,aString){
  146. var self=this;
  147. smalltalk.send(self["@registry"],"_at_put_",[aString,aFly]);
  148. return self},
  149. args: ["aFly", "aString"],
  150. source: "register: aFly name: aString\x0a\x09registry at: aString put: aFly",
  151. messageSends: ["at:put:"],
  152. referencedClasses: []
  153. }),
  154. smalltalk.Trapped);
  155. smalltalk.addMethod(
  156. "_start",
  157. smalltalk.method({
  158. selector: "start",
  159. category: 'action',
  160. fn: function (){
  161. var self=this;
  162. smalltalk.send(smalltalk.send("[data-trap]","_asJQuery",[]),"_each_",[(function(index,elem){
  163. var trap;
  164. var jq;
  165. var viewName;
  166. var modelName;
  167. var tokens;
  168. jq=smalltalk.send(elem,"_asJQuery",[]);
  169. jq;
  170. trap=smalltalk.send(jq,"_attr_",["data-trap"]);
  171. trap;
  172. tokens=smalltalk.send(trap,"_tokenize_",[":"]);
  173. tokens;
  174. viewName=smalltalk.send(tokens,"_first",[]);
  175. viewName;
  176. modelName=smalltalk.send(tokens,"_second",[]);
  177. modelName;
  178. return smalltalk.send([modelName],"_trapDescend_",[(function(){
  179. return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_at_",[viewName]),"_new",[]),"_appendToJQuery_",[jq]);
  180. })]);
  181. })]);
  182. return self},
  183. args: [],
  184. source: "start\x0a\x09'[data-trap]' asJQuery each: [ :index :elem |\x0a \x09| trap jq viewName modelName tokens |\x0a jq := elem asJQuery.\x0a trap := jq attr: 'data-trap'.\x0a tokens := trap tokenize: ':'.\x0a viewName := tokens first.\x0a modelName := tokens second.\x0a { modelName } trapDescend: [(Smalltalk current at: viewName) new appendToJQuery: jq].\x0a ]",
  185. messageSends: ["each:", "asJQuery", "attr:", "tokenize:", "first", "second", "trapDescend:", "appendToJQuery:", "new", "at:", "current"],
  186. referencedClasses: ["Smalltalk"]
  187. }),
  188. smalltalk.Trapped);
  189. smalltalk.addMethod(
  190. "_path",
  191. smalltalk.method({
  192. selector: "path",
  193. category: 'accessing',
  194. fn: function (){
  195. var self=this;
  196. var $1;
  197. $1=smalltalk.send(smalltalk.send((smalltalk.TrappedPathStack || TrappedPathStack),"_current",[]),"_elements",[]);
  198. return $1;
  199. },
  200. args: [],
  201. source: "path\x0a\x09^TrappedPathStack current elements",
  202. messageSends: ["elements", "current"],
  203. referencedClasses: ["TrappedPathStack"]
  204. }),
  205. smalltalk.Trapped.klass);
  206. smalltalk.addClass('TrappedPathStack', smalltalk.TrappedSingleton, ['elements'], 'Trapped-Frontend');
  207. smalltalk.addMethod(
  208. "_append_",
  209. smalltalk.method({
  210. selector: "append:",
  211. category: 'descending',
  212. fn: function (anArray){
  213. var self=this;
  214. self["@elements"]=smalltalk.send(self["@elements"],"__comma",[anArray]);
  215. return self},
  216. args: ["anArray"],
  217. source: "append: anArray\x0a elements := elements, anArray",
  218. messageSends: [","],
  219. referencedClasses: []
  220. }),
  221. smalltalk.TrappedPathStack);
  222. smalltalk.addMethod(
  223. "_elements",
  224. smalltalk.method({
  225. selector: "elements",
  226. category: 'accessing',
  227. fn: function (){
  228. var self=this;
  229. return self["@elements"];
  230. },
  231. args: [],
  232. source: "elements\x0a\x09^elements",
  233. messageSends: [],
  234. referencedClasses: []
  235. }),
  236. smalltalk.TrappedPathStack);
  237. smalltalk.addMethod(
  238. "_initialize",
  239. smalltalk.method({
  240. selector: "initialize",
  241. category: 'initialization',
  242. fn: function (){
  243. var self=this;
  244. self["@elements"]=[];
  245. return self},
  246. args: [],
  247. source: "initialize\x0a\x09elements := #().",
  248. messageSends: [],
  249. referencedClasses: []
  250. }),
  251. smalltalk.TrappedPathStack);
  252. smalltalk.addMethod(
  253. "_with_do_",
  254. smalltalk.method({
  255. selector: "with:do:",
  256. category: 'descending',
  257. fn: function (anArray,aBlock){
  258. var self=this;
  259. var old;
  260. old=self["@elements"];
  261. smalltalk.send((function(){
  262. smalltalk.send(self,"_append_",[anArray]);
  263. return smalltalk.send(aBlock,"_value",[]);
  264. }),"_ensure_",[(function(){
  265. self["@elements"]=old;
  266. return self["@elements"];
  267. })]);
  268. return self},
  269. args: ["anArray", "aBlock"],
  270. source: "with: anArray do: aBlock\x0a\x09| old |\x0a old := elements.\x0a [ self append: anArray.\x0a\x09aBlock value ] ensure: [ elements := old ]",
  271. messageSends: ["ensure:", "append:", "value"],
  272. referencedClasses: []
  273. }),
  274. smalltalk.TrappedPathStack);
  275. smalltalk.addMethod(
  276. "_trapDescend_",
  277. smalltalk.method({
  278. selector: "trapDescend:",
  279. category: '*Trapped-Frontend',
  280. fn: function (aBlock){
  281. var self=this;
  282. smalltalk.send(smalltalk.send((smalltalk.TrappedPathStack || TrappedPathStack),"_current",[]),"_with_do_",[self,aBlock]);
  283. return self},
  284. args: ["aBlock"],
  285. source: "trapDescend: aBlock\x0a\x09TrappedPathStack current with: self do: aBlock",
  286. messageSends: ["with:do:", "current"],
  287. referencedClasses: ["TrappedPathStack"]
  288. }),
  289. smalltalk.Array);
  290. smalltalk.addMethod(
  291. "_trapDescend_",
  292. smalltalk.method({
  293. selector: "trapDescend:",
  294. category: '*Trapped-Frontend',
  295. fn: function (aBlock){
  296. var self=this;
  297. smalltalk.send(smalltalk.send((smalltalk.TrappedPathStack || TrappedPathStack),"_current",[]),"_with_do_",[self,aBlock]);
  298. return self},
  299. args: ["aBlock"],
  300. source: "trapDescend: aBlock\x0a\x09TrappedPathStack current with: self do: aBlock",
  301. messageSends: ["with:do:", "current"],
  302. referencedClasses: ["TrappedPathStack"]
  303. }),
  304. smalltalk.Array);
  305. smalltalk.addMethod(
  306. "_trap_read_",
  307. smalltalk.method({
  308. selector: "trap:read:",
  309. category: '*Trapped-Frontend',
  310. fn: function (path,aBlock){
  311. var self=this;
  312. smalltalk.send(path,"_trapDescend_",[(function(){
  313. var actual;
  314. var model;
  315. actual=smalltalk.send((smalltalk.Trapped || Trapped),"_path",[]);
  316. actual;
  317. model=smalltalk.send(smalltalk.send("<< ","__comma",[actual]),"__comma",[" >>"]);
  318. model;
  319. return smalltalk.send((function(){
  320. return smalltalk.send(aBlock,"_value_value_",[self,model]);
  321. }),"_fork",[]);
  322. })]);
  323. return self},
  324. args: ["path", "aBlock"],
  325. source: "trap: path read: aBlock\x0a\x09path trapDescend: [ | actual model |\x0a \x09actual := Trapped path.\x0a model := '<< ', actual, ' >>'.\x0a \x09\x22TODO register for later\x22\x0a [aBlock value: self value: model] fork\x0a ]",
  326. messageSends: ["trapDescend:", "path", ",", "fork", "value:value:"],
  327. referencedClasses: ["Trapped"]
  328. }),
  329. smalltalk.TagBrush);
  330. smalltalk.addMethod(
  331. "_trapShow_",
  332. smalltalk.method({
  333. selector: "trapShow:",
  334. category: '*Trapped-Frontend',
  335. fn: function (path){
  336. var self=this;
  337. var $1;
  338. smalltalk.send(self,"_trap_read_",[path,(function(brush,model){
  339. smalltalk.send(brush,"_empty",[]);
  340. $1=smalltalk.send(brush,"_with_",[model]);
  341. return $1;
  342. })]);
  343. return self},
  344. args: ["path"],
  345. source: "trapShow: path\x0a\x09self trap: path read: [ :brush :model | brush empty; with: model ]",
  346. messageSends: ["trap:read:", "empty", "with:"],
  347. referencedClasses: []
  348. }),
  349. smalltalk.TagBrush);