old_sql 1.16.0 → 1.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (273) hide show
  1. data/README.md +24 -13
  2. data/app/controllers/old_sql/report_controller.rb +3 -17
  3. data/app/views/layouts/old_sql/chart.html.erb +11 -0
  4. data/app/views/old_sql/report/chart.html.erb +8 -25
  5. data/lib/generators/old_sql/templates/user_design_template.csv +2 -3
  6. data/lib/generators/old_sql/templates/user_old_sql_demo_chart_design.yml +18 -9
  7. data/lib/old_sql/report_design/chart.rb +2 -2
  8. data/lib/old_sql/report_design/chart_item.rb +4 -4
  9. data/lib/old_sql/report_design/chart_parser.rb +2 -2
  10. data/public/javascripts/old_sql/chart.js +33 -0
  11. metadata +5 -265
  12. data/public/javascripts/old_sql/MochiKit-1.4.2/Changes +0 -362
  13. data/public/javascripts/old_sql/MochiKit-1.4.2/LICENSE.txt +0 -69
  14. data/public/javascripts/old_sql/MochiKit-1.4.2/MANIFEST +0 -179
  15. data/public/javascripts/old_sql/MochiKit-1.4.2/META.json +0 -17
  16. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Async.html +0 -814
  17. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Base.html +0 -1703
  18. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Color.html +0 -755
  19. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/DOM.html +0 -1197
  20. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/DateTime.html +0 -168
  21. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/DragAndDrop.html +0 -187
  22. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Format.html +0 -300
  23. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Iter.html +0 -524
  24. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Logging.html +0 -420
  25. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/LoggingPane.html +0 -142
  26. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Position.html +0 -38
  27. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Selector.html +0 -240
  28. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Signal.html +0 -508
  29. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Sortable.html +0 -244
  30. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Style.html +0 -385
  31. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/VersionHistory.html +0 -384
  32. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Visual.html +0 -1161
  33. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/index.html +0 -447
  34. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/js/toc.js +0 -113
  35. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Async.rst +0 -767
  36. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Base.rst +0 -1445
  37. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Color.rst +0 -651
  38. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/DOM.rst +0 -1143
  39. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/DateTime.rst +0 -145
  40. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/DragAndDrop.rst +0 -197
  41. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Format.rst +0 -258
  42. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Iter.rst +0 -454
  43. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Logging.rst +0 -348
  44. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/LoggingPane.rst +0 -128
  45. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Position.rst +0 -26
  46. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Selector.rst +0 -203
  47. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Signal.rst +0 -498
  48. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Sortable.rst +0 -186
  49. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Style.rst +0 -353
  50. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/VersionHistory.rst +0 -362
  51. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Visual.rst +0 -895
  52. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/index.rst +0 -83
  53. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/ajax_tables.css +0 -69
  54. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/ajax_tables.js +0 -401
  55. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/domains.json +0 -10
  56. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/domains.xml +0 -40
  57. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/index.html +0 -96
  58. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/color_wheel/color_wheel.css +0 -4
  59. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/color_wheel/color_wheel.js +0 -95
  60. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/color_wheel/index.html +0 -31
  61. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/dnd_sortable.css +0 -23
  62. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/dropmarker.png +0 -0
  63. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/icon.png +0 -0
  64. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/index.html +0 -54
  65. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable2_test.html +0 -150
  66. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable3_test.html +0 -42
  67. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable4_test.html +0 -90
  68. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable5_test.html +0 -29
  69. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable_test.html +0 -38
  70. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable_tree_test.html +0 -189
  71. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/draggable/draggable.css +0 -28
  72. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/draggable/draggable.js +0 -73
  73. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/draggable/index.html +0 -38
  74. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_bigslide.html +0 -36
  75. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_blind.html +0 -65
  76. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_blindslide.html +0 -31
  77. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_combi.css +0 -18
  78. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_fadeappear.html +0 -61
  79. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_grow_shrink.html +0 -38
  80. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_onload.html +0 -67
  81. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_queue.html +0 -67
  82. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_queue_limit.html +0 -30
  83. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_scroll.html +0 -483
  84. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_slide.html +0 -62
  85. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/full.html +0 -71
  86. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/icon.png +0 -0
  87. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/index.html +0 -150
  88. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/interpreter/index.html +0 -88
  89. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/interpreter/interpreter.css +0 -54
  90. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/interpreter/interpreter.js +0 -373
  91. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/key_events/index.html +0 -78
  92. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/key_events/key_events.css +0 -5
  93. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/key_events/key_events.js +0 -85
  94. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/logging_pane/index.html +0 -46
  95. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/logging_pane/logging_pane.css +0 -78
  96. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/logging_pane/logging_pane.js +0 -11
  97. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mochiregexp/index.html +0 -74
  98. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mochiregexp/mochiregexp.css +0 -73
  99. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mochiregexp/mochiregexp.js +0 -125
  100. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mouse_events/index.html +0 -88
  101. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mouse_events/mouse_events.css +0 -17
  102. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mouse_events/mouse_events.js +0 -59
  103. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/rounded_corners/index.html +0 -28
  104. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/rounded_corners/rounded_corners.css +0 -3
  105. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/rounded_corners/rounded_corners.js +0 -19
  106. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_boxes.html +0 -45
  107. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_full.html +0 -119
  108. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_ghost.html +0 -40
  109. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_hoverclass.html +0 -43
  110. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_scroll.html +0 -91
  111. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_snap.html +0 -54
  112. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/index.html +0 -93
  113. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/simple_dnd.css +0 -64
  114. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/sortable_tables/index.html +0 -71
  115. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/sortable_tables/sortable_tables.css +0 -66
  116. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/sortable_tables/sortable_tables.js +0 -203
  117. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/SyntaxHighlighter.css +0 -177
  118. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/Tests.html +0 -339
  119. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushCSharp.js +0 -30
  120. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushDelphi.js +0 -31
  121. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushJScript.js +0 -22
  122. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushPhp.js +0 -23
  123. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushPython.js +0 -71
  124. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushSql.js +0 -40
  125. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushVb.js +0 -29
  126. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushXml.js +0 -61
  127. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shCore.js +0 -622
  128. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/view-source.css +0 -1
  129. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/view-source.html +0 -19
  130. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/view-source.js +0 -70
  131. data/public/javascripts/old_sql/MochiKit-1.4.2/include/_img/bg_docheader.gif +0 -0
  132. data/public/javascripts/old_sql/MochiKit-1.4.2/include/_img/g_bullet.gif +0 -0
  133. data/public/javascripts/old_sql/MochiKit-1.4.2/include/_img/g_logo_doc.gif +0 -0
  134. data/public/javascripts/old_sql/MochiKit-1.4.2/include/css/documentation.css +0 -130
  135. data/public/javascripts/old_sql/MochiKit-1.4.2/include/css/general.css +0 -48
  136. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Async.js +0 -682
  137. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Base.js +0 -1489
  138. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Color.js +0 -863
  139. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/DOM.js +0 -1256
  140. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/DateTime.js +0 -222
  141. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/DragAndDrop.js +0 -793
  142. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Format.js +0 -304
  143. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Iter.js +0 -844
  144. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Logging.js +0 -315
  145. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/LoggingPane.js +0 -353
  146. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/MochiKit.js +0 -188
  147. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/MockDOM.js +0 -115
  148. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Position.js +0 -236
  149. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Selector.js +0 -415
  150. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Signal.js +0 -897
  151. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Sortable.js +0 -589
  152. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Style.js +0 -594
  153. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Test.js +0 -162
  154. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Visual.js +0 -2026
  155. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/__package__.js +0 -18
  156. data/public/javascripts/old_sql/MochiKit-1.4.2/packed/MochiKit/MochiKit.js +0 -7829
  157. data/public/javascripts/old_sql/MochiKit-1.4.2/packed/MochiKit/__package__.js +0 -6
  158. data/public/javascripts/old_sql/MochiKit-1.4.2/packed/MochiKit/customize.html +0 -251
  159. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/FakeJSAN.js +0 -40
  160. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/SimpleTest/SimpleTest.js +0 -381
  161. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/SimpleTest/TestRunner.js +0 -159
  162. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/SimpleTest/test.css +0 -28
  163. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/cli.js +0 -6
  164. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/index.html +0 -25
  165. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/standalone.js +0 -16
  166. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Base.js +0 -577
  167. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Color.js +0 -137
  168. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_DateTime.js +0 -52
  169. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_DragAndDrop.js +0 -30
  170. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Format.js +0 -89
  171. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Iter.js +0 -186
  172. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Logging.js +0 -88
  173. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Async.html +0 -408
  174. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Async.json +0 -1
  175. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Base.html +0 -34
  176. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Color.html +0 -84
  177. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DOM-Safari.html +0 -48
  178. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DOM.html +0 -363
  179. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DateTime.html +0 -39
  180. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DragAndDrop.html +0 -54
  181. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Format.html +0 -39
  182. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Iter.html +0 -38
  183. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-JSAN.html +0 -32
  184. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Logging.html +0 -40
  185. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-MochiKit.html +0 -18
  186. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Selector.html +0 -295
  187. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Signal.html +0 -43
  188. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Style.html +0 -223
  189. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Visual.html +0 -197
  190. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Signal.js +0 -481
  191. data/public/javascripts/old_sql/plotkit-0.9.1/COPYING +0 -28
  192. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/Base.js +0 -406
  193. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/Canvas.js +0 -683
  194. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/EasyPlot.js +0 -161
  195. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/Layout.js +0 -756
  196. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/PlotKit.js +0 -151
  197. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/PlotKit_Packed.js +0 -2177
  198. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/SVG.js +0 -705
  199. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/SweetCanvas.js +0 -348
  200. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/SweetSVG.js +0 -247
  201. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/dummy.svg +0 -9
  202. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/excanvas.js +0 -723
  203. data/public/javascripts/old_sql/plotkit-0.9.1/README +0 -1
  204. data/public/javascripts/old_sql/plotkit-0.9.1/doc/MochiKitAdditions.html +0 -2
  205. data/public/javascripts/old_sql/plotkit-0.9.1/doc/MochiKitAdditions.txt +0 -2
  206. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Base.html +0 -302
  207. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Base.txt +0 -139
  208. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Canvas.html +0 -172
  209. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Canvas.txt +0 -81
  210. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.EasyPlot.html +0 -155
  211. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.EasyPlot.txt +0 -50
  212. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Layout.html +0 -428
  213. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Layout.txt +0 -330
  214. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.QuickStart.html +0 -368
  215. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.QuickStart.txt +0 -256
  216. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Renderer.html +0 -436
  217. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Renderer.txt +0 -299
  218. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SVG.html +0 -159
  219. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SVG.txt +0 -64
  220. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetCanvas.html +0 -131
  221. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetCanvas.txt +0 -34
  222. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetSVG.html +0 -131
  223. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetSVG.txt +0 -34
  224. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.html +0 -334
  225. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.txt +0 -151
  226. data/public/javascripts/old_sql/plotkit-0.9.1/doc/SVGCanvasCompat.html +0 -304
  227. data/public/javascripts/old_sql/plotkit-0.9.1/doc/SVGCanvasCompat.txt +0 -144
  228. data/public/javascripts/old_sql/plotkit-0.9.1/doc/barsample.png +0 -0
  229. data/public/javascripts/old_sql/plotkit-0.9.1/doc/black.png +0 -0
  230. data/public/javascripts/old_sql/plotkit-0.9.1/doc/blue.png +0 -0
  231. data/public/javascripts/old_sql/plotkit-0.9.1/doc/cyan.png +0 -0
  232. data/public/javascripts/old_sql/plotkit-0.9.1/doc/doc.css +0 -62
  233. data/public/javascripts/old_sql/plotkit-0.9.1/doc/generate.py +0 -37
  234. data/public/javascripts/old_sql/plotkit-0.9.1/doc/green.png +0 -0
  235. data/public/javascripts/old_sql/plotkit-0.9.1/doc/orange.png +0 -0
  236. data/public/javascripts/old_sql/plotkit-0.9.1/doc/piesample.png +0 -0
  237. data/public/javascripts/old_sql/plotkit-0.9.1/doc/purple.png +0 -0
  238. data/public/javascripts/old_sql/plotkit-0.9.1/doc/red.png +0 -0
  239. data/public/javascripts/old_sql/plotkit-0.9.1/scripts/custom_rhino.jar +0 -0
  240. data/public/javascripts/old_sql/plotkit-0.9.1/scripts/pack.py +0 -58
  241. data/public/javascripts/old_sql/plotkit-0.9.1/tests/axis.html +0 -31
  242. data/public/javascripts/old_sql/plotkit-0.9.1/tests/basic.html +0 -25
  243. data/public/javascripts/old_sql/plotkit-0.9.1/tests/basic.js +0 -143
  244. data/public/javascripts/old_sql/plotkit-0.9.1/tests/debug.html +0 -56
  245. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo-svg.html +0 -58
  246. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo-svg.js +0 -133
  247. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo.html +0 -57
  248. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo.js +0 -136
  249. data/public/javascripts/old_sql/plotkit-0.9.1/tests/dynamic.html +0 -161
  250. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/firefox.png +0 -0
  251. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/konqueror.png +0 -0
  252. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/mozilla.ico +0 -0
  253. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/msie.gif +0 -0
  254. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/opera.ico +0 -0
  255. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/safari.gif +0 -0
  256. data/public/javascripts/old_sql/plotkit-0.9.1/tests/labels-img.html +0 -38
  257. data/public/javascripts/old_sql/plotkit-0.9.1/tests/labels.html +0 -43
  258. data/public/javascripts/old_sql/plotkit-0.9.1/tests/prototype_compat.html +0 -28
  259. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-easy.html +0 -29
  260. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-horiz.html +0 -53
  261. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-neg.html +0 -29
  262. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-svg.html +0 -61
  263. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart.html +0 -57
  264. data/public/javascripts/old_sql/plotkit-0.9.1/tests/sample.txt +0 -6
  265. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg-sweet.html +0 -29
  266. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg-sweet.js +0 -141
  267. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg.html +0 -26
  268. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg.js +0 -147
  269. data/public/javascripts/old_sql/plotkit-0.9.1/tests/sweet.html +0 -24
  270. data/public/javascripts/old_sql/plotkit-0.9.1/tests/sweet.js +0 -89
  271. data/public/javascripts/old_sql/plotkit-0.9.1/tests/tests.css +0 -66
  272. data/public/javascripts/old_sql/plotkit-0.9.1/tests/testsvg.html +0 -20
  273. data/public/javascripts/old_sql/plotkit-0.9.1/tests/testsvg.js +0 -31
