maglev-database-explorer 0.0.1

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.
Files changed (688) hide show
  1. data/MIT-LICENSE +21 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +40 -0
  4. data/app/assets/javascripts/maglev-database-explorer/application.js +17 -0
  5. data/app/assets/javascripts/maglev_database_explorer/def.js +2 -0
  6. data/app/assets/stylesheets/maglev-database-explorer/application.css +13 -0
  7. data/app/assets/stylesheets/maglev_database_explorer/def.css +4 -0
  8. data/app/controllers/maglev_database_explorer/application_controller.rb +4 -0
  9. data/app/controllers/maglev_database_explorer/code_controller.rb +101 -0
  10. data/app/controllers/maglev_database_explorer/object_controller.rb +60 -0
  11. data/app/controllers/maglev_database_explorer/object_explorer_controller.rb +9 -0
  12. data/app/helpers/maglev_database_explorer/application_helper.rb +4 -0
  13. data/app/views/layouts/maglev-database-explorer/application.html.erb +14 -0
  14. data/app/views/maglev_database_explorer/object_explorer/_workspace.html.erb +28 -0
  15. data/app/views/maglev_database_explorer/object_explorer/index.html.erb +92 -0
  16. data/config/routes.rb +15 -0
  17. data/lib/maglev-database-explorer.rb +17 -0
  18. data/lib/maglev-database-explorer/code_evaluation.rb +36 -0
  19. data/lib/maglev-database-explorer/database_views.rb +29 -0
  20. data/lib/maglev-database-explorer/database_views/abstract_dictionary.rb +69 -0
  21. data/lib/maglev-database-explorer/database_views/abstract_exception.rb +25 -0
  22. data/lib/maglev-database-explorer/database_views/array.rb +28 -0
  23. data/lib/maglev-database-explorer/database_views/boolean.rb +12 -0
  24. data/lib/maglev-database-explorer/database_views/class.rb +46 -0
  25. data/lib/maglev-database-explorer/database_views/exception.rb +3 -0
  26. data/lib/maglev-database-explorer/database_views/execblock.rb +5 -0
  27. data/lib/maglev-database-explorer/database_views/fixnum.rb +5 -0
  28. data/lib/maglev-database-explorer/database_views/float.rb +6 -0
  29. data/lib/maglev-database-explorer/database_views/globals.rb +2 -0
  30. data/lib/maglev-database-explorer/database_views/gsnmethod.rb +29 -0
  31. data/lib/maglev-database-explorer/database_views/hash.rb +5 -0
  32. data/lib/maglev-database-explorer/database_views/maglev_record.rb +43 -0
  33. data/lib/maglev-database-explorer/database_views/module.rb +104 -0
  34. data/lib/maglev-database-explorer/database_views/nilclass.rb +6 -0
  35. data/lib/maglev-database-explorer/database_views/object.rb +77 -0
  36. data/lib/maglev-database-explorer/database_views/proc.rb +4 -0
  37. data/lib/maglev-database-explorer/database_views/repository.rb +4 -0
  38. data/lib/maglev-database-explorer/database_views/ruby_workspace.rb +6 -0
  39. data/lib/maglev-database-explorer/database_views/smalltalk_classes.rb +35 -0
  40. data/lib/maglev-database-explorer/database_views/smalltalk_classes.st +60 -0
  41. data/lib/maglev-database-explorer/database_views/string.rb +27 -0
  42. data/lib/maglev-database-explorer/database_views/symbol.rb +33 -0
  43. data/lib/maglev-database-explorer/database_views/system.rb +48 -0
  44. data/lib/maglev-database-explorer/database_views/thread.rb +101 -0
  45. data/lib/maglev-database-explorer/debug_server.rb +22 -0
  46. data/lib/maglev-database-explorer/engine.rb +23 -0
  47. data/lib/maglev-database-explorer/engine_symlinks.rb +19 -0
  48. data/lib/maglev-database-explorer/halt.rb +33 -0
  49. data/lib/maglev-database-explorer/ruby_workspace.rb +31 -0
  50. data/lib/maglev-database-explorer/version.rb +3 -0
  51. data/lib/tasks/maglev-database-explorer_tasks.rake +4 -0
  52. data/public/LICENSE +35 -0
  53. data/public/amber/CHANGELOG +65 -0
  54. data/public/amber/LICENSE +22 -0
  55. data/public/amber/Makefile +53 -0
  56. data/public/amber/README.md +30 -0
  57. data/public/amber/bin/amber +3 -0
  58. data/public/amber/bin/amberc +352 -0
  59. data/public/amber/bin/nodecompile.js +33 -0
  60. data/public/amber/bin/server +3 -0
  61. data/public/amber/bin/server.bat +3 -0
  62. data/public/amber/css/amber-normalize.css +468 -0
  63. data/public/amber/css/amber-normalize.less +501 -0
  64. data/public/amber/css/amber.css +539 -0
  65. data/public/amber/css/documentation.css +84 -0
  66. data/public/amber/css/profstef.css +75 -0
  67. data/public/amber/css/style.css +313 -0
  68. data/public/amber/documentation.html +37 -0
  69. data/public/amber/examples/Makefile +23 -0
  70. data/public/amber/examples/README +4 -0
  71. data/public/amber/examples/android/helloamber/AndroidManifest.xml +19 -0
  72. data/public/amber/examples/android/helloamber/HelloAmber.st +13 -0
  73. data/public/amber/examples/android/helloamber/Makefile +56 -0
  74. data/public/amber/examples/android/helloamber/README.md +80 -0
  75. data/public/amber/examples/android/helloamber/ant.properties +17 -0
  76. data/public/amber/examples/android/helloamber/assets/index.html +15 -0
  77. data/public/amber/examples/android/helloamber/assets/jquery-1.7.2.min.js +4 -0
  78. data/public/amber/examples/android/helloamber/build.xml +83 -0
  79. data/public/amber/examples/android/helloamber/local.properties +10 -0
  80. data/public/amber/examples/android/helloamber/proguard-project.txt +20 -0
  81. data/public/amber/examples/android/helloamber/project.properties +14 -0
  82. data/public/amber/examples/android/helloamber/res/layout/main.xml +6 -0
  83. data/public/amber/examples/android/helloamber/res/values/strings.xml +4 -0
  84. data/public/amber/examples/android/helloamber/src/org/amberlang/android/helloamber/HelloAmber.java +59 -0
  85. data/public/amber/examples/myproject/index.html +16 -0
  86. data/public/amber/examples/nodejs/README +9 -0
  87. data/public/amber/examples/nodejs/benchfib/Benchfib.st +124 -0
  88. data/public/amber/examples/nodejs/benchfib/Makefile +8 -0
  89. data/public/amber/examples/nodejs/benchfib/benchfib +1 -0
  90. data/public/amber/examples/nodejs/hello/Hello.st +9 -0
  91. data/public/amber/examples/nodejs/hello/Makefile +8 -0
  92. data/public/amber/examples/nodejs/hello/README +13 -0
  93. data/public/amber/examples/nodejs/hello/hello +1 -0
  94. data/public/amber/examples/nodejs/meta/Makefile +8 -0
  95. data/public/amber/examples/nodejs/meta/MyScript.st +27 -0
  96. data/public/amber/examples/nodejs/meta/meta +1 -0
  97. data/public/amber/examples/nodejs/pystone/Makefile +8 -0
  98. data/public/amber/examples/nodejs/pystone/Pystone.st +306 -0
  99. data/public/amber/examples/nodejs/pystone/pystone +1 -0
  100. data/public/amber/examples/nodejs/trivialserver/Makefile +8 -0
  101. data/public/amber/examples/nodejs/trivialserver/TrivialServer.st +51 -0
  102. data/public/amber/examples/nodejs/trivialserver/trivial +1 -0
  103. data/public/amber/examples/presentation/esug2011/images/asterix.png +0 -0
  104. data/public/amber/examples/presentation/esug2011/images/background_box.png +0 -0
  105. data/public/amber/examples/presentation/esug2011/images/background_header.png +0 -0
  106. data/public/amber/examples/presentation/esug2011/images/balloon.jpg +0 -0
  107. data/public/amber/examples/presentation/esug2011/images/balloon_header.png +0 -0
  108. data/public/amber/examples/presentation/esug2011/images/devices.jpg +0 -0
  109. data/public/amber/examples/presentation/esug2011/images/enyo.png +0 -0
  110. data/public/amber/examples/presentation/esug2011/images/ide_star_wars.png +0 -0
  111. data/public/amber/examples/presentation/esug2011/images/nodejs.png +0 -0
  112. data/public/amber/examples/presentation/esug2011/images/terminal.png +0 -0
  113. data/public/amber/examples/presentation/esug2011/images/webos.png +0 -0
  114. data/public/amber/examples/presentation/fosdem2012/images/amber.png +0 -0
  115. data/public/amber/examples/presentation/fosdem2012/images/ambrhino.jpg +0 -0
  116. data/public/amber/examples/presentation/fosdem2012/images/nodejs.png +0 -0
  117. data/public/amber/examples/presentation/fosdem2012/images/pharo.png +0 -0
  118. data/public/amber/examples/presentation/fosdem2012/images/php.gif +0 -0
  119. data/public/amber/examples/presentation/fosdem2012/images/rails.png +0 -0
  120. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-next.png +0 -0
  121. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-prev.png +0 -0
  122. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/closedhand.cur +0 -0
  123. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/openhand.cur +0 -0
  124. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-back.png +0 -0
  125. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-forward.png +0 -0
  126. data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow.png +0 -0
  127. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.css +100 -0
  128. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.js +1232 -0
  129. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.min.js +13 -0
  130. data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.easing.1.3.js +38 -0
  131. data/public/amber/examples/presentation/index.html +17 -0
  132. data/public/amber/examples/presentation/js/Presentation.deploy.js +1922 -0
  133. data/public/amber/examples/presentation/js/Presentation.js +2712 -0
  134. data/public/amber/examples/presentation/st/Presentation.st +1996 -0
  135. data/public/amber/examples/trysmalltalk/index.html +18 -0
  136. data/public/amber/examples/trysmalltalk/js/TrySmalltalk.deploy.js +837 -0
  137. data/public/amber/examples/trysmalltalk/js/TrySmalltalk.js +1206 -0
  138. data/public/amber/examples/trysmalltalk/st/TrySmalltalk.st +964 -0
  139. data/public/amber/examples/twitterwall/css/twitterwall.css +19 -0
  140. data/public/amber/examples/twitterwall/index.html +35 -0
  141. data/public/amber/examples/twitterwall/js/TwitterWall.deploy.js +116 -0
  142. data/public/amber/examples/twitterwall/js/TwitterWall.js +146 -0
  143. data/public/amber/examples/twitterwall/st/TwitterWall.st +91 -0
  144. data/public/amber/examples/webos/README +11 -0
  145. data/public/amber/examples/webos/eris/DuckQwaq.wav +0 -0
  146. data/public/amber/examples/webos/eris/EnyoAmber.st +36 -0
  147. data/public/amber/examples/webos/eris/Eris.css +0 -0
  148. data/public/amber/examples/webos/eris/Eris.st +86 -0
  149. data/public/amber/examples/webos/eris/Makefile +37 -0
  150. data/public/amber/examples/webos/eris/README +3 -0
  151. data/public/amber/examples/webos/eris/appinfo.json +10 -0
  152. data/public/amber/examples/webos/eris/depends.js +4 -0
  153. data/public/amber/examples/webos/eris/index.html +12 -0
  154. data/public/amber/examples/webos/helloamber/EnyoAmber.st +36 -0
  155. data/public/amber/examples/webos/helloamber/HelloAmber.st +86 -0
  156. data/public/amber/examples/webos/helloamber/Makefile +38 -0
  157. data/public/amber/examples/webos/helloamber/README +5 -0
  158. data/public/amber/examples/webos/helloamber/appinfo.json +10 -0
  159. data/public/amber/examples/webos/helloamber/depends.js +3 -0
  160. data/public/amber/examples/webos/helloamber/index.html +12 -0
  161. data/public/amber/favicon.ico +0 -0
  162. data/public/amber/images/amber.png +0 -0
  163. data/public/amber/images/amber.svg +706 -0
  164. data/public/amber/images/amber_small.png +0 -0
  165. data/public/amber/images/off.amber.png +0 -0
  166. data/public/amber/images/off.png +0 -0
  167. data/public/amber/images/offHover.amber.png +0 -0
  168. data/public/amber/images/offHover.png +0 -0
  169. data/public/amber/images/presentation.png +0 -0
  170. data/public/amber/images/profstef.png +0 -0
  171. data/public/amber/images/sprite.amber.png +0 -0
  172. data/public/amber/images/sprite.png +0 -0
  173. data/public/amber/images/tinylogo.amber.png +0 -0
  174. data/public/amber/images/tinylogo.png +0 -0
  175. data/public/amber/images/twitterwall.png +0 -0
  176. data/public/amber/index.html +55 -0
  177. data/public/amber/js/Additional-Examples.deploy.js +15 -0
  178. data/public/amber/js/Additional-Examples.js +21 -0
  179. data/public/amber/js/Benchfib.deploy.js +132 -0
  180. data/public/amber/js/Benchfib.js +167 -0
  181. data/public/amber/js/Canvas.deploy.js +2446 -0
  182. data/public/amber/js/Canvas.js +3547 -0
  183. data/public/amber/js/Compiler-Tests.deploy.js +97 -0
  184. data/public/amber/js/Compiler-Tests.js +137 -0
  185. data/public/amber/js/Compiler.deploy.js +1877 -0
  186. data/public/amber/js/Compiler.js +2622 -0
  187. data/public/amber/js/Documentation.deploy.js +961 -0
  188. data/public/amber/js/Documentation.js +1376 -0
  189. data/public/amber/js/Examples.deploy.js +53 -0
  190. data/public/amber/js/Examples.js +73 -0
  191. data/public/amber/js/IDE.deploy.js +3557 -0
  192. data/public/amber/js/IDE.js +5002 -0
  193. data/public/amber/js/Kernel-Announcements.deploy.js +107 -0
  194. data/public/amber/js/Kernel-Announcements.js +152 -0
  195. data/public/amber/js/Kernel-Classes.deploy.js +774 -0
  196. data/public/amber/js/Kernel-Classes.js +1095 -0
  197. data/public/amber/js/Kernel-Collections.deploy.js +3121 -0
  198. data/public/amber/js/Kernel-Collections.js +4427 -0
  199. data/public/amber/js/Kernel-Exceptions.deploy.js +244 -0
  200. data/public/amber/js/Kernel-Exceptions.js +349 -0
  201. data/public/amber/js/Kernel-Methods.deploy.js +573 -0
  202. data/public/amber/js/Kernel-Methods.js +807 -0
  203. data/public/amber/js/Kernel-Objects.deploy.js +2877 -0
  204. data/public/amber/js/Kernel-Objects.js +4107 -0
  205. data/public/amber/js/Kernel-Tests.deploy.js +1513 -0
  206. data/public/amber/js/Kernel-Tests.js +2053 -0
  207. data/public/amber/js/Kernel-Transcript.deploy.js +142 -0
  208. data/public/amber/js/Kernel-Transcript.js +202 -0
  209. data/public/amber/js/Maglev-Core.deploy.js +2967 -0
  210. data/public/amber/js/Maglev-Core.js +4202 -0
  211. data/public/amber/js/Maglev-Database-Explorer.deploy.js +4426 -0
  212. data/public/amber/js/Maglev-Database-Explorer.js +6162 -0
  213. data/public/amber/js/Maglev-Vendor.deploy.js +350 -0
  214. data/public/amber/js/Maglev-Vendor.js +465 -0
  215. data/public/amber/js/README.md +5 -0
  216. data/public/amber/js/SUnit.deploy.js +351 -0
  217. data/public/amber/js/SUnit.js +501 -0
  218. data/public/amber/js/amber.js +273 -0
  219. data/public/amber/js/boot.js +602 -0
  220. data/public/amber/js/compat.js +22 -0
  221. data/public/amber/js/init.js +9 -0
  222. data/public/amber/js/lib/CodeMirror/LICENSE +19 -0
  223. data/public/amber/js/lib/CodeMirror/active-line.js +39 -0
  224. data/public/amber/js/lib/CodeMirror/amber.css +21 -0
  225. data/public/amber/js/lib/CodeMirror/codemirror.css +67 -0
  226. data/public/amber/js/lib/CodeMirror/codemirror.js +2144 -0
  227. data/public/amber/js/lib/CodeMirror/smalltalk.js +134 -0
  228. data/public/amber/js/lib/jQuery/jquery-1.4.4.min.js +167 -0
  229. data/public/amber/js/lib/jQuery/jquery-1.6.4.min.js +4 -0
  230. data/public/amber/js/lib/jQuery/jquery-ui-1.8.16.custom.min.js +791 -0
  231. data/public/amber/js/lib/jQuery/jquery.textarea.js +267 -0
  232. data/public/amber/js/lib/peg-0.6.2.min.js +2 -0
  233. data/public/amber/js/lib/showdown.js +419 -0
  234. data/public/amber/js/parser.js +4222 -0
  235. data/public/amber/js/parser.pegjs +223 -0
  236. data/public/amber/learn.html +40 -0
  237. data/public/amber/repl/Makefile +8 -0
  238. data/public/amber/repl/REPL.js +124 -0
  239. data/public/amber/repl/REPL.st +56 -0
  240. data/public/amber/repl/amber.js +18085 -0
  241. data/public/amber/server/FileServer.st +576 -0
  242. data/public/amber/server/Makefile +8 -0
  243. data/public/amber/server/server.js +13049 -0
  244. data/public/amber/st/Benchfib.st +124 -0
  245. data/public/amber/st/Canvas.st +968 -0
  246. data/public/amber/st/Compiler-Tests.st +471 -0
  247. data/public/amber/st/Compiler.st +1445 -0
  248. data/public/amber/st/Documentation.st +758 -0
  249. data/public/amber/st/Examples.st +38 -0
  250. data/public/amber/st/IDE.st +2404 -0
  251. data/public/amber/st/Kernel-Announcements.st +61 -0
  252. data/public/amber/st/Kernel-Classes.st +462 -0
  253. data/public/amber/st/Kernel-Collections.st +1611 -0
  254. data/public/amber/st/Kernel-Exceptions.st +124 -0
  255. data/public/amber/st/Kernel-Methods.st +291 -0
  256. data/public/amber/st/Kernel-Objects.st +1587 -0
  257. data/public/amber/st/Kernel-Tests.st +953 -0
  258. data/public/amber/st/Kernel-Transcript.st +70 -0
  259. data/public/amber/st/Maglev-Core.st +1659 -0
  260. data/public/amber/st/Maglev-Database-Explorer.st +3085 -0
  261. data/public/amber/st/Maglev-Vendor.st +213 -0
  262. data/public/amber/st/Makefile +104 -0
  263. data/public/amber/st/README.md +4 -0
  264. data/public/amber/st/SUnit.st +172 -0
  265. data/public/css/bootstrap-combined.no-icons.min.css +731 -0
  266. data/public/css/bootstrap.css +6811 -0
  267. data/public/css/jquery-ui.min.css +5 -0
  268. data/public/css/smalltalk_code.css +42 -0
  269. data/public/css/style.css +209 -0
  270. data/public/images/maglev-logo.gif +0 -0
  271. data/public/images/rails_tiny.png +0 -0
  272. data/public/images/ruby.png +0 -0
  273. data/public/images/ruby_smalltalk_bridge.png +0 -0
  274. data/public/images/smalltalk.png +0 -0
  275. data/public/libs/bootstrap.min.js +7 -0
  276. data/public/libs/codemirror/CONTRIBUTING.md +72 -0
  277. data/public/libs/codemirror/LICENSE +23 -0
  278. data/public/libs/codemirror/README.md +11 -0
  279. data/public/libs/codemirror/addon/dialog/dialog.css +32 -0
  280. data/public/libs/codemirror/addon/dialog/dialog.js +80 -0
  281. data/public/libs/codemirror/addon/display/placeholder.js +54 -0
  282. data/public/libs/codemirror/addon/edit/closebrackets.js +54 -0
  283. data/public/libs/codemirror/addon/edit/closetag.js +86 -0
  284. data/public/libs/codemirror/addon/edit/continuecomment.js +44 -0
  285. data/public/libs/codemirror/addon/edit/continuelist.js +25 -0
  286. data/public/libs/codemirror/addon/edit/matchbrackets.js +82 -0
  287. data/public/libs/codemirror/addon/fold/brace-fold.js +31 -0
  288. data/public/libs/codemirror/addon/fold/foldcode.js +32 -0
  289. data/public/libs/codemirror/addon/fold/indent-fold.js +11 -0
  290. data/public/libs/codemirror/addon/fold/xml-fold.js +64 -0
  291. data/public/libs/codemirror/addon/hint/html-hint.js +582 -0
  292. data/public/libs/codemirror/addon/hint/javascript-hint.js +142 -0
  293. data/public/libs/codemirror/addon/hint/pig-hint.js +117 -0
  294. data/public/libs/codemirror/addon/hint/python-hint.js +93 -0
  295. data/public/libs/codemirror/addon/hint/show-hint.css +38 -0
  296. data/public/libs/codemirror/addon/hint/show-hint.js +180 -0
  297. data/public/libs/codemirror/addon/hint/xml-hint.js +118 -0
  298. data/public/libs/codemirror/addon/lint/javascript-lint.js +127 -0
  299. data/public/libs/codemirror/addon/lint/json-lint.js +14 -0
  300. data/public/libs/codemirror/addon/lint/lint.css +96 -0
  301. data/public/libs/codemirror/addon/lint/lint.js +197 -0
  302. data/public/libs/codemirror/addon/mode/loadmode.js +51 -0
  303. data/public/libs/codemirror/addon/mode/multiplex.js +95 -0
  304. data/public/libs/codemirror/addon/mode/overlay.js +59 -0
  305. data/public/libs/codemirror/addon/runmode/colorize.js +29 -0
  306. data/public/libs/codemirror/addon/runmode/runmode-standalone.js +130 -0
  307. data/public/libs/codemirror/addon/runmode/runmode.js +52 -0
  308. data/public/libs/codemirror/addon/runmode/runmode.node.js +89 -0
  309. data/public/libs/codemirror/addon/search/match-highlighter.js +60 -0
  310. data/public/libs/codemirror/addon/search/search.js +131 -0
  311. data/public/libs/codemirror/addon/search/searchcursor.js +133 -0
  312. data/public/libs/codemirror/addon/selection/active-line.js +39 -0
  313. data/public/libs/codemirror/addon/selection/mark-selection.js +34 -0
  314. data/public/libs/codemirror/bin/compress +91 -0
  315. data/public/libs/codemirror/bin/lint +11 -0
  316. data/public/libs/codemirror/demo/activeline.html +70 -0
  317. data/public/libs/codemirror/demo/bidi.html +61 -0
  318. data/public/libs/codemirror/demo/btree.html +87 -0
  319. data/public/libs/codemirror/demo/buffers.html +98 -0
  320. data/public/libs/codemirror/demo/changemode.html +50 -0
  321. data/public/libs/codemirror/demo/closebrackets.html +63 -0
  322. data/public/libs/codemirror/demo/closetag.html +37 -0
  323. data/public/libs/codemirror/demo/complete.html +70 -0
  324. data/public/libs/codemirror/demo/emacs.html +60 -0
  325. data/public/libs/codemirror/demo/folding.html +69 -0
  326. data/public/libs/codemirror/demo/fullscreen.html +147 -0
  327. data/public/libs/codemirror/demo/html5complete.html +92 -0
  328. data/public/libs/codemirror/demo/indentwrap.html +49 -0
  329. data/public/libs/codemirror/demo/lint.html +90 -0
  330. data/public/libs/codemirror/demo/loadmode.html +40 -0
  331. data/public/libs/codemirror/demo/marker.html +59 -0
  332. data/public/libs/codemirror/demo/markselection.html +36 -0
  333. data/public/libs/codemirror/demo/matchhighlighter.html +38 -0
  334. data/public/libs/codemirror/demo/multiplex.html +60 -0
  335. data/public/libs/codemirror/demo/mustache.html +59 -0
  336. data/public/libs/codemirror/demo/placeholder.html +36 -0
  337. data/public/libs/codemirror/demo/preview.html +76 -0
  338. data/public/libs/codemirror/demo/resize.html +49 -0
  339. data/public/libs/codemirror/demo/runmode.html +50 -0
  340. data/public/libs/codemirror/demo/search.html +85 -0
  341. data/public/libs/codemirror/demo/spanaffectswrapping_shim.html +73 -0
  342. data/public/libs/codemirror/demo/theme.html +89 -0
  343. data/public/libs/codemirror/demo/variableheight.html +52 -0
  344. data/public/libs/codemirror/demo/vim.html +65 -0
  345. data/public/libs/codemirror/demo/visibletabs.html +53 -0
  346. data/public/libs/codemirror/demo/widget.html +74 -0
  347. data/public/libs/codemirror/demo/xmlcomplete.html +81 -0
  348. data/public/libs/codemirror/doc/baboon.png +0 -0
  349. data/public/libs/codemirror/doc/baboon_vector.svg +153 -0
  350. data/public/libs/codemirror/doc/compress.html +200 -0
  351. data/public/libs/codemirror/doc/docs.css +167 -0
  352. data/public/libs/codemirror/doc/internals.html +505 -0
  353. data/public/libs/codemirror/doc/manual.html +1897 -0
  354. data/public/libs/codemirror/doc/modes.html +94 -0
  355. data/public/libs/codemirror/doc/oldrelease.html +492 -0
  356. data/public/libs/codemirror/doc/realworld.html +100 -0
  357. data/public/libs/codemirror/doc/reporting.html +60 -0
  358. data/public/libs/codemirror/doc/upgrade_v2.2.html +98 -0
  359. data/public/libs/codemirror/doc/upgrade_v3.html +227 -0
  360. data/public/libs/codemirror/index.html +487 -0
  361. data/public/libs/codemirror/keymap/emacs.js +30 -0
  362. data/public/libs/codemirror/keymap/vim.js +3044 -0
  363. data/public/libs/codemirror/lib/codemirror.css +253 -0
  364. data/public/libs/codemirror/lib/codemirror.js +5585 -0
  365. data/public/libs/codemirror/mode/apl/apl.js +160 -0
  366. data/public/libs/codemirror/mode/apl/index.html +61 -0
  367. data/public/libs/codemirror/mode/asterisk/asterisk.js +183 -0
  368. data/public/libs/codemirror/mode/asterisk/index.html +142 -0
  369. data/public/libs/codemirror/mode/clike/clike.js +302 -0
  370. data/public/libs/codemirror/mode/clike/index.html +103 -0
  371. data/public/libs/codemirror/mode/clike/scala.html +767 -0
  372. data/public/libs/codemirror/mode/clojure/clojure.js +222 -0
  373. data/public/libs/codemirror/mode/clojure/index.html +76 -0
  374. data/public/libs/codemirror/mode/coffeescript/LICENSE +22 -0
  375. data/public/libs/codemirror/mode/coffeescript/coffeescript.js +346 -0
  376. data/public/libs/codemirror/mode/coffeescript/index.html +728 -0
  377. data/public/libs/codemirror/mode/commonlisp/commonlisp.js +101 -0
  378. data/public/libs/codemirror/mode/commonlisp/index.html +165 -0
  379. data/public/libs/codemirror/mode/css/css.js +567 -0
  380. data/public/libs/codemirror/mode/css/index.html +58 -0
  381. data/public/libs/codemirror/mode/css/scss.html +145 -0
  382. data/public/libs/codemirror/mode/css/scss_test.js +80 -0
  383. data/public/libs/codemirror/mode/css/test.js +113 -0
  384. data/public/libs/codemirror/mode/d/d.js +205 -0
  385. data/public/libs/codemirror/mode/d/index.html +262 -0
  386. data/public/libs/codemirror/mode/diff/diff.js +32 -0
  387. data/public/libs/codemirror/mode/diff/index.html +105 -0
  388. data/public/libs/codemirror/mode/ecl/ecl.js +192 -0
  389. data/public/libs/codemirror/mode/ecl/index.html +39 -0
  390. data/public/libs/codemirror/mode/erlang/erlang.js +463 -0
  391. data/public/libs/codemirror/mode/erlang/index.html +64 -0
  392. data/public/libs/codemirror/mode/gas/gas.js +326 -0
  393. data/public/libs/codemirror/mode/gas/index.html +57 -0
  394. data/public/libs/codemirror/mode/gfm/gfm.js +96 -0
  395. data/public/libs/codemirror/mode/gfm/index.html +74 -0
  396. data/public/libs/codemirror/mode/gfm/test.js +112 -0
  397. data/public/libs/codemirror/mode/go/go.js +165 -0
  398. data/public/libs/codemirror/mode/go/index.html +74 -0
  399. data/public/libs/codemirror/mode/groovy/groovy.js +210 -0
  400. data/public/libs/codemirror/mode/groovy/index.html +73 -0
  401. data/public/libs/codemirror/mode/haskell/haskell.js +242 -0
  402. data/public/libs/codemirror/mode/haskell/index.html +62 -0
  403. data/public/libs/codemirror/mode/haxe/haxe.js +429 -0
  404. data/public/libs/codemirror/mode/haxe/index.html +90 -0
  405. data/public/libs/codemirror/mode/htmlembedded/htmlembedded.js +73 -0
  406. data/public/libs/codemirror/mode/htmlembedded/index.html +49 -0
  407. data/public/libs/codemirror/mode/htmlmixed/htmlmixed.js +104 -0
  408. data/public/libs/codemirror/mode/htmlmixed/index.html +73 -0
  409. data/public/libs/codemirror/mode/http/http.js +98 -0
  410. data/public/libs/codemirror/mode/http/index.html +32 -0
  411. data/public/libs/codemirror/mode/javascript/index.html +92 -0
  412. data/public/libs/codemirror/mode/javascript/javascript.js +467 -0
  413. data/public/libs/codemirror/mode/javascript/typescript.html +48 -0
  414. data/public/libs/codemirror/mode/jinja2/index.html +38 -0
  415. data/public/libs/codemirror/mode/jinja2/jinja2.js +42 -0
  416. data/public/libs/codemirror/mode/less/index.html +741 -0
  417. data/public/libs/codemirror/mode/less/less.js +266 -0
  418. data/public/libs/codemirror/mode/livescript/LICENSE +23 -0
  419. data/public/libs/codemirror/mode/livescript/index.html +446 -0
  420. data/public/libs/codemirror/mode/livescript/livescript.js +267 -0
  421. data/public/libs/codemirror/mode/livescript/livescript.ls +266 -0
  422. data/public/libs/codemirror/mode/lua/index.html +74 -0
  423. data/public/libs/codemirror/mode/lua/lua.js +140 -0
  424. data/public/libs/codemirror/mode/markdown/index.html +344 -0
  425. data/public/libs/codemirror/mode/markdown/markdown.js +526 -0
  426. data/public/libs/codemirror/mode/markdown/test.js +636 -0
  427. data/public/libs/codemirror/mode/meta.js +75 -0
  428. data/public/libs/codemirror/mode/mirc/index.html +149 -0
  429. data/public/libs/codemirror/mode/mirc/mirc.js +177 -0
  430. data/public/libs/codemirror/mode/ntriples/index.html +33 -0
  431. data/public/libs/codemirror/mode/ntriples/ntriples.js +170 -0
  432. data/public/libs/codemirror/mode/ocaml/index.html +131 -0
  433. data/public/libs/codemirror/mode/ocaml/ocaml.js +113 -0
  434. data/public/libs/codemirror/mode/pascal/LICENSE +7 -0
  435. data/public/libs/codemirror/mode/pascal/index.html +48 -0
  436. data/public/libs/codemirror/mode/pascal/pascal.js +94 -0
  437. data/public/libs/codemirror/mode/perl/LICENSE +19 -0
  438. data/public/libs/codemirror/mode/perl/index.html +62 -0
  439. data/public/libs/codemirror/mode/perl/perl.js +816 -0
  440. data/public/libs/codemirror/mode/php/index.html +51 -0
  441. data/public/libs/codemirror/mode/php/php.js +129 -0
  442. data/public/libs/codemirror/mode/pig/index.html +42 -0
  443. data/public/libs/codemirror/mode/pig/pig.js +171 -0
  444. data/public/libs/codemirror/mode/properties/index.html +41 -0
  445. data/public/libs/codemirror/mode/properties/properties.js +63 -0
  446. data/public/libs/codemirror/mode/python/LICENSE.txt +21 -0
  447. data/public/libs/codemirror/mode/python/index.html +135 -0
  448. data/public/libs/codemirror/mode/python/python.js +340 -0
  449. data/public/libs/codemirror/mode/q/index.html +131 -0
  450. data/public/libs/codemirror/mode/q/q.js +124 -0
  451. data/public/libs/codemirror/mode/r/LICENSE +24 -0
  452. data/public/libs/codemirror/mode/r/index.html +74 -0
  453. data/public/libs/codemirror/mode/r/r.js +141 -0
  454. data/public/libs/codemirror/mode/rpm/changes/changes.js +19 -0
  455. data/public/libs/codemirror/mode/rpm/changes/index.html +53 -0
  456. data/public/libs/codemirror/mode/rpm/spec/index.html +99 -0
  457. data/public/libs/codemirror/mode/rpm/spec/spec.css +5 -0
  458. data/public/libs/codemirror/mode/rpm/spec/spec.js +66 -0
  459. data/public/libs/codemirror/mode/rst/LICENSE.txt +21 -0
  460. data/public/libs/codemirror/mode/rst/index.html +524 -0
  461. data/public/libs/codemirror/mode/rst/rst.js +550 -0
  462. data/public/libs/codemirror/mode/ruby/LICENSE +24 -0
  463. data/public/libs/codemirror/mode/ruby/index.html +173 -0
  464. data/public/libs/codemirror/mode/ruby/ruby.js +197 -0
  465. data/public/libs/codemirror/mode/rust/index.html +48 -0
  466. data/public/libs/codemirror/mode/rust/rust.js +432 -0
  467. data/public/libs/codemirror/mode/sass/index.html +54 -0
  468. data/public/libs/codemirror/mode/sass/sass.js +349 -0
  469. data/public/libs/codemirror/mode/scheme/index.html +65 -0
  470. data/public/libs/codemirror/mode/scheme/scheme.js +230 -0
  471. data/public/libs/codemirror/mode/shell/index.html +51 -0
  472. data/public/libs/codemirror/mode/shell/shell.js +118 -0
  473. data/public/libs/codemirror/mode/sieve/LICENSE +19 -0
  474. data/public/libs/codemirror/mode/sieve/index.html +81 -0
  475. data/public/libs/codemirror/mode/sieve/sieve.js +183 -0
  476. data/public/libs/codemirror/mode/smalltalk/index.html +57 -0
  477. data/public/libs/codemirror/mode/smalltalk/smalltalk.js +141 -0
  478. data/public/libs/codemirror/mode/smarty/index.html +83 -0
  479. data/public/libs/codemirror/mode/smarty/smarty.js +148 -0
  480. data/public/libs/codemirror/mode/sparql/index.html +42 -0
  481. data/public/libs/codemirror/mode/sparql/sparql.js +143 -0
  482. data/public/libs/codemirror/mode/sql/index.html +68 -0
  483. data/public/libs/codemirror/mode/sql/sql.js +268 -0
  484. data/public/libs/codemirror/mode/stex/index.html +98 -0
  485. data/public/libs/codemirror/mode/stex/stex.js +246 -0
  486. data/public/libs/codemirror/mode/stex/test.js +117 -0
  487. data/public/libs/codemirror/mode/tcl/index.html +129 -0
  488. data/public/libs/codemirror/mode/tcl/tcl.js +131 -0
  489. data/public/libs/codemirror/mode/tiddlywiki/index.html +142 -0
  490. data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  491. data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.js +353 -0
  492. data/public/libs/codemirror/mode/tiki/index.html +81 -0
  493. data/public/libs/codemirror/mode/tiki/tiki.css +26 -0
  494. data/public/libs/codemirror/mode/tiki/tiki.js +308 -0
  495. data/public/libs/codemirror/mode/turtle/index.html +39 -0
  496. data/public/libs/codemirror/mode/turtle/turtle.js +145 -0
  497. data/public/libs/codemirror/mode/vb/LICENSE.txt +21 -0
  498. data/public/libs/codemirror/mode/vb/index.html +88 -0
  499. data/public/libs/codemirror/mode/vb/vb.js +259 -0
  500. data/public/libs/codemirror/mode/vbscript/index.html +42 -0
  501. data/public/libs/codemirror/mode/vbscript/vbscript.js +26 -0
  502. data/public/libs/codemirror/mode/velocity/index.html +103 -0
  503. data/public/libs/codemirror/mode/velocity/velocity.js +144 -0
  504. data/public/libs/codemirror/mode/verilog/index.html +121 -0
  505. data/public/libs/codemirror/mode/verilog/verilog.js +182 -0
  506. data/public/libs/codemirror/mode/xml/index.html +45 -0
  507. data/public/libs/codemirror/mode/xml/xml.js +328 -0
  508. data/public/libs/codemirror/mode/xquery/LICENSE +20 -0
  509. data/public/libs/codemirror/mode/xquery/index.html +221 -0
  510. data/public/libs/codemirror/mode/xquery/test.js +64 -0
  511. data/public/libs/codemirror/mode/xquery/xquery.js +450 -0
  512. data/public/libs/codemirror/mode/yaml/index.html +68 -0
  513. data/public/libs/codemirror/mode/yaml/yaml.js +95 -0
  514. data/public/libs/codemirror/mode/z80/index.html +39 -0
  515. data/public/libs/codemirror/mode/z80/z80.js +85 -0
  516. data/public/libs/codemirror/package.json +21 -0
  517. data/public/libs/codemirror/test/doc_test.js +329 -0
  518. data/public/libs/codemirror/test/driver.js +138 -0
  519. data/public/libs/codemirror/test/index.html +182 -0
  520. data/public/libs/codemirror/test/lint/acorn.js +1593 -0
  521. data/public/libs/codemirror/test/lint/lint.js +112 -0
  522. data/public/libs/codemirror/test/lint/parse-js.js +1372 -0
  523. data/public/libs/codemirror/test/lint/walk.js +216 -0
  524. data/public/libs/codemirror/test/mode_test.css +10 -0
  525. data/public/libs/codemirror/test/mode_test.js +192 -0
  526. data/public/libs/codemirror/test/phantom_driver.js +31 -0
  527. data/public/libs/codemirror/test/run.js +33 -0
  528. data/public/libs/codemirror/test/test.js +1400 -0
  529. data/public/libs/codemirror/test/vim_test.js +1688 -0
  530. data/public/libs/codemirror/theme/ambiance-mobile.css +5 -0
  531. data/public/libs/codemirror/theme/ambiance.css +75 -0
  532. data/public/libs/codemirror/theme/blackboard.css +25 -0
  533. data/public/libs/codemirror/theme/cobalt.css +18 -0
  534. data/public/libs/codemirror/theme/eclipse.css +25 -0
  535. data/public/libs/codemirror/theme/elegant.css +10 -0
  536. data/public/libs/codemirror/theme/erlang-dark.css +21 -0
  537. data/public/libs/codemirror/theme/lesser-dark.css +44 -0
  538. data/public/libs/codemirror/theme/midnight.css +52 -0
  539. data/public/libs/codemirror/theme/monokai.css +28 -0
  540. data/public/libs/codemirror/theme/neat.css +9 -0
  541. data/public/libs/codemirror/theme/night.css +21 -0
  542. data/public/libs/codemirror/theme/rubyblue.css +21 -0
  543. data/public/libs/codemirror/theme/solarized.css +207 -0
  544. data/public/libs/codemirror/theme/twilight.css +26 -0
  545. data/public/libs/codemirror/theme/vibrant-ink.css +27 -0
  546. data/public/libs/codemirror/theme/xq-dark.css +46 -0
  547. data/public/libs/codemirror/theme/xq-light.css +43 -0
  548. data/public/libs/font-awesome/css/font-awesome-ie7.css +983 -0
  549. data/public/libs/font-awesome/css/font-awesome-ie7.min.css +24 -0
  550. data/public/libs/font-awesome/css/font-awesome.css +1268 -0
  551. data/public/libs/font-awesome/css/font-awesome.min.css +24 -0
  552. data/public/libs/font-awesome/font/FontAwesome.otf +0 -0
  553. data/public/libs/font-awesome/font/fontawesome-webfont.eot +0 -0
  554. data/public/libs/font-awesome/font/fontawesome-webfont.svg +339 -0
  555. data/public/libs/font-awesome/font/fontawesome-webfont.ttf +0 -0
  556. data/public/libs/font-awesome/font/fontawesome-webfont.woff +0 -0
  557. data/public/libs/font-awesome/less/bootstrap.less +78 -0
  558. data/public/libs/font-awesome/less/core.less +132 -0
  559. data/public/libs/font-awesome/less/extras.less +79 -0
  560. data/public/libs/font-awesome/less/font-awesome-ie7.less +413 -0
  561. data/public/libs/font-awesome/less/font-awesome.less +32 -0
  562. data/public/libs/font-awesome/less/icons.less +330 -0
  563. data/public/libs/font-awesome/less/mixins.less +34 -0
  564. data/public/libs/font-awesome/less/path.less +15 -0
  565. data/public/libs/font-awesome/less/variables.less +9 -0
  566. data/public/libs/jquery-1.10.0.min.js +6 -0
  567. data/public/libs/jquery-ui.min.js +12 -0
  568. data/public/libs/jquery.jsPlumb-1.4.0-all.js +9571 -0
  569. data/public/libs/jquery.livequery.js +226 -0
  570. data/public/libs/jsPlumbInitializer.js +72 -0
  571. data/public/libs/jstree/README.txt +10 -0
  572. data/public/libs/jstree/_demo/_dump.sql +20 -0
  573. data/public/libs/jstree/_demo/_inc/__mysql_errors.log +0 -0
  574. data/public/libs/jstree/_demo/_inc/class._database.php +146 -0
  575. data/public/libs/jstree/_demo/_inc/class._database_i.php +152 -0
  576. data/public/libs/jstree/_demo/_inc/class.tree.php +602 -0
  577. data/public/libs/jstree/_demo/_install.txt +6 -0
  578. data/public/libs/jstree/_demo/config.php +14 -0
  579. data/public/libs/jstree/_demo/file.png +0 -0
  580. data/public/libs/jstree/_demo/folder.png +0 -0
  581. data/public/libs/jstree/_demo/index.html +461 -0
  582. data/public/libs/jstree/_demo/root.png +0 -0
  583. data/public/libs/jstree/_demo/server.php +69 -0
  584. data/public/libs/jstree/_docs/!style.css +48 -0
  585. data/public/libs/jstree/_docs/_drive.png +0 -0
  586. data/public/libs/jstree/_docs/_html_data.html +2 -0
  587. data/public/libs/jstree/_docs/_json_data.json +4 -0
  588. data/public/libs/jstree/_docs/_search_data.json +6 -0
  589. data/public/libs/jstree/_docs/_search_result.json +1 -0
  590. data/public/libs/jstree/_docs/_xml_flat.xml +12 -0
  591. data/public/libs/jstree/_docs/_xml_nest.xml +18 -0
  592. data/public/libs/jstree/_docs/checkbox.html +171 -0
  593. data/public/libs/jstree/_docs/contextmenu.html +121 -0
  594. data/public/libs/jstree/_docs/cookies.html +97 -0
  595. data/public/libs/jstree/_docs/core.html +689 -0
  596. data/public/libs/jstree/_docs/crrm.html +316 -0
  597. data/public/libs/jstree/_docs/dnd.html +199 -0
  598. data/public/libs/jstree/_docs/hotkeys.html +82 -0
  599. data/public/libs/jstree/_docs/html_data.html +175 -0
  600. data/public/libs/jstree/_docs/index.html +86 -0
  601. data/public/libs/jstree/_docs/json_data.html +249 -0
  602. data/public/libs/jstree/_docs/languages.html +152 -0
  603. data/public/libs/jstree/_docs/logo.png +0 -0
  604. data/public/libs/jstree/_docs/search.html +153 -0
  605. data/public/libs/jstree/_docs/sort.html +85 -0
  606. data/public/libs/jstree/_docs/syntax/!script.js +2232 -0
  607. data/public/libs/jstree/_docs/syntax/!style.css +511 -0
  608. data/public/libs/jstree/_docs/syntax/clipboard.swf +0 -0
  609. data/public/libs/jstree/_docs/syntax/help.png +0 -0
  610. data/public/libs/jstree/_docs/syntax/magnifier.png +0 -0
  611. data/public/libs/jstree/_docs/syntax/page_white_code.png +0 -0
  612. data/public/libs/jstree/_docs/syntax/page_white_copy.png +0 -0
  613. data/public/libs/jstree/_docs/syntax/printer.png +0 -0
  614. data/public/libs/jstree/_docs/syntax/wrapping.png +0 -0
  615. data/public/libs/jstree/_docs/themeroller.html +107 -0
  616. data/public/libs/jstree/_docs/themes.html +127 -0
  617. data/public/libs/jstree/_docs/types.html +178 -0
  618. data/public/libs/jstree/_docs/ui.html +197 -0
  619. data/public/libs/jstree/_docs/unique.html +85 -0
  620. data/public/libs/jstree/_docs/xml_data.html +218 -0
  621. data/public/libs/jstree/_lib/jquery.cookie.js +96 -0
  622. data/public/libs/jstree/_lib/jquery.hotkeys.js +99 -0
  623. data/public/libs/jstree/_lib/jquery.js +5 -0
  624. data/public/libs/jstree/jquery.jstree.js +4564 -0
  625. data/public/libs/jstree/themes/apple/bg.jpg +0 -0
  626. data/public/libs/jstree/themes/apple/d.png +0 -0
  627. data/public/libs/jstree/themes/apple/dot_for_ie.gif +0 -0
  628. data/public/libs/jstree/themes/apple/style.css +61 -0
  629. data/public/libs/jstree/themes/apple/throbber.gif +0 -0
  630. data/public/libs/jstree/themes/classic/d.gif +0 -0
  631. data/public/libs/jstree/themes/classic/d.png +0 -0
  632. data/public/libs/jstree/themes/classic/dot_for_ie.gif +0 -0
  633. data/public/libs/jstree/themes/classic/style.css +77 -0
  634. data/public/libs/jstree/themes/classic/throbber.gif +0 -0
  635. data/public/libs/jstree/themes/default-rtl/d.gif +0 -0
  636. data/public/libs/jstree/themes/default-rtl/d.png +0 -0
  637. data/public/libs/jstree/themes/default-rtl/dots.gif +0 -0
  638. data/public/libs/jstree/themes/default-rtl/style.css +84 -0
  639. data/public/libs/jstree/themes/default-rtl/throbber.gif +0 -0
  640. data/public/libs/jstree/themes/default/d.gif +0 -0
  641. data/public/libs/jstree/themes/default/d.png +0 -0
  642. data/public/libs/jstree/themes/default/style.css +74 -0
  643. data/public/libs/jstree/themes/default/throbber.gif +0 -0
  644. data/test/dummy/README.rdoc +261 -0
  645. data/test/dummy/Rakefile +7 -0
  646. data/test/dummy/app/assets/javascripts/application.js +15 -0
  647. data/test/dummy/app/assets/javascripts/demo_app.js +2 -0
  648. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  649. data/test/dummy/app/assets/stylesheets/demo_app.css +4 -0
  650. data/test/dummy/app/controllers/application_controller.rb +3 -0
  651. data/test/dummy/app/controllers/demo_app_controller.rb +6 -0
  652. data/test/dummy/app/helpers/application_helper.rb +2 -0
  653. data/test/dummy/app/helpers/demo_app_helper.rb +2 -0
  654. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  655. data/test/dummy/config.ru +4 -0
  656. data/test/dummy/config/application.rb +59 -0
  657. data/test/dummy/config/boot.rb +10 -0
  658. data/test/dummy/config/database.yml +25 -0
  659. data/test/dummy/config/environment.rb +5 -0
  660. data/test/dummy/config/environments/development.rb +37 -0
  661. data/test/dummy/config/environments/production.rb +67 -0
  662. data/test/dummy/config/environments/test.rb +37 -0
  663. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  664. data/test/dummy/config/initializers/inflections.rb +15 -0
  665. data/test/dummy/config/initializers/mime_types.rb +5 -0
  666. data/test/dummy/config/initializers/secret_token.rb +7 -0
  667. data/test/dummy/config/initializers/session_store.rb +8 -0
  668. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  669. data/test/dummy/config/locales/en.yml +5 -0
  670. data/test/dummy/config/routes.rb +6 -0
  671. data/test/dummy/db/test.sqlite3 +0 -0
  672. data/test/dummy/log/development.log +17606 -0
  673. data/test/dummy/public/404.html +26 -0
  674. data/test/dummy/public/422.html +26 -0
  675. data/test/dummy/public/500.html +25 -0
  676. data/test/dummy/public/favicon.ico +0 -0
  677. data/test/dummy/script/rails +6 -0
  678. data/test/dummy/test/functional/demo_app_controller_test.rb +7 -0
  679. data/test/dummy/test/unit/helpers/demo_app_helper_test.rb +4 -0
  680. data/test/dummy/tmp/cache/assets/D26/980/sprockets%2Fe04a37a0fa7f26c1183a1a4436e2a9c1 +0 -0
  681. data/test/dummy/tmp/cache/assets/D32/4F0/sprockets%2Fbd5441f3593e4ea157222202f3fddad6 +0 -0
  682. data/test/dummy/tmp/pids/server.pid +1 -0
  683. data/test/functional/maglev_database_explorer/def_controller_test.rb +9 -0
  684. data/test/integration/navigation_test.rb +10 -0
  685. data/test/maglev-database-explorer_test.rb +7 -0
  686. data/test/test_helper.rb +15 -0
  687. data/test/unit/helpers/maglev_database_explorer/def_helper_test.rb +6 -0
  688. metadata +813 -0