@@ -1,6 +0,0 @@
1
- dojo.kwCompoundRequire({
2
- "common": [
3
- "MochiKit.MochiKit"
4
- ]
5
- });
6
- dojo.provide("MochiKit.*");
@@ -1,251 +0,0 @@
1
- <html>
2
- <head>
3
- <title>MochiKit Customizer</title>
4
- <link type="text/css" rel="stylesheet" href="../../include/css/documentation.css" />
5
- <style type="text/css">
6
- td {
7
- vertical-align: top;
8
- }
9
- label {
10
- font-weight: bold;
11
- font-size: 14px;
12
- }
13
- input {
14
- margin: 0;
15
- vertical-align: -3px;
16
- }
17
- .info {
18
- color: #888888;
19
- }
20
- </style>
21
- <script type="text/javascript" src="MochiKit.js"></script>
22
- <script type="text/javascript">
23
- // Predefined module sets
24
- var SETS = {
25
- core: { name: "Non-Web Modules", deps: ["Base", "DateTime", "Format", "Iter"] },
26
- standard: { name: "Web Modules", deps: ["Base", "DateTime", "Format", "Iter", "Async", "Color", "DOM", "Logging", "LoggingPane", "Selector", "Signal", "Style"] },
27
- all: { name: "Extension Modules", deps: null }
28
- };
29
- var MODULES = { "Base": { deps: [], packed: "" } };
30
-
31
- // Starts loading the packed library
32
- function doInit() {
33
- var url = $$("head script[src*=MochiKit.js]")[0].src;
34
- var d = doSimpleXMLHttpRequest(url);
35
- d.addCallback(doParseScript);
36
- d.addErrback(function(err) {
37
- alert("Error: " + err.toString());
38
- });
39
- }
40
-
41
- // Parses the packed library into modules
42
- function doParseScript(xhr) {
43
- var src = xhr.responseText;
44
- var moduleName = "Base";
45
- var pos = 0;
46
- while ((pos = src.indexOf("MochiKit.Base._deps")) >= 0) {
47
- if (pos > 0) {
48
- MODULES[moduleName].packed += src.substring(0, pos);
49
- src = src.substring(pos);
50
- }
51
- var names = doFindStringLiterals(src);
52
- if (names.length > 0) {
53
- moduleName = names[0];
54
- MODULES[moduleName] = { deps: names.slice(1), packed: "" };
55
- }
56
- pos = src.indexOf("MochiKit.Base._exportSymbols");
57
- pos = src.indexOf("\n", pos);
58
- MODULES[moduleName].packed += src.substring(0, pos + 1);
59
- src = src.substring(pos + 1);
60
- }
61
- MODULES["Base"].packedTail = src;
62
- for (var key in MODULES) {
63
- var m = MODULES[key];
64
- m.size = m.packed.length;
65
- if (m.packedTail) {
66
- m.size += m.packedTail.length;
67
- }
68
- }
69
- SETS.all.deps = keys(MODULES);
70
- for (var key in SETS) {
71
- var s = SETS[key];
72
- s.size = 0;
73
- for (var i = 0; i < s.deps.length; i++) {
74
- s.size += MODULES[s.deps[i]].size;
75
- }
76
- }
77
- doRender();
78
- }
79
-
80
- // Find all string literals on the first line
81
- function doFindStringLiterals(str) {
82
- var res = [];
83
- var endPos = str.indexOf("\n");
84
- var line = str.substring(0, (endPos > 0) ? endPos : str.length);
85
- var matches = line.match(/"([^"]*)"|'([^']*)'/g);
86
- for (var i = 0; i < matches.length; i++) {
87
- var name = matches[i];
88
- res.push(name.substring(1, name.length - 1));
89
- }
90
- return res;
91
- }
92
-
93
- // Renders the module selection UI
94
- function doRender() {
95
- var nf = numberFormatter("0.0 kB");
96
- var select = $("packSets");
97
- var cell = $("packModules");
98
- for (var key in SETS) {
99
- var s = SETS[key];
100
- var text = s.name + " \u2014 " + nf(s.size / 1024);
101
- select.appendChild(OPTION({ value: key }, text));
102
- if (key != "core") {
103
- cell.appendChild(HR());
104
- }
105
- cell.appendChild(H3({}, s.name, ":"));
106
- for (var i = 0; i < s.deps.length; i++) {
107
- var name = s.deps[i];
108
- var m = MODULES[name];
109
- if (m.dom == null) {
110
- m.dom = INPUT({ type: "checkbox" });
111
- if (name == "Base") {
112
- m.dom.disabled = true;
113
- }
114
- var text = " \u2014 " + nf(m.size / 1024);
115
- if (m.deps.length > 1) {
116
- text += " \u2014 uses " + m.deps.slice(1).join(", ");
117
- }
118
- var span = SPAN({ "class": "info" }, text);
119
- cell.appendChild(LABEL({}, m.dom, " MochiKit." + name, span));
120
- cell.appendChild(BR());
121
- connect(m.dom, "onclick", partial(doChangeModule, name));
122
- }
123
- }
124
- }
125
- select.appendChild(OPTION({ value: "custom" }, "Selected Modules"));
126
- select.selectedIndex = 1;
127
- connect(select, "onchange", doChangeSet);
128
- doChangeSet();
129
- }
130
-
131
- // Handle module set changes
132
- function doChangeSet() {
133
- var key = $("packSets").value;
134
- var s = SETS[key];
135
- if (s != null) {
136
- doCheckBoxes(s.deps, true);
137
- var fun = function(name) { return findValue(s.deps, name) < 0; };
138
- var other = filter(fun, keys(MODULES));
139
- doCheckBoxes(other, false);
140
- doUpdateCustom();
141
- }
142
- }
143
-
144
- // Handle individual module changes
145
- function doChangeModule(name) {
146
- var m = MODULES[name];
147
- if (m.dom.checked) {
148
- var deps = m.deps.slice(0);
149
- for (var i = 0; i < deps.length; i++) {
150
- var sub = MODULES[deps[i]].deps;
151
- for (var j = 0; j < sub.length; j++) {
152
- if (findValue(deps, sub[j]) < 0) {
153
- deps.push(sub[j]);
154
- }
155
- }
156
- }
157
- } else {
158
- var deps = [name];
159
- for (var i = 0; i < deps.length; i++) {
160
- for (var id in MODULES) {
161
- if (findValue(deps, id) < 0 &&
162
- findValue(MODULES[id].deps, deps[i]) >= 0) {
163
- deps.push(id);
164
- }
165
- }
166
- }
167
- }
168
- doCheckBoxes(deps, m.dom.checked);
169
- doUpdateCustom();
170
- var select = $("packSets");
171
- select.selectedIndex = 3;
172
- }
173
-
174
- // Checks or unchecks the specified modules
175
- function doCheckBoxes(names, checked) {
176
- for (var i = 0; i < names.length; i++) {
177
- var name = names[i];
178
- var input = MODULES[name].dom;
179
- if (input.checked != checked) {
180
- input.checked = checked;
181
- var color = checked ? '#aaffaa' : '#ffaaaa';
182
- Highlight(input.parentNode, { startcolor: color });
183
- }
184
- }
185
- }
186
-
187
- function doUpdateCustom() {
188
- var select = $("packSets");
189
- var nf = numberFormatter("0.0 kB");
190
- var size = 0;
191
- for (var id in MODULES) {
192
- var m = MODULES[id];
193
- if (m.dom.checked) {
194
- size += m.size;
195
- }
196
- }
197
- var option = select.childNodes[3];
198
- replaceChildNodes(option, "Selected Modules \u2014 " + nf(size / 1024));
199
- }
200
-
201
- function doSubmit() {
202
- var packed = "";
203
- if (!$("packExport").checked) {
204
- packed += "// Config options\n";
205
- packed += "MochiKit={__export__:false};\n\n";
206
- }
207
- for (var id in MODULES) {
208
- var m = MODULES[id];
209
- if (m.dom.checked) {
210
- packed += m.packed;
211
- }
212
- }
213
- packed += MODULES["Base"].packedTail;
214
- $("packData").value = packed;
215
- return true;
216
- }
217
- </script>
218
- </head>
219
- <body onload="doInit()">
220
- <a href="http://mochikit.com/"><img id="mainlink" src="../../include/_img/g_logo_doc.gif" alt="I &hearts; MochiKit" title="I &hearts; MochiKit" /></a>
221
- <div class="document">
222
- <div class="section">
223
- <h1>MochiKit Customizer</h1>
224
-
225
- <form action="http://mochikit-dot-com.appspot.com/download" method="POST" onsubmit="return doSubmit();">
226
- <table>
227
- <tbody>
228
- <tr>
229
- <td style="border-right: 1px solid rgb(204, 204, 204); padding-right: 10px;">
230
- <h3>Module Sets:</h3>
231
- <select id="packSets"></select>
232
- <hr style="margin-top: 200px;">
233
- <h3>Additional Options:</h3>
234
- <label><input id="packExport" checked="checked" type="checkbox"> Export Globals</label><br>
235
- </td>
236
- <td id="packModules" style="padding-left: 10px;">
237
- </td>
238
- </tr>
239
- <tr>
240
- <td colspan="2" style="padding-top: 20px;">
241
- <button type="submit">Create Customized MochiKit</button>
242
- </td>
243
- </tr>
244
- </tbody>
245
- </table>
246
- <input id="packData" type="hidden" name="data" value="" />
247
- </form>
248
- </div>
249
- </div>
250
- </body>
251
- </html>
@@ -1,40 +0,0 @@
1
- var JSAN = {
2
- global: this,
3
- use: function (module, symbols) {
4
- var components = module.split(/\./);
5
- var fn = components.join('/') + '.js';
6
- var o = JSAN.global;
7
- var i, c;
8
- for (i = 0; i < components.length; i++) {
9
- o = o[components[i]];
10
- if (typeof(o) == 'undefined') {
11
- break;
12
- }
13
- }
14
- if (typeof(o) != 'undefined') {
15
- return o;
16
- }
17
-
18
- load(fn);
19
- o = JSAN.global;
20
- for (i = 0; i < components.length; i++) {
21
- o = o[components[i]];
22
- if (typeof(o) == 'undefined') {
23
- return undefined;
24
- }
25
- }
26
- if (!symbols) {
27
- var tags = o.EXPORT_TAGS;
28
- if (tags) {
29
- symbols = tags[':common'] || tags[':all'];
30
- }
31
- }
32
- if (symbols) {
33
- for (i = 0; i < symbols.length; i++) {
34
- c = symbols[i];
35
- JSAN.global[c] = o[c];
36
- }
37
- }
38
- return o;
39
- }
40
- };
@@ -1,381 +0,0 @@
1
- /**
2
- * SimpleTest, a partial Test.Simple/Test.More API compatible test library.
3
- *
4
- * Why?
5
- *
6
- * Test.Simple doesn't work on IE < 6.
7
- * TODO:
8
- * * Support the Test.Simple API used by MochiKit, to be able to test MochiKit
9
- * itself against IE 5.5
10
- *
11
- **/
12
-
13
- if (typeof(SimpleTest) == "undefined") {
14
- var SimpleTest = {};
15
- }
16
-
17
- // Check to see if the TestRunner is present and has logging
18
- if (typeof(parent) != "undefined" && parent.TestRunner) {
19
- SimpleTest._logEnabled = parent.TestRunner.logEnabled;
20
- }
21
-
22
- SimpleTest._tests = [];
23
- SimpleTest._stopOnLoad = true;
24
-
25
- /**
26
- * Something like assert.
27
- */
28
- SimpleTest.ok = function (condition, name, diag) {
29
- var test = {'result': !!condition, 'name': name, 'diag': diag || ""};
30
- if (SimpleTest._logEnabled) {
31
- var msg = test.result ? "PASS" : "FAIL";
32
- msg += " | " + test.name;
33
- if (test.result) {
34
- parent.TestRunner.logger.log(msg);
35
- } else {
36
- msg += " | " + test.diag;
37
- parent.TestRunner.logger.error(msg);
38
- }
39
- }
40
- SimpleTest._tests.push(test);
41
- };
42
-
43
- /**
44
- * Roughly equivalent to ok(a==b, name)
45
- */
46
- SimpleTest.is = function (a, b, name) {
47
- var repr = MochiKit.Base.repr;
48
- SimpleTest.ok(a == b, name, "got " + repr(a) + ", expected " + repr(b));
49
- };
50
-
51
- /**
52
- * Roughly equivalent to ok(compare(a,b)==0, name)
53
- */
54
- SimpleTest.eq = function (a, b, name) {
55
- var repr = MochiKit.Base.repr;
56
- try {
57
- SimpleTest.ok(compare(a, b) == 0, name, "got " + repr(a) + ", expected " + repr(b));
58
- } catch (e) {
59
- SimpleTest.ok(false, name, "exception in compare: " + repr(e));
60
- }
61
- };
62
-
63
-
64
- /**
65
- * Makes a test report, returns it as a DIV element.
66
- **/
67
- SimpleTest.report = function () {
68
- var DIV = MochiKit.DOM.DIV;
69
- var passed = 0;
70
- var failed = 0;
71
- var results = MochiKit.Base.map(
72
- function (test) {
73
- var cls, msg;
74
- if (test.result) {
75
- passed++;
76
- cls = "test_ok";
77
- msg = "ok - " + test.name;
78
- } else {
79
- failed++;
80
- cls = "test_not_ok";
81
- msg = "not ok - " + test.name;
82
- if (test.diag != null && test.diag != "") {
83
- msg += ": " + test.diag;
84
- }
85
- }
86
- return DIV({"class": cls}, msg);
87
- },
88
- SimpleTest._tests
89
- );
90
- var summary_class = ((failed == 0) ? 'all_pass' : 'some_fail');
91
- return DIV({'class': 'tests_report'},
92
- DIV({'class': 'tests_summary ' + summary_class},
93
- DIV({'class': 'tests_passed'}, "Passed: " + passed),
94
- DIV({'class': 'tests_failed'}, "Failed: " + failed)),
95
- results
96
- );
97
- };
98
-
99
- /**
100
- * Toggle element visibility
101
- **/
102
- SimpleTest.toggle = function(el) {
103
- if (MochiKit.Style.getStyle(el, 'display') == 'block') {
104
- el.style.display = 'none';
105
- } else {
106
- el.style.display = 'block';
107
- }
108
- };
109
-
110
- /**
111
- * Toggle visibility for divs with a specific class.
112
- **/
113
- SimpleTest.toggleByClass = function (cls) {
114
- var elems = getElementsByTagAndClassName('div', cls);
115
- MochiKit.Base.map(SimpleTest.toggle, elems);
116
- };
117
-
118
- /**
119
- * Shows the report in the browser
120
- **/
121
-
122
- SimpleTest.showReport = function() {
123
- var togglePassed = A({'href': '#'}, "Toggle passed tests");
124
- var toggleFailed = A({'href': '#'}, "Toggle failed tests");
125
- togglePassed.onclick = partial(SimpleTest.toggleByClass, 'test_ok');
126
- toggleFailed.onclick = partial(SimpleTest.toggleByClass, 'test_not_ok');
127
- var body = document.getElementsByTagName("body")[0];
128
- var firstChild = body.childNodes[0];
129
- var addNode;
130
- if (firstChild) {
131
- addNode = function (el) {
132
- body.insertBefore(el, firstChild);
133
- };
134
- } else {
135
- addNode = function (el) {
136
- body.appendChild(el)
137
- };
138
- }
139
- addNode(togglePassed);
140
- addNode(SPAN(null, " "));
141
- addNode(toggleFailed);
142
- addNode(SimpleTest.report());
143
- };
144
-
145
- /**
146
- * Tells SimpleTest to don't finish the test when the document is loaded,
147
- * useful for asynchronous tests.
148
- *
149
- * When SimpleTest.waitForExplicitFinish is called,
150
- * explicit SimpleTest.finish() is required.
151
- **/
152
- SimpleTest.waitForExplicitFinish = function () {
153
- SimpleTest._stopOnLoad = false;
154
- };
155
-
156
- /**
157
- * Talks to the TestRunner if being ran on a iframe and the parent has a
158
- * TestRunner object.
159
- **/
160
- SimpleTest.talkToRunner = function () {
161
- if (typeof(parent) != "undefined" && parent.TestRunner) {
162
- parent.TestRunner.testFinished(document);
163
- }
164
- };
165
-
166
- /**
167
- * Finishes the tests. This is automatically called, except when
168
- * SimpleTest.waitForExplicitFinish() has been invoked.
169
- **/
170
- SimpleTest.finish = function () {
171
- SimpleTest.showReport();
172
- SimpleTest.talkToRunner();
173
- };
174
-
175
-
176
- addLoadEvent(function() {
177
- if (SimpleTest._stopOnLoad) {
178
- SimpleTest.finish();
179
- }
180
- });
181
-
182
- // --------------- Test.Builder/Test.More isDeeply() -----------------
183
-
184
-
185
- SimpleTest.DNE = {dne: 'Does not exist'};
186
- SimpleTest.LF = "\r\n";
187
- SimpleTest._isRef = function (object) {
188
- var type = typeof(object);
189
- return type == 'object' || type == 'function';
190
- };
191
-
192
-
193
- SimpleTest._deepCheck = function (e1, e2, stack, seen) {
194
- var ok = false;
195
- // Either they're both references or both not.
196
- var sameRef = !(!SimpleTest._isRef(e1) ^ !SimpleTest._isRef(e2));
197
- if (e1 == null && e2 == null) {
198
- ok = true;
199
- } else if (e1 != null ^ e2 != null) {
200
- ok = false;
201
- } else if (e1 == SimpleTest.DNE ^ e2 == SimpleTest.DNE) {
202
- ok = false;
203
- } else if (sameRef && e1 == e2) {
204
- // Handles primitives and any variables that reference the same
205
- // object, including functions.
206
- ok = true;
207
- } else if (SimpleTest.isa(e1, 'Array') && SimpleTest.isa(e2, 'Array')) {
208
- ok = SimpleTest._eqArray(e1, e2, stack, seen);
209
- } else if (typeof e1 == "object" && typeof e2 == "object") {
210
- ok = SimpleTest._eqAssoc(e1, e2, stack, seen);
211
- } else {
212
- // If we get here, they're not the same (function references must
213
- // always simply rererence the same function).
214
- stack.push({ vals: [e1, e2] });
215
- ok = false;
216
- }
217
- return ok;
218
- };
219
-
220
- SimpleTest._eqArray = function (a1, a2, stack, seen) {
221
- // Return if they're the same object.
222
- if (a1 == a2) return true;
223
-
224
- // JavaScript objects have no unique identifiers, so we have to store
225
- // references to them all in an array, and then compare the references
226
- // directly. It's slow, but probably won't be much of an issue in
227
- // practice. Start by making a local copy of the array to as to avoid
228
- // confusing a reference seen more than once (such as [a, a]) for a
229
- // circular reference.
230
- for (var j = 0; j < seen.length; j++) {
231
- if (seen[j][0] == a1) {
232
- return seen[j][1] == a2;
233
- }
234
- }
235
-
236
- // If we get here, we haven't seen a1 before, so store it with reference
237
- // to a2.
238
- seen.push([ a1, a2 ]);
239
-
240
- var ok = true;
241
- // Only examines enumerable attributes. Only works for numeric arrays!
242
- // Associative arrays return 0. So call _eqAssoc() for them, instead.
243
- var max = a1.length > a2.length ? a1.length : a2.length;
244
- if (max == 0) return SimpleTest._eqAssoc(a1, a2, stack, seen);
245
- for (var i = 0; i < max; i++) {
246
- var e1 = i > a1.length - 1 ? SimpleTest.DNE : a1[i];
247
- var e2 = i > a2.length - 1 ? SimpleTest.DNE : a2[i];
248
- stack.push({ type: 'Array', idx: i, vals: [e1, e2] });
249
- if (ok = SimpleTest._deepCheck(e1, e2, stack, seen)) {
250
- stack.pop();
251
- } else {
252
- break;
253
- }
254
- }
255
- return ok;
256
- };
257
-
258
- SimpleTest._eqAssoc = function (o1, o2, stack, seen) {
259
- // Return if they're the same object.
260
- if (o1 == o2) return true;
261
-
262
- // JavaScript objects have no unique identifiers, so we have to store
263
- // references to them all in an array, and then compare the references
264
- // directly. It's slow, but probably won't be much of an issue in
265
- // practice. Start by making a local copy of the array to as to avoid
266
- // confusing a reference seen more than once (such as [a, a]) for a
267
- // circular reference.
268
- seen = seen.slice(0);
269
- for (var j = 0; j < seen.length; j++) {
270
- if (seen[j][0] == o1) {
271
- return seen[j][1] == o2;
272
- }
273
- }
274
-
275
- // If we get here, we haven't seen o1 before, so store it with reference
276
- // to o2.
277
- seen.push([ o1, o2 ]);
278
-
279
- // They should be of the same class.
280
-
281
- var ok = true;
282
- // Only examines enumerable attributes.
283
- var o1Size = 0; for (var i in o1) o1Size++;
284
- var o2Size = 0; for (var i in o2) o2Size++;
285
- var bigger = o1Size > o2Size ? o1 : o2;
286
- for (var i in bigger) {
287
- var e1 = o1[i] == undefined ? SimpleTest.DNE : o1[i];
288
- var e2 = o2[i] == undefined ? SimpleTest.DNE : o2[i];
289
- stack.push({ type: 'Object', idx: i, vals: [e1, e2] });
290
- if (ok = SimpleTest._deepCheck(e1, e2, stack, seen)) {
291
- stack.pop();
292
- } else {
293
- break;
294
- }
295
- }
296
- return ok;
297
- };
298
-
299
- SimpleTest._formatStack = function (stack) {
300
- var variable = '$Foo';
301
- for (var i = 0; i < stack.length; i++) {
302
- var entry = stack[i];
303
- var type = entry['type'];
304
- var idx = entry['idx'];
305
- if (idx != null) {
306
- if (/^\d+$/.test(idx)) {
307
- // Numeric array index.
308
- variable += '[' + idx + ']';
309
- } else {
310
- // Associative array index.
311
- idx = idx.replace("'", "\\'");
312
- variable += "['" + idx + "']";
313
- }
314
- }
315
- }
316
-
317
- var vals = stack[stack.length-1]['vals'].slice(0, 2);
318
- var vars = [
319
- variable.replace('$Foo', 'got'),
320
- variable.replace('$Foo', 'expected')
321
- ];
322
-
323
- var out = "Structures begin differing at:" + SimpleTest.LF;
324
- for (var i = 0; i < vals.length; i++) {
325
- var val = vals[i];
326
- if (val == null) {
327
- val = 'undefined';
328
- } else {
329
- val == SimpleTest.DNE ? "Does not exist" : "'" + val + "'";
330
- }
331
- }
332
-
333
- out += vars[0] + ' = ' + vals[0] + SimpleTest.LF;
334
- out += vars[1] + ' = ' + vals[1] + SimpleTest.LF;
335
-
336
- return ' ' + out;
337
- };
338
-
339
-
340
- SimpleTest.isDeeply = function (it, as, name) {
341
- var ok;
342
- // ^ is the XOR operator.
343
- if (SimpleTest._isRef(it) ^ SimpleTest._isRef(as)) {
344
- // One's a reference, one isn't.
345
- ok = false;
346
- } else if (!SimpleTest._isRef(it) && !SimpleTest._isRef(as)) {
347
- // Neither is an object.
348
- ok = SimpleTest.is(it, as, name);
349
- } else {
350
- // We have two objects. Do a deep comparison.
351
- var stack = [], seen = [];
352
- if ( SimpleTest._deepCheck(it, as, stack, seen)) {
353
- ok = SimpleTest.ok(true, name);
354
- } else {
355
- ok = SimpleTest.ok(false, name, SimpleTest._formatStack(stack));
356
- }
357
- }
358
- return ok;
359
- };
360
-
361
- SimpleTest.typeOf = function (object) {
362
- var c = Object.prototype.toString.apply(object);
363
- var name = c.substring(8, c.length - 1);
364
- if (name != 'Object') return name;
365
- // It may be a non-core class. Try to extract the class name from
366
- // the constructor function. This may not work in all implementations.
367
- if (/function ([^(\s]+)/.test(Function.toString.call(object.constructor))) {
368
- return RegExp.$1;
369
- }
370
- // No idea. :-(
371
- return name;
372
- };
373
-
374
- SimpleTest.isa = function (object, clas) {
375
- return SimpleTest.typeOf(object) == clas;
376
- };
377
-
378
- // Global symbols:
379
- var ok = SimpleTest.ok;
380
- var is = SimpleTest.is;
381
- var isDeeply = SimpleTest.isDeeply;