@@ -0,0 +1,70 @@
1
+ Smalltalk current createPackage: 'Kernel-Transcript' properties: #{}!
2
+ Object subclass: #ConsoleTranscript
3
+ instanceVariableNames: 'textarea'
4
+ package: 'Kernel-Transcript'!
5
+
6
+ !ConsoleTranscript methodsFor: 'actions'!
7
+
8
+ open
9
+ ! !
10
+
11
+ !ConsoleTranscript methodsFor: 'printing'!
12
+
13
+ clear
14
+ "no op"
15
+ !
16
+
17
+ cr
18
+ "no op"
19
+ !
20
+
21
+ show: anObject
22
+ | string |
23
+ string := anObject asString.
24
+ <console.log(String(string))>
25
+ ! !
26
+
27
+ !ConsoleTranscript class methodsFor: 'initialization'!
28
+
29
+ initialize
30
+ Transcript register: self new
31
+ ! !
32
+
33
+ Object subclass: #Transcript
34
+ instanceVariableNames: 'textarea'
35
+ package: 'Kernel-Transcript'!
36
+
37
+ Transcript class instanceVariableNames: 'current'!
38
+
39
+ !Transcript class methodsFor: 'instance creation'!
40
+
41
+ current
42
+ ^current
43
+ !
44
+
45
+ new
46
+ self shouldNotImplement
47
+ !
48
+
49
+ open
50
+ self current open
51
+ !
52
+
53
+ register: aTranscript
54
+ current := aTranscript
55
+ ! !
56
+
57
+ !Transcript class methodsFor: 'printing'!
58
+
59
+ clear
60
+ self current clear
61
+ !
62
+
63
+ cr
64
+ self current show: String cr
65
+ !
66
+
67
+ show: anObject
68
+ self current show: anObject
69
+ ! !
70
+
@@ -0,0 +1,1659 @@
1
+ Smalltalk current createPackage: 'Maglev-Core' properties: #{}!
2
+ Object subclass: #Maglev
3
+ instanceVariableNames: 'objectSpace windows bottomNavHtml'
4
+ package: 'Maglev-Core'!
5
+
6
+ !Maglev methodsFor: 'accessing'!
7
+
8
+ objectSpace
9
+ objectSpace ifNil: [objectSpace := MaglevObjectSpace instance].
10
+ ^ objectSpace
11
+ ! !
12
+
13
+ !Maglev methodsFor: 'initializing'!
14
+
15
+ initialize
16
+ windows := OrderedCollection new.
17
+ bottomNavHtml := HTMLCanvas onJQuery: '#windows-navigation' asJQuery.
18
+ ! !
19
+
20
+ !Maglev methodsFor: 'interactions'!
21
+
22
+ addWindow: aWindow
23
+ self renderNavigationItemFor: aWindow.
24
+ windows add: aWindow.
25
+ self showConnectionsFor: aWindow.
26
+ !
27
+
28
+ evaluateWithoutUpdate: code language: aString with: additionalParams withCallback: aBlock
29
+ |params|
30
+ params := Dictionary new
31
+ at: 'language' put: aString;
32
+ at: 'code' put: code;
33
+ addAll: additionalParams;
34
+ yourself.
35
+ MaglevAjax
36
+ ajax: 'object/evaluate/20'
37
+ data: params
38
+ withCallback: [:obj | |parsedObj|
39
+ parsedObj := MaglevObject newObjectWithoutUpdate: obj.
40
+ aBlock value: parsedObj isException not value: parsedObj].
41
+ !
42
+
43
+ findClassNamesMatching: aSelector with: aBlock
44
+ aSelector isString ifFalse:[self error: 'The selector should be a string'].
45
+
46
+ MaglevNilClass instance
47
+ evaluateWithoutUpdate: '|organizer| organizer := ClassOrganizer new. organizer findClassNamesMatching:''', aSelector, '''.'
48
+ language: 'smalltalk'
49
+ withCallback: aBlock.
50
+ !
51
+
52
+ findMethodNamesMatching: aSelector with: aBlock
53
+ aSelector isString ifFalse:[self error: 'The selector should be a string'].
54
+
55
+ MaglevNilClass instance
56
+ evaluateWithoutUpdate: '|organizer| organizer := ClassOrganizer new. organizer findMethodNamesMatching:''', aSelector, '''.'
57
+ language: 'smalltalk'
58
+ withCallback: aBlock.
59
+ !
60
+
61
+ implementersOf: aSelector withCallback: aBlock
62
+ aSelector isString ifFalse:[self error: 'The selector should be a string'].
63
+ MaglevNilClass instance
64
+ evaluateWithoutUpdate: '|organizer dict ruby smalltalk| organizer := ClassOrganizer new. dict := Array new. smalltalk := organizer implementorsOf:''', aSelector, ''' asSymbol. smalltalk do:[:cls| dict addLast:{cls. 0.}]. ruby := organizer rubyImplementorsOf:''', aSelector, ''' asSymbol. ruby do:[:cls| dict addLast:{cls. 1.}]. 1 to: dict size do:[:i||cls| cls:= (dict at: i) at:1. (cls class == GsNMethod) ifTrue:[(dict at:i) at:1 put: cls inClass]]. dict'
65
+ language: 'smalltalk'
66
+ withCallback: aBlock.
67
+ !
68
+
69
+ removeWindow: aWindow
70
+ aWindow navigationItem asJQuery remove.
71
+ windows remove: aWindow.
72
+ ! !
73
+
74
+ !Maglev methodsFor: 'rendering'!
75
+
76
+ renderNavigationItemFor: aWindow
77
+ |navItem|
78
+ navItem := bottomNavHtml li
79
+ with: [
80
+ bottomNavHtml a
81
+ class: 'btn btn-info window-navigation-item';
82
+ style: 'padding: 4px 2px 2px 4px; margin-top: 5px;';
83
+ onClick: [aWindow moveToFront];
84
+ with: [aWindow renderNavigationOn: bottomNavHtml]].
85
+ aWindow navigationItem: navItem.
86
+ !
87
+
88
+ showConnectionsFor: aWindow
89
+ windows do: [:window |
90
+ window checkAddConnectionTo: aWindow.
91
+ aWindow checkAddConnectionTo: window].
92
+ !
93
+
94
+ showObjectWindow: oop
95
+ |window|
96
+ (self objectSpace hasLoadedOop: oop)
97
+ ifFalse: [^ self showReloadObjectWindow: oop].
98
+ window := (self objectSpace at: oop) windowViewComponent.
99
+ window appendToWorkspace.
100
+ ^ window
101
+ !
102
+
103
+ showReloadObjectWindow: oop
104
+ |window|
105
+ window := MaglevWaitingWindow new.
106
+ window appendToWorkspace.
107
+ self objectSpace
108
+ reloadObject: oop
109
+ withCallback: [:object | |objWindow|
110
+ objWindow := object windowViewComponentReplace: window.
111
+ objWindow renderReplace].
112
+ ^ window
113
+ ! !
114
+
115
+ Maglev class instanceVariableNames: 'instance defaultWorkspaceId persistentRootId maglevSystemId evalObjectId'!
116
+
117
+ !Maglev class methodsFor: 'accessing'!
118
+
119
+ defaultWorkspaceId
120
+ ^ defaultWorkspaceId
121
+ !
122
+
123
+ defaultWorkspaceId: anInteger
124
+ "Called from JavaScript initializer."
125
+ defaultWorkspaceId := anInteger.
126
+ !
127
+
128
+ evalObjectId
129
+ ^ evalObjectId
130
+ !
131
+
132
+ evalObjectId: anInteger
133
+ evalObjectId := anInteger.
134
+ !
135
+
136
+ maglevSystemId
137
+ ^ maglevSystemId
138
+ !
139
+
140
+ maglevSystemId: anInteger
141
+ "Called from JavaScript initializer."
142
+ maglevSystemId := anInteger.
143
+ !
144
+
145
+ persistentRootId
146
+ ^ persistentRootId
147
+ !
148
+
149
+ persistentRootId: anInteger
150
+ "Called from JavaScript initializer."
151
+ persistentRootId := anInteger.
152
+ ! !
153
+
154
+ !Maglev class methodsFor: 'initializing'!
155
+
156
+ openWindow: anInteger
157
+ Maglev instance showObjectWindow: anInteger.
158
+ !
159
+
160
+ ready
161
+ self openWindow: self defaultWorkspaceId.
162
+ self openWindow: self persistentRootId.
163
+ self openWindow: self maglevSystemId.
164
+ MaglevObjectSpace instance
165
+ evalObject: (MaglevObjectSpace instance reloadObject: self evalObjectId).
166
+ MaglevHaltedThreadListener start.
167
+ MaglevWebBrowserWindow showNew.
168
+ ! !
169
+
170
+ !Maglev class methodsFor: 'singleton'!
171
+
172
+ instance
173
+ instance ifNil: [instance := Maglev new].
174
+ ^ instance
175
+ ! !
176
+
177
+ Object subclass: #MaglevObject
178
+ instanceVariableNames: 'oop instVars instVarsSize virtualClassObject classObject inspection isLoaded isException windows customTabs'
179
+ package: 'Maglev-Core'!
180
+
181
+ !MaglevObject methodsFor: 'accessing'!
182
+
183
+ classObject
184
+ ^ classObject
185
+ !
186
+
187
+ customTabs
188
+ ^ customTabs
189
+ !
190
+
191
+ hasInstVar: instVarName
192
+ self instVarsDo: [:ivName :ivValue |
193
+ ivName = instVarName ifTrue: [^ true]].
194
+ ^ false
195
+ !
196
+
197
+ inspection
198
+ ^ inspection
199
+ !
200
+
201
+ instVarAt: aString
202
+ instVars keysAndValuesDo: [:index :iv |
203
+ iv key string = aString asString
204
+ ifTrue: [^ iv value]].
205
+ self error: 'instVar not found in forwarder object: ', aString.
206
+ !
207
+
208
+ instVarAt: aString ifAbsent: anObject
209
+ instVars keysAndValuesDo: [:index :iv |
210
+ iv key string = aString asString
211
+ ifTrue: [^ iv value]].
212
+ ^ anObject
213
+ !
214
+
215
+ instVars
216
+ ^ instVars
217
+ !
218
+
219
+ instVarsDo: aBlock
220
+ instVars keysAndValuesDo: [:index :iv | aBlock value: iv key value: iv value].
221
+ !
222
+
223
+ instVarsSize
224
+ ^ instVarsSize
225
+ !
226
+
227
+ isException
228
+ ^ isException
229
+ !
230
+
231
+ oop
232
+ ^ oop
233
+ !
234
+
235
+ shortInspection
236
+ inspection size > 10
237
+ ifTrue: [^ (inspection copyFrom: 1 to: 10), '...']
238
+ ifFalse: [^ inspection].
239
+ !
240
+
241
+ virtualClassObject
242
+ ^ virtualClassObject
243
+ !
244
+
245
+ windows
246
+ windows ifNil: [windows := OrderedCollection new].
247
+ ^ windows
248
+ ! !
249
+
250
+ !MaglevObject methodsFor: 'comparing'!
251
+
252
+ = anObject
253
+ ^ self oop = anObject oop
254
+ !
255
+
256
+ == anObject
257
+ ^ self oop == anObject oop
258
+ ! !
259
+
260
+ !MaglevObject methodsFor: 'instance creation'!
261
+
262
+ parseJSON: obj
263
+ isLoaded := true.
264
+ instVars ifNil: [instVars := Dictionary new].
265
+ oop := obj oop.
266
+ isException := obj exception.
267
+ classObject := MaglevObject newObject: obj classObject.
268
+ virtualClassObject := MaglevObject newObject: obj virtualClassObject.
269
+ inspection := obj inspection.
270
+ instVarsSize := obj instVarsSize.
271
+ obj instVars keysAndValuesDo: [:index :assoc | |key value|
272
+ key := MaglevObject newObject: (assoc at: 1).
273
+ value := MaglevObject newObject: (assoc at: 2).
274
+ instVars at: index asNumber put: key -> value].
275
+ customTabs := obj customTabs.
276
+ !
277
+
278
+ parseJSONNotLoaded: obj
279
+ self isLoaded
280
+ ifNil: [isLoaded := false].
281
+ oop := obj oop.
282
+ inspection := obj inspection.
283
+ ! !
284
+
285
+ !MaglevObject methodsFor: 'interactions'!
286
+
287
+ addWindow: aWindow
288
+ self windows add: aWindow.
289
+ Maglev instance addWindow: aWindow.
290
+ ^ aWindow
291
+ !
292
+
293
+ evaluate: code language: aString withCallback: aBlock
294
+ |params|
295
+ params := Dictionary new
296
+ at: 'language' put: aString;
297
+ at: 'code' put: code;
298
+ yourself.
299
+ MaglevAjax
300
+ ajax: 'object/evaluate/', oop asString
301
+ data: params
302
+ withCallback: [:obj | |isException parsedObj|
303
+ isException := obj at: 1.
304
+ parsedObj := MaglevObject newObject: (obj at: 2).
305
+ aBlock value: isException not value: parsedObj].
306
+ !
307
+
308
+ evaluateWithoutUpdate: code language: aString with: additionalParams withCallback: aBlock
309
+ |params|
310
+ params := Dictionary new
311
+ at: 'language' put: aString;
312
+ at: 'code' put: code;
313
+ addAll: additionalParams;
314
+ yourself.
315
+ MaglevAjax
316
+ ajax: 'object/evaluate/', oop asString
317
+ data: params
318
+ withCallback: [:obj | |isException parsedObj|
319
+ isException := obj at: 1.
320
+ parsedObj := MaglevObject newObjectWithoutUpdate: (obj at: 2).
321
+ aBlock value: isException not value: parsedObj].
322
+ !
323
+
324
+ evaluateWithoutUpdate: code language: aString withCallback: aBlock
325
+ |params|
326
+ params := Dictionary new
327
+ at: 'language' put: aString;
328
+ at: 'code' put: code;
329
+ yourself.
330
+ MaglevAjax
331
+ ajax: 'object/evaluate/', oop asString
332
+ data: params
333
+ withCallback: [:obj | |isException parsedObj|
334
+ isException := obj at: 1.
335
+ parsedObj := MaglevObject newObject: (obj at: 2).
336
+ aBlock value: isException not value: parsedObj].
337
+ !
338
+
339
+ fullReloadWithCallback: aBlock
340
+ MaglevObjectSpace instance
341
+ reloadObject: oop withCallback: aBlock.
342
+ !
343
+
344
+ paramsAllElements
345
+ ^ Dictionary new
346
+ at: 'allElements' put: true;
347
+ yourself
348
+ !
349
+
350
+ paramsFullString
351
+ ^ Dictionary new
352
+ at: 'fullString' put: true;
353
+ yourself
354
+ !
355
+
356
+ paramsFullStringAndElements
357
+ ^ Dictionary new
358
+ at: 'allElements' put: true;
359
+ at: 'fullString' put: true;
360
+ yourself
361
+ !
362
+
363
+ paramsThreadFrame
364
+ ^ Dictionary new
365
+ at: 'allElements' put: true;
366
+ at: 'fullString' put: true;
367
+ at: 'fullMethod' put: true;
368
+ at: 'noBehavior' put: true;
369
+ yourself
370
+ !
371
+
372
+ removeWindow: aWindow
373
+ self windows remove: aWindow.
374
+ Maglev instance removeWindow: aWindow.
375
+ ^ aWindow
376
+ ! !
377
+
378
+ !MaglevObject methodsFor: 'reloading'!
379
+
380
+ ensureIsLoaded: collectionName from: from to: to
381
+ |obj params|
382
+ (self isLoaded: collectionName from: from to: to) ifTrue: [^ self].
383
+ params := Dictionary new
384
+ at: 'range_', collectionName asString, '_from' put: from;
385
+ at: 'range_', collectionName asString, '_to' put: to;
386
+ yourself.
387
+ obj := MaglevAjax
388
+ ajax: 'object/index/', self oop
389
+ data: params.
390
+ self parseJSON: obj.
391
+ !
392
+
393
+ ensureIsLoaded: collectionName from: from to: to withCallback: aBlock
394
+ |params|
395
+ (self isLoaded: collectionName from: from to: to) ifTrue: [aBlock value. ^ self].
396
+ params := Dictionary new
397
+ at: 'range_', collectionName asString, '_from' put: from;
398
+ at: 'range_', collectionName asString, '_to' put: to;
399
+ yourself.
400
+ MaglevAjax
401
+ ajax: 'object/index/', self oop
402
+ data: params
403
+ withCallback: [:obj |
404
+ self parseJSON: obj.
405
+ aBlock value].
406
+ ! !
407
+
408
+ !MaglevObject methodsFor: 'rendering'!
409
+
410
+ inlineViewComponent
411
+ ^ self class inlineViewClass basicNew
412
+ object: self;
413
+ initialize;
414
+ yourself
415
+ !
416
+
417
+ inlineViewComponentFull
418
+ ^ self class inlineViewClass basicNew
419
+ fullInspection: true;
420
+ object: self;
421
+ initialize;
422
+ yourself
423
+ !
424
+
425
+ inlineViewComponentNavItem
426
+ ^ self class inlineViewClass basicNew
427
+ object: self;
428
+ isShort: true;
429
+ hasDropDown: false;
430
+ isDraggable: false;
431
+ yourself
432
+ !
433
+
434
+ inlineViewComponentShort
435
+ ^ self class inlineViewClass basicNew
436
+ object: self;
437
+ isShort: true;
438
+ isDraggable: false;
439
+ yourself
440
+ !
441
+
442
+ inlineViewComponentWithDepth: anInteger
443
+ ^ self inlineViewComponent
444
+ depth: anInteger;
445
+ yourself
446
+ !
447
+
448
+ instancesViewComponent
449
+ ^ self class instancesViewClass basicNew
450
+ object: self;
451
+ initialize;
452
+ yourself
453
+ !
454
+
455
+ windowViewComponent
456
+ ^ self class windowViewClass basicNew
457
+ object: self;
458
+ initialize;
459
+ yourself
460
+ !
461
+
462
+ windowViewComponentReplace: aWindow
463
+ ^ self class windowViewClass newReplace: aWindow with: self
464
+ ! !
465
+
466
+ !MaglevObject methodsFor: 'testing'!
467
+
468
+ hasInstVars
469
+ ^ instVars size > 0
470
+ !
471
+
472
+ ifNotMaglevNil: aBlock
473
+ ^ aBlock value
474
+ !
475
+
476
+ isGsNMethod
477
+ ^ false
478
+ !
479
+
480
+ isLoaded
481
+ ^ isLoaded
482
+ !
483
+
484
+ isLoaded: collectionName from: from to: to
485
+ |collection|
486
+ collection := self perform: collectionName.
487
+ (from to: to) do: [:index |
488
+ (collection includesKey: index) ifFalse: [^ false]].
489
+ ^ true
490
+ !
491
+
492
+ isMaglevNil
493
+ ^ false
494
+ ! !
495
+
496
+ MaglevObject class instanceVariableNames: 'basetypes doesUpdateObjectSpace'!
497
+
498
+ !MaglevObject class methodsFor: 'accessing'!
499
+
500
+ basetypes
501
+ ^ basetypes
502
+ !
503
+
504
+ doesUpdateObjectSpace
505
+ doesUpdateObjectSpace ifNil: [doesUpdateObjectSpace := true].
506
+ ^ doesUpdateObjectSpace
507
+ !
508
+
509
+ doesUpdateObjectSpace: aBoolean
510
+ doesUpdateObjectSpace := aBoolean.
511
+ ! !
512
+
513
+ !MaglevObject class methodsFor: 'constants'!
514
+
515
+ basetype
516
+ ^ #object
517
+ !
518
+
519
+ inlineViewClass
520
+ ^ MaglevObjectInline
521
+ !
522
+
523
+ instancesViewClass
524
+ ^ MaglevObjectInstancesView
525
+ !
526
+
527
+ windowViewClass
528
+ ^ MaglevObjectWindow
529
+ ! !
530
+
531
+ !MaglevObject class methodsFor: 'initializing'!
532
+
533
+ initialize
534
+ self initializeBasetypes.
535
+ !
536
+
537
+ initializeBasetypes
538
+ basetypes := Dictionary new
539
+ at: self basetype put: self;
540
+ yourself.
541
+ self allSubclasses do: [:cls |
542
+ basetypes at: cls basetype put: cls].
543
+ ! !
544
+
545
+ !MaglevObject class methodsFor: 'instance creation'!
546
+
547
+ newFor: aBaseType
548
+ |cls|
549
+ cls := self basetypes
550
+ at: aBaseType asSymbol
551
+ ifAbsent: [self error: 'Could not create forwarder object for invalid base type ', aBaseType].
552
+ ^ cls new
553
+ !
554
+
555
+ newObject: obj
556
+ |object|
557
+ object := self parseJSON: obj.
558
+ self doesUpdateObjectSpace
559
+ ifTrue: [MaglevObjectSpace instance updateObject: object].
560
+ ^ object
561
+ !
562
+
563
+ newObjectWithoutUpdate: obj
564
+ |before result|
565
+ before := self doesUpdateObjectSpace.
566
+ result := self newObject: obj.
567
+ doesUpdateObjectSpace := before.
568
+ ^ result
569
+ !
570
+
571
+ parseJSON: obj
572
+ |object|
573
+ object := self newFor: obj basetype.
574
+ obj loaded
575
+ ifTrue: [^ object parseJSON: obj; yourself]
576
+ ifFalse: [^ object parseJSONNotLoaded: obj; yourself].
577
+ ! !
578
+
579
+ MaglevObject subclass: #MaglevArray
580
+ instanceVariableNames: 'elements elementsSize'
581
+ package: 'Maglev-Core'!
582
+
583
+ !MaglevArray methodsFor: 'accessing'!
584
+
585
+ at: anInteger
586
+ ^ self elements at: anInteger
587
+ !
588
+
589
+ do: aBlock
590
+ self elements do: aBlock.
591
+ !
592
+
593
+ elements
594
+ ^ elements
595
+ !
596
+
597
+ elementsSize
598
+ ^ elementsSize
599
+ ! !
600
+
601
+ !MaglevArray methodsFor: 'instance creation'!
602
+
603
+ parseJSON: obj
604
+ super parseJSON: obj.
605
+ elements ifNil: [elements := Dictionary new].
606
+ elementsSize := obj elementsSize.
607
+ obj elements keysAndValuesDo: [:index :element |
608
+ elements at: index asNumber put: (MaglevObject newObject: element)].
609
+ ! !
610
+
611
+ !MaglevArray methodsFor: 'testing'!
612
+
613
+ hasElements
614
+ ^ self elementsSize > 0
615
+ !
616
+
617
+ isFullyLoaded
618
+ ^ self elementsSize == self elements size
619
+ ! !
620
+
621
+ !MaglevArray class methodsFor: 'constants'!
622
+
623
+ basetype
624
+ ^ #array
625
+ !
626
+
627
+ inlineViewClass
628
+ ^ MaglevArrayInline
629
+ !
630
+
631
+ windowViewClass
632
+ ^ MaglevArrayWindow
633
+ ! !
634
+
635
+ MaglevObject subclass: #MaglevBoolean
636
+ instanceVariableNames: 'value'
637
+ package: 'Maglev-Core'!
638
+
639
+ !MaglevBoolean methodsFor: 'accessing'!
640
+
641
+ value
642
+ ^ value
643
+ ! !
644
+
645
+ !MaglevBoolean methodsFor: 'instance creation'!
646
+
647
+ parseJSON: obj
648
+ super parseJSON: obj.
649
+ value := obj value.
650
+ !
651
+
652
+ parseJSONNotLoaded: obj
653
+ super parseJSONNotLoaded: obj.
654
+ value := obj value.
655
+ ! !
656
+
657
+ !MaglevBoolean class methodsFor: 'constants'!
658
+
659
+ basetype
660
+ ^ #boolean
661
+ !
662
+
663
+ inlineViewClass
664
+ ^ MaglevBooleanInline
665
+ ! !
666
+
667
+ MaglevObject subclass: #MaglevDictionary
668
+ instanceVariableNames: 'elements elementsSize'
669
+ package: 'Maglev-Core'!
670
+
671
+ !MaglevDictionary methodsFor: 'accessing'!
672
+
673
+ at: anInteger
674
+ ^ self elements at: anInteger
675
+ !
676
+
677
+ atKey: anObject
678
+ self elements do: [:assoc |
679
+ anObject = assoc key
680
+ ifTrue: [^ assoc value]].
681
+ self error: 'Object is not in the collection'.
682
+ !
683
+
684
+ atKeyInspection: anObject
685
+ self elements do: [:assoc |
686
+ anObject = assoc key inspection
687
+ ifTrue: [^ assoc value]].
688
+ self error: 'Object is not in the collection'.
689
+ !
690
+
691
+ atKeyString: anObject
692
+ self elements do: [:assoc |
693
+ anObject = assoc key string
694
+ ifTrue: [^ assoc value]].
695
+ self error: 'Object is not in the collection'.
696
+ !
697
+
698
+ elements
699
+ ^ elements
700
+ !
701
+
702
+ elementsSize
703
+ ^ elementsSize
704
+ !
705
+
706
+ includesKey: anObject
707
+ self elements do: [:assoc |
708
+ anObject = assoc key
709
+ ifTrue: [^ true]].
710
+ ^ false
711
+ !
712
+
713
+ keysAndValuesDo: aBlock
714
+ elements keysAndValuesDo: [:index :kv | aBlock value: kv key value: kv value].
715
+ !
716
+
717
+ valuesDo: aBlock
718
+ self elements do: [:assoc |
719
+ aBlock value: assoc value].
720
+ ! !
721
+
722
+ !MaglevDictionary methodsFor: 'instance creation'!
723
+
724
+ parseJSON: obj
725
+ super parseJSON: obj.
726
+ elements ifNil: [elements := Dictionary new].
727
+ elementsSize := obj elementsSize.
728
+ obj elements keysAndValuesDo: [:index :assoc | |key value|
729
+ key := MaglevObject newObject: (assoc at: 1).
730
+ value := MaglevObject newObject: (assoc at: 2).
731
+ elements at: index asNumber put: key -> value].
732
+ ! !
733
+
734
+ !MaglevDictionary methodsFor: 'testing'!
735
+
736
+ hasElements
737
+ ^ self elementsSize > 0
738
+ !
739
+
740
+ isFullyLoaded
741
+ ^ self elementsSize == self elements size
742
+ ! !
743
+
744
+ !MaglevDictionary class methodsFor: 'constants'!
745
+
746
+ basetype
747
+ ^ #dictionary
748
+ !
749
+
750
+ inlineViewClass
751
+ ^ MaglevHashInline
752
+ !
753
+
754
+ windowViewClass
755
+ ^ MaglevHashWindow
756
+ ! !
757
+
758
+ MaglevDictionary subclass: #MaglevHash
759
+ instanceVariableNames: 'elements elementsSize'
760
+ package: 'Maglev-Core'!
761
+
762
+ !MaglevHash class methodsFor: 'constants'!
763
+
764
+ basetype
765
+ ^ #hash
766
+ ! !
767
+
768
+ MaglevObject subclass: #MaglevException
769
+ instanceVariableNames: 'gsResumable gsTrappable gsNumber isDBEHalt'
770
+ package: 'Maglev-Core'!
771
+
772
+ !MaglevException methodsFor: 'accessing'!
773
+
774
+ isResumable
775
+ ^ gsResumable
776
+ !
777
+
778
+ isTrappable
779
+ ^ gsTrappable
780
+ !
781
+
782
+ number
783
+ ^ gsNumber
784
+ ! !
785
+
786
+ !MaglevException methodsFor: 'instance creation'!
787
+
788
+ parseJSON: obj
789
+ super parseJSON: obj.
790
+ gsTrappable := obj gsTrappable.
791
+ gsResumable := obj gsResumable.
792
+ gsNumber := obj at: 'gsNumber'. "gsNumber might be nil"
793
+ isDBEHalt := obj isDBEHalt.
794
+ !
795
+
796
+ parseJSONNotLoaded: obj
797
+ super parseJSONNotLoaded: obj.
798
+ gsTrappable := obj gsTrappable.
799
+ gsResumable := obj gsResumable.
800
+ gsNumber := obj at: 'gsNumber'. "gsNumber might be nil"
801
+ isDBEHalt := obj isDBEHalt.
802
+ ! !
803
+
804
+ !MaglevException methodsFor: 'testing'!
805
+
806
+ isDBEHalt
807
+ ^ isDBEHalt
808
+ ! !
809
+
810
+ !MaglevException class methodsFor: 'constants'!
811
+
812
+ basetype
813
+ ^ #exception
814
+ !
815
+
816
+ inlineViewClass
817
+ ^ MaglevExceptionInline
818
+ !
819
+
820
+ windowViewClass
821
+ ^ MaglevExceptionWindow
822
+ ! !
823
+
824
+ MaglevObject subclass: #MaglevFixnum
825
+ instanceVariableNames: ''
826
+ package: 'Maglev-Core'!
827
+
828
+ !MaglevFixnum methodsFor: 'accessing'!
829
+
830
+ number
831
+ ^ inspection asNumber
832
+ ! !
833
+
834
+ !MaglevFixnum class methodsFor: 'constants'!
835
+
836
+ basetype
837
+ ^ #fixnum
838
+ !
839
+
840
+ inlineViewClass
841
+ ^ MaglevFixnumInline
842
+ !
843
+
844
+ windowViewClass
845
+ ^ MaglevFixnumWindow
846
+ ! !
847
+
848
+ MaglevObject subclass: #MaglevFloat
849
+ instanceVariableNames: ''
850
+ package: 'Maglev-Core'!
851
+
852
+ !MaglevFloat methodsFor: 'accessing'!
853
+
854
+ number
855
+ ^ inspection asNumber
856
+ ! !
857
+
858
+ !MaglevFloat class methodsFor: 'constants'!
859
+
860
+ basetype
861
+ ^ #float
862
+ !
863
+
864
+ inlineViewClass
865
+ ^ MaglevFloatInline
866
+ !
867
+
868
+ windowViewClass
869
+ ^ MaglevFloatWindow
870
+ ! !
871
+
872
+ MaglevObject subclass: #MaglevGsNMethod
873
+ instanceVariableNames: 'selectorString argsAndTemps descrForStack'
874
+ package: 'Maglev-Core'!
875
+
876
+ !MaglevGsNMethod methodsFor: 'accessing'!
877
+
878
+ argsAndTemps
879
+ ^ argsAndTemps
880
+ !
881
+
882
+ debugInfo
883
+ ^ self instVarAt: '@_st_debugInfo'
884
+ !
885
+
886
+ descrForStack
887
+ ^ descrForStack
888
+ !
889
+
890
+ environmentId
891
+ ^ (self selector number bitShift: 0 - self siSelectorIdEnvShift) bitAnd: self selectorIdEnvMask
892
+ !
893
+
894
+ filename
895
+ ^ self debugInfo at: self debugInfoFileNameOffset
896
+ !
897
+
898
+ inClass
899
+ ^ self instVarAt: '@_st_inClass'
900
+ !
901
+
902
+ rubyFullName
903
+ ^ 'a GsNMethod'
904
+ !
905
+
906
+ selector
907
+ ^ self instVarAt: '@_st_selector'
908
+ !
909
+
910
+ selectorString
911
+ ^ selectorString
912
+ !
913
+
914
+ smalltalkFullName
915
+ ^ 'a GsNMethod'
916
+ !
917
+
918
+ sourceString
919
+ ^ (self debugInfo at: self debugInfoSourceOffset) string
920
+ ! !
921
+
922
+ !MaglevGsNMethod methodsFor: 'constants'!
923
+
924
+ debugInfoFileNameOffset
925
+ ^ 4
926
+ !
927
+
928
+ debugInfoSourceOffset
929
+ ^ 2
930
+ !
931
+
932
+ selectorIdEnvMask
933
+ ^ 255
934
+ !
935
+
936
+ siSelectorIdEnvShift
937
+ ^ 53
938
+ ! !
939
+
940
+ !MaglevGsNMethod methodsFor: 'instance creation'!
941
+
942
+ parseJSON: obj
943
+ super parseJSON: obj.
944
+ selectorString := MaglevObject newObject: obj selectorString.
945
+ argsAndTemps := MaglevObject newObject: obj argsAndTemps.
946
+ descrForStack := MaglevObject newObject: obj descrForStack.
947
+ !
948
+
949
+ parseJSONNotLoaded: obj
950
+ super parseJSONNotLoaded: obj.
951
+ selectorString := MaglevObject newObject: obj selectorString.
952
+ descrForStack := MaglevObject newObject: obj descrForStack.
953
+ ! !
954
+
955
+ !MaglevGsNMethod methodsFor: 'interactions'!
956
+
957
+ compileRubySourceCode: sourceCode withCallback: aBlock
958
+ self inClass
959
+ evaluateWithoutUpdate: sourceCode
960
+ language: 'rubyClass'
961
+ with: Dictionary new
962
+ withCallback: aBlock.
963
+ !
964
+
965
+ compileSmalltalkSourceCode: sourceCode withCallback: aBlock
966
+ self inClass
967
+ evaluateWithoutUpdate: 'self compile: ''', sourceCode escapedString, '''.'
968
+ language: 'smalltalk'
969
+ with: Dictionary new
970
+ withCallback: aBlock.
971
+ !
972
+
973
+ fullReloadWithCallback: aBlock
974
+ MaglevObjectSpace instance
975
+ reloadObject: oop
976
+ withCallback: aBlock
977
+ params: self paramsFullString.
978
+ ! !
979
+
980
+ !MaglevGsNMethod methodsFor: 'testing'!
981
+
982
+ isGsNMethod
983
+ ^ true
984
+ ! !
985
+
986
+ !MaglevGsNMethod class methodsFor: 'constants'!
987
+
988
+ basetype
989
+ ^ #gsnmethod
990
+ ! !
991
+
992
+ MaglevObject subclass: #MaglevInvalidObject
993
+ instanceVariableNames: ''
994
+ package: 'Maglev-Core'!
995
+
996
+ MaglevInvalidObject class instanceVariableNames: 'instance'!
997
+
998
+ !MaglevInvalidObject class methodsFor: 'singleton'!
999
+
1000
+ instance
1001
+ instance ifNil: [instance := self new].
1002
+ ^ instance
1003
+ ! !
1004
+
1005
+ MaglevObject subclass: #MaglevMaglevRecordBase
1006
+ instanceVariableNames: 'attributes attributesSize'
1007
+ package: 'Maglev-Core'!
1008
+
1009
+ !MaglevMaglevRecordBase methodsFor: 'accessing'!
1010
+
1011
+ attributeAt: aString
1012
+ attributes keysAndValuesDo: [:index :iv |
1013
+ iv key string = aString asString
1014
+ ifTrue: [^ iv value]].
1015
+ self error: 'attribute not found in forwarder object: ', aString.
1016
+ !
1017
+
1018
+ attributes
1019
+ ^ attributes
1020
+ !
1021
+
1022
+ attributesSize
1023
+ ^ attributesSize
1024
+ ! !
1025
+
1026
+ !MaglevMaglevRecordBase methodsFor: 'instance creation'!
1027
+
1028
+ parseJSON: obj
1029
+ super parseJSON: obj.
1030
+ (obj at: 'attributes') ifNotNil: [
1031
+ attributes ifNil: [attributes := Dictionary new].
1032
+ attributesSize := obj attributesSize.
1033
+ obj attributes keysAndValuesDo: [:index :assoc | |key value|
1034
+ key := MaglevObject newObject: (assoc at: 1).
1035
+ value := MaglevObject newObject: (assoc at: 2).
1036
+ attributes at: index asNumber put: key -> value]].
1037
+ ! !
1038
+
1039
+ !MaglevMaglevRecordBase class methodsFor: 'constants'!
1040
+
1041
+ basetype
1042
+ ^ #maglevRecordBase
1043
+ !
1044
+
1045
+ inlineViewClass
1046
+ ^ MaglevMaglevRecordBaseInline
1047
+ !
1048
+
1049
+ windowViewClass
1050
+ ^ MaglevMaglevRecordBaseWindow
1051
+ ! !
1052
+
1053
+ MaglevObject subclass: #MaglevModule
1054
+ instanceVariableNames: 'includedModules includedModulesSize constants constantsSize rubyFullName smalltalkFullName superList'
1055
+ package: 'Maglev-Core'!
1056
+
1057
+ !MaglevModule methodsFor: 'accessing'!
1058
+
1059
+ constants
1060
+ ^ constants
1061
+ !
1062
+
1063
+ constantsSize
1064
+ ^ constantsSize
1065
+ !
1066
+
1067
+ includedModules
1068
+ ^ includedModules
1069
+ !
1070
+
1071
+ includedModulesSize
1072
+ ^ includedModulesSize
1073
+ !
1074
+
1075
+ rubyFullName
1076
+ ^ rubyFullName string
1077
+ !
1078
+
1079
+ smalltalkFullName
1080
+ ^ smalltalkFullName string
1081
+ !
1082
+
1083
+ superList
1084
+ ^ superList
1085
+ ! !
1086
+
1087
+ !MaglevModule methodsFor: 'instance creation'!
1088
+
1089
+ parseJSON: obj
1090
+ super parseJSON: obj.
1091
+ includedModules ifNil: [includedModules := Dictionary new].
1092
+ constants ifNil: [constants := Dictionary new].
1093
+ (obj at: 'includedModulesSize') ifNotNil: [
1094
+ includedModulesSize := obj includedModulesSize.
1095
+ obj includedModules keysAndValuesDo: [:index :value |
1096
+ includedModules at: index asNumber put: (MaglevObject newObject: value)]].
1097
+ (obj at: 'constantsSize') ifNotNil: [
1098
+ constantsSize := obj constantsSize.
1099
+ obj constants keysAndValuesDo: [:index :assoc | |key value|
1100
+ key := MaglevObject newObject: (assoc at: 1).
1101
+ value := MaglevObject newObject: (assoc at: 2).
1102
+ constants at: index asNumber put: key -> value]].
1103
+ (obj at: 'superList') ifNotNil: [
1104
+ superList := MaglevObject newObject: obj superList].
1105
+ (obj at: 'rubyFullName') ifNotNil: [
1106
+ rubyFullName := MaglevObject newObject: obj rubyFullName.
1107
+ smalltalkFullName := MaglevObject newObject: obj smalltalkFullName].
1108
+ !
1109
+
1110
+ parseJSONNotLoaded: obj
1111
+ super parseJSONNotLoaded: obj.
1112
+ ! !
1113
+
1114
+ !MaglevModule methodsFor: 'interactions'!
1115
+
1116
+ allSelectorsWithCallback: aBlock
1117
+ MaglevAjax
1118
+ ajax: 'code/selectors/', oop asString
1119
+ data: Dictionary new
1120
+ withCallback: aBlock.
1121
+ !
1122
+
1123
+ ensureSuperListLoadedWithCallback: aBlock
1124
+ superList
1125
+ ifNil: [MaglevAjax
1126
+ ajax: 'object/index/', self oop
1127
+ data: self paramsSuperList
1128
+ withCallback: [:obj |
1129
+ self parseJSON: obj.
1130
+ aBlock value]]
1131
+ ifNotNil: [aBlock value].
1132
+ !
1133
+
1134
+ paramsSuperList
1135
+ ^ Dictionary new
1136
+ at: 'superList' put: true;
1137
+ yourself
1138
+ !
1139
+
1140
+ sourceCodeFor: selectorString language: lang withCallback: aBlock
1141
+ |params|
1142
+ params := Dictionary new
1143
+ at: 'language' put: lang;
1144
+ at: 'selector' put: selectorString;
1145
+ yourself.
1146
+ MaglevAjax
1147
+ ajax: 'code/code/', oop asString
1148
+ data: params
1149
+ withCallback: aBlock.
1150
+ ! !
1151
+
1152
+ !MaglevModule methodsFor: 'testing'!
1153
+
1154
+ hasConstants
1155
+ ^ self constantsSize > 0
1156
+ !
1157
+
1158
+ hasIncludedModules
1159
+ ^ self includedModulesSize > 0
1160
+ ! !
1161
+
1162
+ !MaglevModule class methodsFor: 'constants'!
1163
+
1164
+ basetype
1165
+ ^ #module
1166
+ !
1167
+
1168
+ inlineViewClass
1169
+ ^ MaglevModuleInline
1170
+ !
1171
+
1172
+ windowViewClass
1173
+ ^ MaglevModuleWindow
1174
+ ! !
1175
+
1176
+ MaglevModule subclass: #MaglevClass
1177
+ instanceVariableNames: 'superclassObject size subclasses instances instancesSize'
1178
+ package: 'Maglev-Core'!
1179
+
1180
+ !MaglevClass methodsFor: 'accessing'!
1181
+
1182
+ instances
1183
+ ^ instances
1184
+ !
1185
+
1186
+ instancesSize
1187
+ ^ instancesSize
1188
+ !
1189
+
1190
+ subclasses
1191
+ ^ subclasses
1192
+ !
1193
+
1194
+ superclassObject
1195
+ ^ superclassObject
1196
+ ! !
1197
+
1198
+ !MaglevClass methodsFor: 'instance creation'!
1199
+
1200
+ parseJSON: obj
1201
+ super parseJSON: obj.
1202
+ (obj at: 'superclassObject') ifNotNil: [
1203
+ superclassObject := MaglevObject newObject: obj superclassObject].
1204
+ (obj at: 'subclasses') ifNotNil: [
1205
+ subclasses := MaglevObject newObject: obj subclasses].
1206
+ (obj at: 'instancesSize') ifNotNil: [
1207
+ instances ifNil: [instances := Dictionary new].
1208
+ instancesSize := obj instancesSize.
1209
+ obj instances keysAndValuesDo: [:index :element |
1210
+ instances at: index asNumber put: (MaglevObject newObject: element)]].
1211
+ ! !
1212
+
1213
+ !MaglevClass methodsFor: 'interactions'!
1214
+
1215
+ ensureSubclassesLoadedWithCallback: aBlock
1216
+ subclasses
1217
+ ifNil: [MaglevAjax
1218
+ ajax: 'object/index/', self oop
1219
+ data: self paramsSubclasses
1220
+ withCallback: [:obj |
1221
+ self parseJSON: obj.
1222
+ aBlock value]]
1223
+ ifNotNil: [aBlock value].
1224
+ !
1225
+
1226
+ loadInstancesFrom: from to: to withCallback: aBlock
1227
+ |params|
1228
+ params := Dictionary new
1229
+ at: 'range_instances_from' put: from;
1230
+ at: 'range_instances_to' put: to;
1231
+ at: 'instances' put: true;
1232
+ yourself.
1233
+ MaglevAjax
1234
+ ajax: 'object/index/', self oop
1235
+ data: params
1236
+ withCallback: [:obj |
1237
+ "Create new object instead of merging results to self. This way
1238
+ we can separate instances with different filters and don't
1239
+ pollute MaglevObjectSpace with masses of objects."
1240
+ aBlock value: (MaglevObject newObjectWithoutUpdate: obj)].
1241
+ !
1242
+
1243
+ paramsSubclasses
1244
+ ^ Dictionary new
1245
+ at: 'subclasses' put: true;
1246
+ yourself
1247
+ ! !
1248
+
1249
+ !MaglevClass class methodsFor: 'constants'!
1250
+
1251
+ basetype
1252
+ ^ #class
1253
+ !
1254
+
1255
+ inlineViewClass
1256
+ ^ MaglevClassInline
1257
+ !
1258
+
1259
+ windowViewClass
1260
+ ^ MaglevClassWindow
1261
+ ! !
1262
+
1263
+ MaglevClass subclass: #MaglevSystemClass
1264
+ instanceVariableNames: 'gemVersionReport gemVersionReportSize stoneVersionReport stoneVersionReportSize'
1265
+ package: 'Maglev-Core'!
1266
+
1267
+ !MaglevSystemClass methodsFor: 'accessing'!
1268
+
1269
+ gemVersionReport
1270
+ ^ gemVersionReport
1271
+ !
1272
+
1273
+ gemVersionReportSize
1274
+ ^ gemVersionReportSize
1275
+ !
1276
+
1277
+ stoneVersionReport
1278
+ ^ stoneVersionReport
1279
+ !
1280
+
1281
+ stoneVersionReportSize
1282
+ ^ stoneVersionReportSize
1283
+ ! !
1284
+
1285
+ !MaglevSystemClass methodsFor: 'instance creation'!
1286
+
1287
+ parseJSON: obj
1288
+ super parseJSON: obj.
1289
+ gemVersionReport := MaglevObject newObject: obj gemVersionReport.
1290
+ gemVersionReportSize := obj gemVersionReportSize.
1291
+ stoneVersionReport := MaglevObject newObject: obj stoneVersionReport.
1292
+ stoneVersionReportSize := obj stoneVersionReportSize.
1293
+ ! !
1294
+
1295
+ !MaglevSystemClass class methodsFor: 'constants'!
1296
+
1297
+ basetype
1298
+ ^ #systemClass
1299
+ !
1300
+
1301
+ windowViewClass
1302
+ ^ MaglevSystemClassWindow
1303
+ ! !
1304
+
1305
+ MaglevObject subclass: #MaglevNilClass
1306
+ instanceVariableNames: ''
1307
+ package: 'Maglev-Core'!
1308
+
1309
+ !MaglevNilClass methodsFor: 'accessing'!
1310
+
1311
+ string
1312
+ ^ '(nil)'
1313
+ ! !
1314
+
1315
+ !MaglevNilClass methodsFor: 'testing'!
1316
+
1317
+ ifNotMaglevNil: aBlock
1318
+ ^ self
1319
+ !
1320
+
1321
+ isMaglevNil
1322
+ ^ true
1323
+ ! !
1324
+
1325
+ MaglevNilClass class instanceVariableNames: 'instance'!
1326
+
1327
+ !MaglevNilClass class methodsFor: 'constants'!
1328
+
1329
+ basetype
1330
+ ^ #nilclass
1331
+ !
1332
+
1333
+ inlineViewClass
1334
+ ^ MaglevNilClassInline
1335
+ !
1336
+
1337
+ windowViewClass
1338
+ ^ MaglevNilClassWindow
1339
+ ! !
1340
+
1341
+ !MaglevNilClass class methodsFor: 'singleton'!
1342
+
1343
+ instance
1344
+ instance ifNil: [instance := MaglevObjectSpace instance reloadObject: 20].
1345
+ ^ instance
1346
+ ! !
1347
+
1348
+ MaglevObject subclass: #MaglevRubyWorkspace
1349
+ instanceVariableNames: ''
1350
+ package: 'Maglev-Core'!
1351
+
1352
+ !MaglevRubyWorkspace class methodsFor: 'constants'!
1353
+
1354
+ basetype
1355
+ ^ #rubyWorkspace
1356
+ !
1357
+
1358
+ inlineViewClass
1359
+ ^ MaglevRubyWorkspaceInline
1360
+ !
1361
+
1362
+ windowViewClass
1363
+ ^ MaglevRubyWorkspaceWindow
1364
+ ! !
1365
+
1366
+ MaglevObject subclass: #MaglevString
1367
+ instanceVariableNames: 'string isStringComplete'
1368
+ package: 'Maglev-Core'!
1369
+
1370
+ !MaglevString methodsFor: 'accessing'!
1371
+
1372
+ string
1373
+ ^ string
1374
+ ! !
1375
+
1376
+ !MaglevString methodsFor: 'instance creation'!
1377
+
1378
+ parseJSON: obj
1379
+ super parseJSON: obj.
1380
+ string := obj string.
1381
+ isStringComplete := obj stringComplete.
1382
+ !
1383
+
1384
+ parseJSONNotLoaded: obj
1385
+ super parseJSONNotLoaded: obj.
1386
+ string := obj string.
1387
+ isStringComplete := obj stringComplete.
1388
+ ! !
1389
+
1390
+ !MaglevString class methodsFor: 'constants'!
1391
+
1392
+ basetype
1393
+ ^ #string
1394
+ !
1395
+
1396
+ inlineViewClass
1397
+ ^ MaglevStringInline
1398
+ !
1399
+
1400
+ windowViewClass
1401
+ ^ MaglevStringWindow
1402
+ ! !
1403
+
1404
+ MaglevObject subclass: #MaglevSymbol
1405
+ instanceVariableNames: 'string isStringComplete'
1406
+ package: 'Maglev-Core'!
1407
+
1408
+ !MaglevSymbol methodsFor: 'accessing'!
1409
+
1410
+ string
1411
+ ^ string
1412
+ ! !
1413
+
1414
+ !MaglevSymbol methodsFor: 'instance creation'!
1415
+
1416
+ parseJSON: obj
1417
+ super parseJSON: obj.
1418
+ string := obj string.
1419
+ isStringComplete := obj stringComplete.
1420
+ !
1421
+
1422
+ parseJSONNotLoaded: obj
1423
+ super parseJSONNotLoaded: obj.
1424
+ string := obj string.
1425
+ isStringComplete := obj stringComplete.
1426
+ ! !
1427
+
1428
+ !MaglevSymbol class methodsFor: 'constants'!
1429
+
1430
+ basetype
1431
+ ^ #symbol
1432
+ !
1433
+
1434
+ inlineViewClass
1435
+ ^ MaglevSymbolInline
1436
+ !
1437
+
1438
+ windowViewClass
1439
+ ^ MaglevSymbolWindow
1440
+ ! !
1441
+
1442
+ MaglevObject subclass: #MaglevThread
1443
+ instanceVariableNames: 'exception localStorage localStorageSize status isRailsThread'
1444
+ package: 'Maglev-Core'!
1445
+
1446
+ !MaglevThread methodsFor: 'accessing'!
1447
+
1448
+ exception
1449
+ ^ exception
1450
+ !
1451
+
1452
+ inspection
1453
+ self hasException
1454
+ ifTrue: [^ '#<GsProcess[', exception inspection, ']>']
1455
+ ifFalse: [^ super inspection].
1456
+ !
1457
+
1458
+ isRailsThread
1459
+ ^ isRailsThread = true
1460
+ !
1461
+
1462
+ localStorage
1463
+ ^ localStorage
1464
+ !
1465
+
1466
+ localStorageSize
1467
+ ^ localStorageSize
1468
+ !
1469
+
1470
+ status
1471
+ ^ status
1472
+ ! !
1473
+
1474
+ !MaglevThread methodsFor: 'instance creation'!
1475
+
1476
+ parseJSON: obj
1477
+ |objException|
1478
+ super parseJSON: obj.
1479
+ objException := obj at: 'exception'.
1480
+ objException ifNotNil: [exception := MaglevObject newObject: objException].
1481
+ localStorage := MaglevObject newObject: obj threadLocalStorage.
1482
+ localStorageSize := obj threadLocalStorageSize.
1483
+ status := obj status.
1484
+ isRailsThread := obj isRailsThread.
1485
+ ! !
1486
+
1487
+ !MaglevThread methodsFor: 'interactions'!
1488
+
1489
+ proceedWithCallback: aBlock
1490
+ MaglevAjax
1491
+ ajax: 'code/proceed/', oop asString
1492
+ data: Dictionary new
1493
+ withCallback: aBlock.
1494
+ !
1495
+
1496
+ stackFrame: anInteger withCallback: aBlock
1497
+ |params|
1498
+ params := Dictionary new
1499
+ at: 'index' put: anInteger;
1500
+ yourself.
1501
+ MaglevAjax
1502
+ ajax: 'code/frame/', oop asString
1503
+ data: params
1504
+ withCallback: aBlock.
1505
+ !
1506
+
1507
+ stackTraceMethodsWithCallback: aBlock
1508
+ MaglevAjax
1509
+ ajax: 'code/frames/', oop asString
1510
+ data: Dictionary new
1511
+ withCallback: aBlock.
1512
+ !
1513
+
1514
+ stepInto: frameIndex withCallback: aBlock
1515
+ |params|
1516
+ params := Dictionary new
1517
+ at: 'index' put: frameIndex;
1518
+ yourself.
1519
+ MaglevAjax
1520
+ ajax: 'code/stepInto/', oop asString
1521
+ data: params
1522
+ withCallback: aBlock.
1523
+ !
1524
+
1525
+ stepOver: frameIndex withCallback: aBlock
1526
+ |params|
1527
+ params := Dictionary new
1528
+ at: 'index' put: frameIndex;
1529
+ yourself.
1530
+ MaglevAjax
1531
+ ajax: 'code/stepOver/', oop asString
1532
+ data: params
1533
+ withCallback: aBlock.
1534
+ !
1535
+
1536
+ trimTo: frameIndex withCallback: aBlock
1537
+ |params|
1538
+ params := Dictionary new
1539
+ at: 'index' put: frameIndex;
1540
+ yourself.
1541
+ MaglevAjax
1542
+ ajax: 'code/trim/', oop asString
1543
+ data: params
1544
+ withCallback: aBlock.
1545
+ ! !
1546
+
1547
+ !MaglevThread methodsFor: 'testing'!
1548
+
1549
+ hasException
1550
+ exception ifNil: [^ false].
1551
+ ^ exception isMaglevNil not
1552
+ ! !
1553
+
1554
+ !MaglevThread class methodsFor: 'constants'!
1555
+
1556
+ basetype
1557
+ ^ #thread
1558
+ !
1559
+
1560
+ inlineViewClass
1561
+ ^ MaglevThreadInline
1562
+ !
1563
+
1564
+ windowViewClass
1565
+ ^ MaglevThreadWindow
1566
+ ! !
1567
+
1568
+ Object subclass: #MaglevObjectSpace
1569
+ instanceVariableNames: 'objects evalObject'
1570
+ package: 'Maglev-Core'!
1571
+
1572
+ !MaglevObjectSpace methodsFor: 'accessing'!
1573
+
1574
+ evalObject
1575
+ ^ evalObject
1576
+ !
1577
+
1578
+ evalObject: anObject
1579
+ evalObject := anObject.
1580
+ ! !
1581
+
1582
+ !MaglevObjectSpace methodsFor: 'initializing'!
1583
+
1584
+ initialize
1585
+ objects := Dictionary new.
1586
+ ! !
1587
+
1588
+ !MaglevObjectSpace methodsFor: 'interactions'!
1589
+
1590
+ registerWindow: aWindow
1591
+ (objects at: aWindow object oop)
1592
+ addWindow: aWindow.
1593
+ !
1594
+
1595
+ unregisterWindow: aWindow
1596
+ (objects at: aWindow object oop)
1597
+ removeWindow: aWindow.
1598
+ ! !
1599
+
1600
+ !MaglevObjectSpace methodsFor: 'objects'!
1601
+
1602
+ at: anOop
1603
+ ^ objects
1604
+ at: anOop
1605
+ ifAbsent: [self reloadObject: anOop]
1606
+ !
1607
+
1608
+ at: anOop withCallback: aBlock
1609
+ (objects includesKey: anOop)
1610
+ ifTrue: [aBlock value: (objects at: anOop)]
1611
+ ifFalse: [self reloadObject: anOop withCallback: aBlock].
1612
+ !
1613
+
1614
+ hasLoadedOop: oop
1615
+ ^ (objects includesKey: oop) and: [(objects at: oop) isLoaded]
1616
+ !
1617
+
1618
+ hasOop: oop
1619
+ ^ objects includesKey: oop
1620
+ !
1621
+
1622
+ reloadObject: anOop
1623
+ |obj|
1624
+ obj := MaglevAjax
1625
+ ajax: 'object/index/', anOop asString
1626
+ data: Dictionary new.
1627
+ ^ MaglevObject newObject: obj.
1628
+ !
1629
+
1630
+ reloadObject: anOop withCallback: aBlock
1631
+ MaglevAjax
1632
+ ajax: 'object/index/', anOop asString
1633
+ data: Dictionary new
1634
+ withCallback: [:obj |
1635
+ aBlock value: (MaglevObject newObject: obj)].
1636
+ !
1637
+
1638
+ reloadObject: anOop withCallback: aBlock params: aParamsDict
1639
+ MaglevAjax
1640
+ ajax: 'object/index/', anOop asString
1641
+ data: aParamsDict
1642
+ withCallback: [:obj |
1643
+ aBlock value: (MaglevObject newObject: obj)].
1644
+ !
1645
+
1646
+ updateObject: anObject
1647
+ anObject isLoaded
1648
+ ifTrue: [objects at: anObject oop put: anObject].
1649
+ ! !
1650
+
1651
+ MaglevObjectSpace class instanceVariableNames: 'instance'!
1652
+
1653
+ !MaglevObjectSpace class methodsFor: 'singleton'!
1654
+
1655
+ instance
1656
+ instance ifNil: [instance := self new].
1657
+ ^ instance
1658
+ ! !
1659
+