old_sql 1.12.0 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (263) hide show
  1. data/public/javascripts/old_sql/MochiKit-1.4.2/Changes +362 -0
  2. data/public/javascripts/old_sql/MochiKit-1.4.2/LICENSE.txt +69 -0
  3. data/public/javascripts/old_sql/MochiKit-1.4.2/MANIFEST +179 -0
  4. data/public/javascripts/old_sql/MochiKit-1.4.2/META.json +17 -0
  5. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Async.html +814 -0
  6. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Base.html +1703 -0
  7. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Color.html +755 -0
  8. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/DOM.html +1197 -0
  9. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/DateTime.html +168 -0
  10. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/DragAndDrop.html +187 -0
  11. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Format.html +300 -0
  12. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Iter.html +524 -0
  13. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Logging.html +420 -0
  14. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/LoggingPane.html +142 -0
  15. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Position.html +38 -0
  16. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Selector.html +240 -0
  17. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Signal.html +508 -0
  18. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Sortable.html +244 -0
  19. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Style.html +385 -0
  20. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/VersionHistory.html +384 -0
  21. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Visual.html +1161 -0
  22. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/index.html +447 -0
  23. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/js/toc.js +113 -0
  24. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Async.rst +767 -0
  25. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Base.rst +1445 -0
  26. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Color.rst +651 -0
  27. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/DOM.rst +1143 -0
  28. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/DateTime.rst +145 -0
  29. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/DragAndDrop.rst +197 -0
  30. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Format.rst +258 -0
  31. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Iter.rst +454 -0
  32. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Logging.rst +348 -0
  33. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/LoggingPane.rst +128 -0
  34. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Position.rst +26 -0
  35. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Selector.rst +203 -0
  36. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Signal.rst +498 -0
  37. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Sortable.rst +186 -0
  38. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Style.rst +353 -0
  39. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/VersionHistory.rst +362 -0
  40. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Visual.rst +895 -0
  41. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/index.rst +83 -0
  42. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/ajax_tables.css +69 -0
  43. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/ajax_tables.js +401 -0
  44. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/domains.json +10 -0
  45. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/domains.xml +40 -0
  46. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/index.html +96 -0
  47. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/color_wheel/color_wheel.css +4 -0
  48. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/color_wheel/color_wheel.js +95 -0
  49. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/color_wheel/index.html +31 -0
  50. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/dnd_sortable.css +23 -0
  51. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/dropmarker.png +0 -0
  52. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/icon.png +0 -0
  53. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/index.html +54 -0
  54. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable2_test.html +150 -0
  55. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable3_test.html +42 -0
  56. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable4_test.html +90 -0
  57. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable5_test.html +29 -0
  58. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable_test.html +38 -0
  59. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable_tree_test.html +189 -0
  60. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/draggable/draggable.css +28 -0
  61. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/draggable/draggable.js +73 -0
  62. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/draggable/index.html +38 -0
  63. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_bigslide.html +36 -0
  64. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_blind.html +65 -0
  65. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_blindslide.html +31 -0
  66. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_combi.css +18 -0
  67. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_fadeappear.html +61 -0
  68. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_grow_shrink.html +38 -0
  69. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_onload.html +67 -0
  70. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_queue.html +67 -0
  71. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_queue_limit.html +30 -0
  72. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_scroll.html +483 -0
  73. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_slide.html +62 -0
  74. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/full.html +71 -0
  75. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/icon.png +0 -0
  76. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/index.html +150 -0
  77. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/interpreter/index.html +88 -0
  78. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/interpreter/interpreter.css +54 -0
  79. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/interpreter/interpreter.js +373 -0
  80. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/key_events/index.html +78 -0
  81. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/key_events/key_events.css +5 -0
  82. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/key_events/key_events.js +85 -0
  83. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/logging_pane/index.html +46 -0
  84. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/logging_pane/logging_pane.css +78 -0
  85. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/logging_pane/logging_pane.js +11 -0
  86. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mochiregexp/index.html +74 -0
  87. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mochiregexp/mochiregexp.css +73 -0
  88. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mochiregexp/mochiregexp.js +125 -0
  89. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mouse_events/index.html +88 -0
  90. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mouse_events/mouse_events.css +17 -0
  91. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mouse_events/mouse_events.js +59 -0
  92. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/rounded_corners/index.html +28 -0
  93. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/rounded_corners/rounded_corners.css +3 -0
  94. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/rounded_corners/rounded_corners.js +19 -0
  95. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_boxes.html +45 -0
  96. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_full.html +119 -0
  97. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_ghost.html +40 -0
  98. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_hoverclass.html +43 -0
  99. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_scroll.html +91 -0
  100. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_snap.html +54 -0
  101. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/index.html +93 -0
  102. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/simple_dnd.css +64 -0
  103. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/sortable_tables/index.html +71 -0
  104. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/sortable_tables/sortable_tables.css +66 -0
  105. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/sortable_tables/sortable_tables.js +203 -0
  106. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/SyntaxHighlighter.css +177 -0
  107. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/Tests.html +339 -0
  108. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushCSharp.js +30 -0
  109. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushDelphi.js +31 -0
  110. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushJScript.js +22 -0
  111. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushPhp.js +23 -0
  112. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushPython.js +71 -0
  113. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushSql.js +40 -0
  114. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushVb.js +29 -0
  115. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushXml.js +61 -0
  116. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shCore.js +622 -0
  117. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/view-source.css +1 -0
  118. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/view-source.html +19 -0
  119. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/view-source.js +70 -0
  120. data/public/javascripts/old_sql/MochiKit-1.4.2/include/_img/bg_docheader.gif +0 -0
  121. data/public/javascripts/old_sql/MochiKit-1.4.2/include/_img/g_bullet.gif +0 -0
  122. data/public/javascripts/old_sql/MochiKit-1.4.2/include/_img/g_logo_doc.gif +0 -0
  123. data/public/javascripts/old_sql/MochiKit-1.4.2/include/css/documentation.css +130 -0
  124. data/public/javascripts/old_sql/MochiKit-1.4.2/include/css/general.css +48 -0
  125. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Async.js +682 -0
  126. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Base.js +1489 -0
  127. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Color.js +863 -0
  128. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/DOM.js +1256 -0
  129. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/DateTime.js +222 -0
  130. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/DragAndDrop.js +793 -0
  131. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Format.js +304 -0
  132. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Iter.js +844 -0
  133. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Logging.js +315 -0
  134. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/LoggingPane.js +353 -0
  135. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/MochiKit.js +188 -0
  136. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/MockDOM.js +115 -0
  137. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Position.js +236 -0
  138. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Selector.js +415 -0
  139. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Signal.js +897 -0
  140. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Sortable.js +589 -0
  141. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Style.js +594 -0
  142. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Test.js +162 -0
  143. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Visual.js +2026 -0
  144. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/__package__.js +18 -0
  145. data/public/javascripts/old_sql/MochiKit-1.4.2/packed/MochiKit/MochiKit.js +7829 -0
  146. data/public/javascripts/old_sql/MochiKit-1.4.2/packed/MochiKit/__package__.js +6 -0
  147. data/public/javascripts/old_sql/MochiKit-1.4.2/packed/MochiKit/customize.html +251 -0
  148. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/FakeJSAN.js +40 -0
  149. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/SimpleTest/SimpleTest.js +381 -0
  150. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/SimpleTest/TestRunner.js +159 -0
  151. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/SimpleTest/test.css +28 -0
  152. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/cli.js +6 -0
  153. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/index.html +25 -0
  154. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/standalone.js +16 -0
  155. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Base.js +577 -0
  156. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Color.js +137 -0
  157. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_DateTime.js +52 -0
  158. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_DragAndDrop.js +30 -0
  159. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Format.js +89 -0
  160. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Iter.js +186 -0
  161. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Logging.js +88 -0
  162. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Async.html +408 -0
  163. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Async.json +1 -0
  164. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Base.html +34 -0
  165. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Color.html +84 -0
  166. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DOM-Safari.html +48 -0
  167. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DOM.html +363 -0
  168. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DateTime.html +39 -0
  169. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DragAndDrop.html +54 -0
  170. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Format.html +39 -0
  171. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Iter.html +38 -0
  172. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-JSAN.html +32 -0
  173. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Logging.html +40 -0
  174. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-MochiKit.html +18 -0
  175. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Selector.html +295 -0
  176. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Signal.html +43 -0
  177. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Style.html +223 -0
  178. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Visual.html +197 -0
  179. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Signal.js +481 -0
  180. data/public/javascripts/old_sql/plotkit-0.9.1/COPYING +28 -0
  181. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/Base.js +406 -0
  182. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/Canvas.js +683 -0
  183. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/EasyPlot.js +161 -0
  184. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/Layout.js +756 -0
  185. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/PlotKit.js +151 -0
  186. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/PlotKit_Packed.js +2177 -0
  187. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/SVG.js +705 -0
  188. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/SweetCanvas.js +348 -0
  189. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/SweetSVG.js +247 -0
  190. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/dummy.svg +9 -0
  191. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/excanvas.js +723 -0
  192. data/public/javascripts/old_sql/plotkit-0.9.1/README +1 -0
  193. data/public/javascripts/old_sql/plotkit-0.9.1/doc/MochiKitAdditions.html +2 -0
  194. data/public/javascripts/old_sql/plotkit-0.9.1/doc/MochiKitAdditions.txt +2 -0
  195. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Base.html +302 -0
  196. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Base.txt +139 -0
  197. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Canvas.html +172 -0
  198. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Canvas.txt +81 -0
  199. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.EasyPlot.html +155 -0
  200. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.EasyPlot.txt +50 -0
  201. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Layout.html +428 -0
  202. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Layout.txt +330 -0
  203. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.QuickStart.html +368 -0
  204. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.QuickStart.txt +256 -0
  205. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Renderer.html +436 -0
  206. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Renderer.txt +299 -0
  207. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SVG.html +159 -0
  208. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SVG.txt +64 -0
  209. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetCanvas.html +131 -0
  210. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetCanvas.txt +34 -0
  211. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetSVG.html +131 -0
  212. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetSVG.txt +34 -0
  213. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.html +334 -0
  214. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.txt +151 -0
  215. data/public/javascripts/old_sql/plotkit-0.9.1/doc/SVGCanvasCompat.html +304 -0
  216. data/public/javascripts/old_sql/plotkit-0.9.1/doc/SVGCanvasCompat.txt +144 -0
  217. data/public/javascripts/old_sql/plotkit-0.9.1/doc/barsample.png +0 -0
  218. data/public/javascripts/old_sql/plotkit-0.9.1/doc/black.png +0 -0
  219. data/public/javascripts/old_sql/plotkit-0.9.1/doc/blue.png +0 -0
  220. data/public/javascripts/old_sql/plotkit-0.9.1/doc/cyan.png +0 -0
  221. data/public/javascripts/old_sql/plotkit-0.9.1/doc/doc.css +62 -0
  222. data/public/javascripts/old_sql/plotkit-0.9.1/doc/generate.py +37 -0
  223. data/public/javascripts/old_sql/plotkit-0.9.1/doc/green.png +0 -0
  224. data/public/javascripts/old_sql/plotkit-0.9.1/doc/orange.png +0 -0
  225. data/public/javascripts/old_sql/plotkit-0.9.1/doc/piesample.png +0 -0
  226. data/public/javascripts/old_sql/plotkit-0.9.1/doc/purple.png +0 -0
  227. data/public/javascripts/old_sql/plotkit-0.9.1/doc/red.png +0 -0
  228. data/public/javascripts/old_sql/plotkit-0.9.1/scripts/custom_rhino.jar +0 -0
  229. data/public/javascripts/old_sql/plotkit-0.9.1/scripts/pack.py +58 -0
  230. data/public/javascripts/old_sql/plotkit-0.9.1/tests/axis.html +31 -0
  231. data/public/javascripts/old_sql/plotkit-0.9.1/tests/basic.html +25 -0
  232. data/public/javascripts/old_sql/plotkit-0.9.1/tests/basic.js +143 -0
  233. data/public/javascripts/old_sql/plotkit-0.9.1/tests/debug.html +56 -0
  234. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo-svg.html +58 -0
  235. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo-svg.js +133 -0
  236. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo.html +57 -0
  237. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo.js +136 -0
  238. data/public/javascripts/old_sql/plotkit-0.9.1/tests/dynamic.html +161 -0
  239. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/firefox.png +0 -0
  240. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/konqueror.png +0 -0
  241. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/mozilla.ico +0 -0
  242. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/msie.gif +0 -0
  243. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/opera.ico +0 -0
  244. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/safari.gif +0 -0
  245. data/public/javascripts/old_sql/plotkit-0.9.1/tests/labels-img.html +38 -0
  246. data/public/javascripts/old_sql/plotkit-0.9.1/tests/labels.html +43 -0
  247. data/public/javascripts/old_sql/plotkit-0.9.1/tests/prototype_compat.html +28 -0
  248. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-easy.html +29 -0
  249. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-horiz.html +53 -0
  250. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-neg.html +29 -0
  251. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-svg.html +61 -0
  252. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart.html +57 -0
  253. data/public/javascripts/old_sql/plotkit-0.9.1/tests/sample.txt +6 -0
  254. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg-sweet.html +29 -0
  255. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg-sweet.js +141 -0
  256. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg.html +26 -0
  257. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg.js +147 -0
  258. data/public/javascripts/old_sql/plotkit-0.9.1/tests/sweet.html +24 -0
  259. data/public/javascripts/old_sql/plotkit-0.9.1/tests/sweet.js +89 -0
  260. data/public/javascripts/old_sql/plotkit-0.9.1/tests/tests.css +66 -0
  261. data/public/javascripts/old_sql/plotkit-0.9.1/tests/testsvg.html +20 -0
  262. data/public/javascripts/old_sql/plotkit-0.9.1/tests/testsvg.js +31 -0
  263. metadata +264 -2
@@ -0,0 +1,814 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
8
+ <title>MochiKit.Async - manage asynchronous tasks</title>
9
+
10
+ <link rel="stylesheet" href="../../../include/css/documentation.css" type="text/css" />
11
+ <script type="text/javascript" src="../../../packed/lib/MochiKit/MochiKit.js"></script>
12
+ <script type="text/javascript" src="../../js/toc.js"></script>
13
+ </head>
14
+ <body>
15
+ <a href="http://mochikit.com"><img id="mainlink" src="../../../include/_img/g_logo_doc.gif" alt="MochiKit" /></a>
16
+ <a class='indexlink' href='index.html'>Back to docs index</a>
17
+ <div class="document">
18
+ <div class="section">
19
+ <h1><a id="name" name="name">Name</a></h1>
20
+ <p>MochiKit.Async - manage asynchronous tasks</p>
21
+ </div>
22
+ <div class="section">
23
+ <h1><a id="synopsis" name="synopsis">Synopsis</a></h1>
24
+ <pre class="literal-block">
25
+ var url = &quot;/src/b/bo/bob/MochiKit.Async/META.json&quot;;
26
+ /*
27
+
28
+ META.json looks something like this:
29
+
30
+ {&quot;name&quot;: &quot;MochiKit&quot;, &quot;version&quot;: &quot;0.5&quot;}
31
+
32
+ */
33
+ var d = loadJSONDoc(url);
34
+ var gotMetadata = function (meta) {
35
+ if (MochiKit.Async.VERSION == meta.version) {
36
+ alert(&quot;You have the newest MochiKit.Async!&quot;);
37
+ } else {
38
+ alert(&quot;MochiKit.Async &quot;
39
+ + meta.version
40
+ + &quot; is available, upgrade!&quot;);
41
+ }
42
+ };
43
+ var metadataFetchFailed = function (err) {
44
+ alert(&quot;The metadata for MochiKit.Async could not be fetched :(&quot;);
45
+ };
46
+ d.addCallbacks(gotMetadata, metadataFetchFailed);
47
+ </pre>
48
+ </div>
49
+ <div class="section">
50
+ <h1><a id="description" name="description">Description</a></h1>
51
+ <p>MochiKit.Async provides facilities to manage asynchronous (as in AJAX
52
+ <a class="footnote-reference" href="#id7" id="id1" name="id1">[1]</a>) tasks. The model for asynchronous computation used in this
53
+ module is heavily inspired by Twisted <a class="footnote-reference" href="#id8" id="id2" name="id2">[2]</a>.</p>
54
+ </div>
55
+ <div class="section">
56
+ <h1><a id="dependencies" name="dependencies">Dependencies</a></h1>
57
+ <ul class="simple">
58
+ <li><a class="mochiref reference" href="Base.html">MochiKit.Base</a></li>
59
+ </ul>
60
+ </div>
61
+ <div class="section">
62
+ <h1><a id="security-concerns" name="security-concerns">Security Concerns</a></h1>
63
+ <p>The current implementation of evalJSONRequest does no input validation.
64
+ Invalid JSON can execute arbitrary JavaScript code in the client. This isn't
65
+ normally a concern because of the same-origin policy in web browsers; the
66
+ server is already sending arbitrary code to the client (your program!).</p>
67
+ <p>While this isn't directly relevant to MochiKit, server-side code that produces
68
+ JSON should consider potential cross-site request forgery. Currently known
69
+ exploits require a JSON array to be the outer-most object, and the data to be
70
+ leaked must be known keys in objects contained by that array:</p>
71
+ <pre class="literal-block">
72
+ [{&quot;some_known_key&quot;: &quot;this can be leaked&quot;}, &quot;but not this&quot;]
73
+ </pre>
74
+ <p>This exploit does not apply to the most common usage of JSON, sending an
75
+ object:</p>
76
+ <pre class="literal-block">
77
+ {&quot;some_known_key&quot;: &quot;this can't be leaked&quot;}
78
+ </pre>
79
+ <p>There are several ways to avoid this, here are a few:</p>
80
+ <ul class="simple">
81
+ <li>Use some non-standard addition to JSON that adds constructs to prevent
82
+ script tag parsing, such as wrapping the data in a comment or an infinite
83
+ loop. MochiKit supports comment-wrapped JSON, but it's up to the server
84
+ to send it that way.</li>
85
+ <li>Require some kind of authentication token in the URL.</li>
86
+ <li>Allow only POST requests to access sensitive JSON.</li>
87
+ <li>Only send JSON objects, not arrays. JSON objects aren't valid JavaScript
88
+ syntax on their own without parentheses.</li>
89
+ </ul>
90
+ </div>
91
+ <div class="section">
92
+ <h1><a id="overview" name="overview">Overview</a></h1>
93
+ <div class="section">
94
+ <h2><a id="deferred" name="deferred">Deferred</a></h2>
95
+ <p>The Deferred constructor encapsulates a single value that is not
96
+ available yet. The most important example of this in the context of a
97
+ web browser would be an <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> to a server. The importance
98
+ of the Deferred is that it allows a consistent API to be exposed for
99
+ all asynchronous computations that occur exactly once.</p>
100
+ <p>The producer of the Deferred is responsible for doing all of the
101
+ complicated work behind the scenes. This often means waiting for a
102
+ timer to fire, or waiting for an event (e.g. <tt class="docutils literal"><span class="pre">onreadystatechange</span></tt> of
103
+ <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt>). It could also be coordinating several events
104
+ (e.g. <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> with a timeout, or several Deferreds
105
+ (e.g. fetching a set of XML documents that should be processed at the
106
+ same time).</p>
107
+ <p>Since these sorts of tasks do not respond immediately, the producer of
108
+ the Deferred does the following steps before returning to the
109
+ consumer:</p>
110
+ <ol class="arabic simple">
111
+ <li>Create a <tt class="docutils literal"><span class="pre">new</span></tt> <a class="mochiref reference" href="#fn-deferred">Deferred();</a> object and keep a
112
+ reference to it, because it will be needed later when the value is
113
+ ready.</li>
114
+ <li>Setup the conditions to create the value requested (e.g. create a
115
+ new <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt>, set its <tt class="docutils literal"><span class="pre">onreadystatechange</span></tt>).</li>
116
+ <li>Return the <a class="mochiref reference" href="#fn-deferred">Deferred</a> object.</li>
117
+ </ol>
118
+ <p>Since the value is not yet ready, the consumer attaches a function to
119
+ the Deferred that will be called when the value is ready. This is not
120
+ unlike <tt class="docutils literal"><span class="pre">setTimeout</span></tt>, or other similar facilities you may already be
121
+ familiar with. The consumer can also attach an &quot;errback&quot; to the
122
+ <a class="mochiref reference" href="#fn-deferred">Deferred</a>, which is a callback for error handling.</p>
123
+ <p>When the value is ready, the producer simply calls
124
+ <tt class="docutils literal"><span class="pre">myDeferred.callback(theValue)</span></tt>. If an error occurred, it should
125
+ call <tt class="docutils literal"><span class="pre">myDeferred.errback(theValue)</span></tt> instead. As soon as this
126
+ happens, the callback that the consumer attached to the
127
+ <a class="mochiref reference" href="#fn-deferred">Deferred</a> is called with <tt class="docutils literal"><span class="pre">theValue</span></tt> as the only argument.</p>
128
+ <p>There are quite a few additional &quot;advanced&quot; features baked into
129
+ <a class="mochiref reference" href="#fn-deferred">Deferred</a>, such as cancellation and callback chains, so
130
+ take a look at the API reference if you would like to know more!</p>
131
+ </div>
132
+ </div>
133
+ <div class="section">
134
+ <h1><a id="api-reference" name="api-reference">API Reference</a></h1>
135
+ <div class="section">
136
+ <h2><a id="errors" name="errors">Errors</a></h2>
137
+ <p>
138
+ <a name="fn-alreadycallederror"></a>
139
+ <a class="mochidef reference" href="#fn-alreadycallederror">AlreadyCalledError</a>:</p>
140
+ <blockquote>
141
+ <p>Thrown by a <a class="mochiref reference" href="#fn-deferred">Deferred</a> if <tt class="docutils literal"><span class="pre">.callback</span></tt> or <tt class="docutils literal"><span class="pre">.errback</span></tt>
142
+ are called more than once.</p>
143
+ <dl class="docutils">
144
+ <dt><em>Availability</em>:</dt>
145
+ <dd>Available in MochiKit 1.3.1+</dd>
146
+ </dl>
147
+ </blockquote>
148
+ <p>
149
+ <a name="fn-browsercomplianceerror"></a>
150
+ <a class="mochidef reference" href="#fn-browsercomplianceerror">BrowserComplianceError</a>:</p>
151
+ <blockquote>
152
+ <p>Thrown when the JavaScript runtime is not capable of performing
153
+ the given function. Currently, this happens if the browser does
154
+ not support <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt>.</p>
155
+ <dl class="docutils">
156
+ <dt><em>Availability</em>:</dt>
157
+ <dd>Available in MochiKit 1.3.1+</dd>
158
+ </dl>
159
+ </blockquote>
160
+ <p>
161
+ <a name="fn-cancellederror"></a>
162
+ <a class="mochidef reference" href="#fn-cancellederror">CancelledError</a>:</p>
163
+ <blockquote>
164
+ <p>Thrown by a <a class="mochiref reference" href="#fn-deferred">Deferred</a> when it is cancelled, unless a
165
+ canceller is present and throws something else.</p>
166
+ <dl class="docutils">
167
+ <dt><em>Availability</em>:</dt>
168
+ <dd>Available in MochiKit 1.3.1+</dd>
169
+ </dl>
170
+ </blockquote>
171
+ <p>
172
+ <a name="fn-genericerror"></a>
173
+ <a class="mochidef reference" href="#fn-genericerror">GenericError</a>:</p>
174
+ <blockquote>
175
+ <p>Results passed to <tt class="docutils literal"><span class="pre">.fail</span></tt> or <tt class="docutils literal"><span class="pre">.errback</span></tt> of a
176
+ <a class="mochiref reference" href="#fn-deferred">Deferred</a> are wrapped by this <tt class="docutils literal"><span class="pre">Error</span></tt> if <tt class="docutils literal"><span class="pre">!(result</span>
177
+ <span class="pre">instanceof</span> <span class="pre">Error)</span></tt>.</p>
178
+ <dl class="docutils">
179
+ <dt><em>Availability</em>:</dt>
180
+ <dd>Available in MochiKit 1.3.1+</dd>
181
+ </dl>
182
+ </blockquote>
183
+ <p>
184
+ <a name="fn-xmlhttprequesterror"></a>
185
+ <a class="mochidef reference" href="#fn-xmlhttprequesterror">XMLHttpRequestError</a>:</p>
186
+ <blockquote>
187
+ <p>Thrown when an <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> does not complete successfully
188
+ for any reason. The <tt class="docutils literal"><span class="pre">req</span></tt> property of the error is the failed
189
+ <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> object, and for convenience the <tt class="docutils literal"><span class="pre">number</span></tt>
190
+ property corresponds to <tt class="docutils literal"><span class="pre">req.status</span></tt>.</p>
191
+ <dl class="docutils">
192
+ <dt><em>Availability</em>:</dt>
193
+ <dd>Available in MochiKit 1.3.1+</dd>
194
+ </dl>
195
+ </blockquote>
196
+ </div>
197
+ <div class="section">
198
+ <h2><a id="constructors" name="constructors">Constructors</a></h2>
199
+ <p>
200
+ <a name="fn-deferred"></a>
201
+ <a class="mochidef reference" href="#fn-deferred">Deferred()</a>:</p>
202
+ <blockquote>
203
+ Encapsulates a sequence of callbacks in response to a value that
204
+ may not yet be available. This is modeled after the Deferred class
205
+ from Twisted <a class="footnote-reference" href="#id9" id="id3" name="id3">[3]</a>.</blockquote>
206
+ <blockquote>
207
+ <p>Why do we want this? JavaScript has no threads, and even if it
208
+ did, threads are hard. Deferreds are a way of abstracting
209
+ non-blocking events, such as the final response to an
210
+ <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt>.</p>
211
+ <p>The sequence of callbacks is internally represented as a list of
212
+ 2-tuples containing the callback/errback pair. For example, the
213
+ following call sequence:</p>
214
+ <pre class="literal-block">
215
+ var d = new Deferred();
216
+ d.addCallback(myCallback);
217
+ d.addErrback(myErrback);
218
+ d.addBoth(myBoth);
219
+ d.addCallbacks(myCallback, myErrback);
220
+ </pre>
221
+ <p>is translated into a <a class="mochiref reference" href="#fn-deferred">Deferred</a> with the following
222
+ internal representation:</p>
223
+ <pre class="literal-block">
224
+ [
225
+ [myCallback, null],
226
+ [null, myErrback],
227
+ [myBoth, myBoth],
228
+ [myCallback, myErrback]
229
+ ]
230
+ </pre>
231
+ <p>The <a class="mochiref reference" href="#fn-deferred">Deferred</a> also keeps track of its current status
232
+ (fired). Its status may be one of the following three values:</p>
233
+ <blockquote>
234
+ <table border="1" class="docutils">
235
+ <colgroup>
236
+ <col width="14%" />
237
+ <col width="86%" />
238
+ </colgroup>
239
+ <thead valign="bottom">
240
+ <tr><th class="head">Value</th>
241
+ <th class="head">Condition</th>
242
+ </tr>
243
+ </thead>
244
+ <tbody valign="top">
245
+ <tr><td>-1</td>
246
+ <td>no value yet (initial condition)</td>
247
+ </tr>
248
+ <tr><td>0</td>
249
+ <td>success</td>
250
+ </tr>
251
+ <tr><td>1</td>
252
+ <td>error</td>
253
+ </tr>
254
+ </tbody>
255
+ </table>
256
+ </blockquote>
257
+ <p>A <a class="mochiref reference" href="#fn-deferred">Deferred</a> will be in the error state if one of the
258
+ following conditions are met:</p>
259
+ <ol class="arabic simple">
260
+ <li>The result given to callback or errback is &quot;<tt class="docutils literal"><span class="pre">instanceof</span>
261
+ <span class="pre">Error</span></tt>&quot;</li>
262
+ <li>The callback or errback threw while executing. If the thrown
263
+ object is not <tt class="docutils literal"><span class="pre">instanceof</span> <span class="pre">Error</span></tt>, it will be wrapped with
264
+ <a class="mochiref reference" href="#fn-genericerror">GenericError</a>.</li>
265
+ </ol>
266
+ <p>Otherwise, the <a class="mochiref reference" href="#fn-deferred">Deferred</a> will be in the success
267
+ state. The state of the <a class="mochiref reference" href="#fn-deferred">Deferred</a> determines the next
268
+ element in the callback sequence to run.</p>
269
+ <p>When a callback or errback occurs with the example deferred chain,
270
+ something equivalent to the following will happen (imagine that
271
+ exceptions are caught and returned as-is):</p>
272
+ <pre class="literal-block">
273
+ // d.callback(result) or d.errback(result)
274
+ if (!(result instanceof Error)) {
275
+ result = myCallback(result);
276
+ }
277
+ if (result instanceof Error) {
278
+ result = myErrback(result);
279
+ }
280
+ result = myBoth(result);
281
+ if (result instanceof Error) {
282
+ result = myErrback(result);
283
+ } else {
284
+ result = myCallback(result);
285
+ }
286
+ </pre>
287
+ <p>The result is then stored away in case another step is added to
288
+ the callback sequence. Since the <a class="mochiref reference" href="#fn-deferred">Deferred</a> already has
289
+ a value available, any new callbacks added will be called
290
+ immediately.</p>
291
+ <p>There are two other &quot;advanced&quot; details about this implementation
292
+ that are useful:</p>
293
+ <p>Callbacks are allowed to return <a class="mochiref reference" href="#fn-deferred">Deferred</a> instances, so
294
+ you can build complicated sequences of events with (relative)
295
+ ease.</p>
296
+ <p>The creator of the <a class="mochiref reference" href="#fn-deferred">Deferred</a> may specify a
297
+ canceller. The canceller is a function that will be called if
298
+ <a class="mochiref reference" href="#fn-deferred.prototype.cancel">Deferred.prototype.cancel</a> is called before the
299
+ <a class="mochiref reference" href="#fn-deferred">Deferred</a> fires. You can use this to allow an
300
+ <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> to be cleanly cancelled, for example. Note that
301
+ cancel will fire the <a class="mochiref reference" href="#fn-deferred">Deferred</a> with a
302
+ <a class="mochiref reference" href="#fn-cancellederror">CancelledError</a> (unless your canceller throws or
303
+ returns a different <tt class="docutils literal"><span class="pre">Error</span></tt>), so errbacks should be prepared to
304
+ handle that <tt class="docutils literal"><span class="pre">Error</span></tt> gracefully for cancellable
305
+ <a class="mochiref reference" href="#fn-deferred">Deferred</a> instances.</p>
306
+ <dl class="docutils">
307
+ <dt><em>Availability</em>:</dt>
308
+ <dd>Available in MochiKit 1.3.1+</dd>
309
+ </dl>
310
+ </blockquote>
311
+ <p>
312
+ <a name="fn-deferred.prototype.addboth"></a>
313
+ <a class="mochidef reference" href="#fn-deferred.prototype.addboth">Deferred.prototype.addBoth(func)</a>:</p>
314
+ <blockquote>
315
+ <p>Add the same function as both a callback and an errback as the
316
+ next element on the callback sequence. This is useful for code
317
+ that you want to guarantee to run, e.g. a finalizer.</p>
318
+ <p>If additional arguments are given, then <tt class="docutils literal"><span class="pre">func</span></tt> will be replaced
319
+ with <a class="mochiref reference" href="Base.html#fn-partial">MochiKit.Base.partial.apply(null,
320
+ arguments)</a>. This differs from <a class="reference" href="http://twistedmatrix.com/">Twisted</a>, because the result of
321
+ the callback or errback will be the <em>last</em> argument passed to
322
+ <tt class="docutils literal"><span class="pre">func</span></tt>.</p>
323
+ <p>If <tt class="docutils literal"><span class="pre">func</span></tt> returns a <a class="mochiref reference" href="#fn-deferred">Deferred</a>, then it will be
324
+ chained (its value or error will be passed to the next
325
+ callback). Note that once the returned <tt class="docutils literal"><span class="pre">Deferred</span></tt> is chained, it
326
+ can no longer accept new callbacks.</p>
327
+ <dl class="docutils">
328
+ <dt><em>Availability</em>:</dt>
329
+ <dd>Available in MochiKit 1.3.1+</dd>
330
+ </dl>
331
+ </blockquote>
332
+ <p>
333
+ <a name="fn-deferred.prototype.addcallback"></a>
334
+ <a class="mochidef reference" href="#fn-deferred.prototype.addcallback">Deferred.prototype.addCallback(func[, ...])</a>:</p>
335
+ <blockquote>
336
+ <p>Add a single callback to the end of the callback sequence.</p>
337
+ <p>If additional arguments are given, then <tt class="docutils literal"><span class="pre">func</span></tt> will be replaced
338
+ with <a class="mochiref reference" href="Base.html#fn-partial">MochiKit.Base.partial.apply(null,
339
+ arguments)</a>. This differs from <a class="reference" href="http://twistedmatrix.com/">Twisted</a>, because the result of
340
+ the callback will be the <em>last</em> argument passed to <tt class="docutils literal"><span class="pre">func</span></tt>.</p>
341
+ <p>If <tt class="docutils literal"><span class="pre">func</span></tt> returns a <a class="mochiref reference" href="#fn-deferred">Deferred</a>, then it will be
342
+ chained (its value or error will be passed to the next
343
+ callback). Note that once the returned <tt class="docutils literal"><span class="pre">Deferred</span></tt> is chained, it
344
+ can no longer accept new callbacks.</p>
345
+ <dl class="docutils">
346
+ <dt><em>Availability</em>:</dt>
347
+ <dd>Available in MochiKit 1.3.1+</dd>
348
+ </dl>
349
+ </blockquote>
350
+ <p>
351
+ <a name="fn-deferred.prototype.addcallbacks"></a>
352
+ <a class="mochidef reference" href="#fn-deferred.prototype.addcallbacks">Deferred.prototype.addCallbacks(callback, errback)</a>:</p>
353
+ <blockquote>
354
+ <p>Add separate callback and errback to the end of the callback
355
+ sequence. Either callback or errback may be <tt class="docutils literal"><span class="pre">null</span></tt>, but not
356
+ both.</p>
357
+ <p>If <tt class="docutils literal"><span class="pre">callback</span></tt> or <tt class="docutils literal"><span class="pre">errback</span></tt> returns a <a class="mochiref reference" href="#fn-deferred">Deferred</a>,
358
+ then it will be chained (its value or error will be passed to the
359
+ next callback). Note that once the returned <tt class="docutils literal"><span class="pre">Deferred</span></tt> is
360
+ chained, it can no longer accept new callbacks.</p>
361
+ <dl class="docutils">
362
+ <dt><em>Availability</em>:</dt>
363
+ <dd>Available in MochiKit 1.3.1+</dd>
364
+ </dl>
365
+ </blockquote>
366
+ <p>
367
+ <a name="fn-deferred.prototype.adderrback"></a>
368
+ <a class="mochidef reference" href="#fn-deferred.prototype.adderrback">Deferred.prototype.addErrback(func)</a>:</p>
369
+ <blockquote>
370
+ <p>Add a single errback to the end of the callback sequence.</p>
371
+ <p>If additional arguments are given, then <tt class="docutils literal"><span class="pre">func</span></tt> will be replaced
372
+ with <a class="mochiref reference" href="Base.html#fn-partial">MochiKit.Base.partial.apply(null,
373
+ arguments)</a>. This differs from <a class="reference" href="http://twistedmatrix.com/">Twisted</a>, because the result of
374
+ the errback will be the <em>last</em> argument passed to <tt class="docutils literal"><span class="pre">func</span></tt>.</p>
375
+ <p>If <tt class="docutils literal"><span class="pre">func</span></tt> returns a <a class="mochiref reference" href="#fn-deferred">Deferred</a>, then it will be
376
+ chained (its value or error will be passed to the next
377
+ callback). Note that once the returned <tt class="docutils literal"><span class="pre">Deferred</span></tt> is chained, it
378
+ can no longer accept new callbacks.</p>
379
+ <dl class="docutils">
380
+ <dt><em>Availability</em>:</dt>
381
+ <dd>Available in MochiKit 1.3.1+</dd>
382
+ </dl>
383
+ </blockquote>
384
+ <p>
385
+ <a name="fn-deferred.prototype.callback"></a>
386
+ <a class="mochidef reference" href="#fn-deferred.prototype.callback">Deferred.prototype.callback([result])</a>:</p>
387
+ <blockquote>
388
+ <p>Begin the callback sequence with a non-<tt class="docutils literal"><span class="pre">Error</span></tt> result. Result
389
+ may be any value except for a <a class="mochiref reference" href="#fn-deferred">Deferred</a>.</p>
390
+ <p>Either <tt class="docutils literal"><span class="pre">.callback</span></tt> or <tt class="docutils literal"><span class="pre">.errback</span></tt> should be called exactly once
391
+ on a <a class="mochiref reference" href="#fn-deferred">Deferred</a>.</p>
392
+ <dl class="docutils">
393
+ <dt><em>Availability</em>:</dt>
394
+ <dd>Available in MochiKit 1.3.1+</dd>
395
+ </dl>
396
+ </blockquote>
397
+ <p>
398
+ <a name="fn-deferred.prototype.cancel"></a>
399
+ <a class="mochidef reference" href="#fn-deferred.prototype.cancel">Deferred.prototype.cancel()</a>:</p>
400
+ <blockquote>
401
+ <p>Cancels a <a class="mochiref reference" href="#fn-deferred">Deferred</a> that has not yet received a value,
402
+ or is waiting on another <a class="mochiref reference" href="#fn-deferred">Deferred</a> as its value.</p>
403
+ <p>If a canceller is defined, the canceller is called. If the
404
+ canceller did not return an <tt class="docutils literal"><span class="pre">Error</span></tt>, or there was no canceller,
405
+ then the errback chain is started with <a class="mochiref reference" href="#fn-cancellederror">CancelledError</a>.</p>
406
+ <dl class="docutils">
407
+ <dt><em>Availability</em>:</dt>
408
+ <dd>Available in MochiKit 1.3.1+</dd>
409
+ </dl>
410
+ </blockquote>
411
+ <p>
412
+ <a name="fn-deferred.prototype.errback"></a>
413
+ <a class="mochidef reference" href="#fn-deferred.prototype.errback">Deferred.prototype.errback([result])</a>:</p>
414
+ <blockquote>
415
+ <p>Begin the callback sequence with an error result. Result may be
416
+ any value except for a <a class="mochiref reference" href="#fn-deferred">Deferred</a>, but if <tt class="docutils literal"><span class="pre">!(result</span>
417
+ <span class="pre">instanceof</span> <span class="pre">Error)</span></tt>, it will be wrapped with
418
+ <a class="mochiref reference" href="#fn-genericerror">GenericError</a>.</p>
419
+ <p>Either <tt class="docutils literal"><span class="pre">.callback</span></tt> or <tt class="docutils literal"><span class="pre">.errback</span></tt> should be called exactly once
420
+ on a
421
+ <a name="fn-deferred"></a>
422
+ <a class="mochidef reference" href="#fn-deferred">Deferred</a>.</p>
423
+ <dl class="docutils">
424
+ <dt><em>Availability</em>:</dt>
425
+ <dd>Available in MochiKit 1.3.1+</dd>
426
+ </dl>
427
+ </blockquote>
428
+ <p>
429
+ <a name="fn-deferredlock"></a>
430
+ <a class="mochidef reference" href="#fn-deferredlock">DeferredLock()</a>:</p>
431
+ <blockquote>
432
+ <p>A lock for asynchronous systems.</p>
433
+ <p>The <tt class="docutils literal"><span class="pre">locked</span></tt> property of a <a class="mochiref reference" href="#fn-deferredlock">DeferredLock</a> will be
434
+ <tt class="docutils literal"><span class="pre">true</span></tt> if it locked, <tt class="docutils literal"><span class="pre">false</span></tt> otherwise. Do not change this
435
+ property.</p>
436
+ <dl class="docutils">
437
+ <dt><em>Availability</em>:</dt>
438
+ <dd>Available in MochiKit 1.3.1+</dd>
439
+ </dl>
440
+ </blockquote>
441
+ <p>
442
+ <a name="fn-deferredlock.prototype.acquire"></a>
443
+ <a class="mochidef reference" href="#fn-deferredlock.prototype.acquire">DeferredLock.prototype.acquire()</a>:</p>
444
+ <blockquote>
445
+ <p>Attempt to acquire the lock. Returns a <a class="mochiref reference" href="#fn-deferred">Deferred</a> that
446
+ fires on lock acquisition with the <a class="mochiref reference" href="#fn-deferredlock">DeferredLock</a> as the
447
+ value. If the lock is locked, then the <a class="mochiref reference" href="#fn-deferred">Deferred</a> goes
448
+ into a waiting list.</p>
449
+ <dl class="docutils">
450
+ <dt><em>Availability</em>:</dt>
451
+ <dd>Available in MochiKit 1.3.1+</dd>
452
+ </dl>
453
+ </blockquote>
454
+ <p>
455
+ <a name="fn-deferredlock.prototype.release"></a>
456
+ <a class="mochidef reference" href="#fn-deferredlock.prototype.release">DeferredLock.prototype.release()</a>:</p>
457
+ <blockquote>
458
+ <p>Release the lock. If there is a waiting list, then the first
459
+ <a class="mochiref reference" href="#fn-deferred">Deferred</a> in that waiting list will be called back.</p>
460
+ <dl class="docutils">
461
+ <dt><em>Availability</em>:</dt>
462
+ <dd>Available in MochiKit 1.3.1+</dd>
463
+ </dl>
464
+ </blockquote>
465
+ <p>
466
+ <a name="fn-deferredlist"></a>
467
+ <a class="mochidef reference" href="#fn-deferredlist">DeferredList(list, [fireOnOneCallback, fireOnOneErrback, consumeErrors, canceller])</a>:</p>
468
+ <blockquote>
469
+ <p>Combine a list of <a class="mochiref reference" href="#fn-deferred">Deferred</a> into one. Track the
470
+ callbacks and return a list of (success, result) tuples, 'success'
471
+ being a boolean indicating whether result is a normal result or an
472
+ error.</p>
473
+ <p>Once created, you have access to all <a class="mochiref reference" href="#fn-deferred">Deferred</a> methods,
474
+ like addCallback, addErrback, addBoth. The behaviour can be
475
+ changed by the following options:</p>
476
+ <dl class="docutils">
477
+ <dt><tt class="docutils literal"><span class="pre">fireOnOneCallback</span></tt>:</dt>
478
+ <dd>Flag for launching the callback once the first Deferred of the
479
+ list has returned.</dd>
480
+ <dt><tt class="docutils literal"><span class="pre">fireOnOneErrback</span></tt>:</dt>
481
+ <dd>Flag for calling the errback at the first error of a Deferred.</dd>
482
+ <dt><tt class="docutils literal"><span class="pre">consumeErrors</span></tt>:</dt>
483
+ <dd>Flag indicating that any errors raised in the Deferreds should
484
+ be consumed by the DeferredList.</dd>
485
+ </dl>
486
+ <p>Example:</p>
487
+ <pre class="literal-block">
488
+ // We need to fetch data from 2 different urls
489
+ var d1 = loadJSONDoc(url1);
490
+ var d2 = loadJSONDoc(url2);
491
+ var l1 = new DeferredList([d1, d2], false, false, true);
492
+ l1.addCallback(function (resultList) {
493
+ MochiKit.Base.map(function (result) {
494
+ if (result[0]) {
495
+ alert(&quot;Data is here: &quot; + result[1]);
496
+ } else {
497
+ alert(&quot;Got an error: &quot; + result[1]);
498
+ }
499
+ }, resultList);
500
+ });
501
+ </pre>
502
+ <dl class="docutils">
503
+ <dt><em>Availability</em>:</dt>
504
+ <dd>Available in MochiKit 1.3.1+</dd>
505
+ </dl>
506
+ </blockquote>
507
+ </div>
508
+ <div class="section">
509
+ <h2><a id="functions" name="functions">Functions</a></h2>
510
+ <p>
511
+ <a name="fn-calllater"></a>
512
+ <a class="mochidef reference" href="#fn-calllater">callLater(seconds, func[, args...])</a>:</p>
513
+ <blockquote>
514
+ <p>Call <tt class="docutils literal"><span class="pre">func(args...)</span></tt> after at least <tt class="docutils literal"><span class="pre">seconds</span></tt> seconds have
515
+ elapsed. This is a convenience method for:</p>
516
+ <pre class="literal-block">
517
+ func = partial.apply(extend(null, arguments, 1));
518
+ return wait(seconds).addCallback(function (res) { return func() });
519
+ </pre>
520
+ <p>Returns a cancellable <a class="mochiref reference" href="#fn-deferred">Deferred</a>.</p>
521
+ <dl class="docutils">
522
+ <dt><em>Availability</em>:</dt>
523
+ <dd>Available in MochiKit 1.3.1+</dd>
524
+ </dl>
525
+ </blockquote>
526
+ <p>
527
+ <a name="fn-doxhr"></a>
528
+ <a class="mochidef reference" href="#fn-doxhr">doXHR(url[, {option: value, ...}])</a>:</p>
529
+ <blockquote>
530
+ <p>Perform a customized <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> and wrap it with a
531
+ <a class="mochiref reference" href="#fn-deferred">Deferred</a> that may be cancelled.</p>
532
+ <p>Note that only <tt class="docutils literal"><span class="pre">200</span></tt> (OK), <tt class="docutils literal"><span class="pre">201</span></tt> (CREATED),
533
+ <tt class="docutils literal"><span class="pre">204</span></tt> (NO CONTENT) and <tt class="docutils literal"><span class="pre">304</span></tt> (NOT MODIFIED) are considered
534
+ success codes. All other status codes will
535
+ result in an errback with an <tt class="docutils literal"><span class="pre">XMLHttpRequestError</span></tt>.</p>
536
+ <dl class="docutils">
537
+ <dt><tt class="docutils literal"><span class="pre">url</span></tt>:</dt>
538
+ <dd>The URL for this request.</dd>
539
+ </dl>
540
+ <p>The following options are currently accepted:</p>
541
+ <dl class="docutils">
542
+ <dt><tt class="docutils literal"><span class="pre">method</span></tt>:</dt>
543
+ <dd>The HTTP method. Default is <tt class="docutils literal"><span class="pre">'GET'</span></tt>.</dd>
544
+ <dt><tt class="docutils literal"><span class="pre">sendContent</span></tt>:</dt>
545
+ <dd>The content to send (e.g. with POST). Default is no content.</dd>
546
+ <dt><tt class="docutils literal"><span class="pre">queryString</span></tt>:</dt>
547
+ <dd>If present it will be used to build a query string to append to
548
+ the url using <a class="mochiref reference" href="Base.html#fn-querystring">MochiKit.Base.queryString</a>. Default is
549
+ no query string.</dd>
550
+ <dt><tt class="docutils literal"><span class="pre">username</span></tt>:</dt>
551
+ <dd>The username for the request. Default is no username.</dd>
552
+ <dt><tt class="docutils literal"><span class="pre">password</span></tt>:</dt>
553
+ <dd>The password for the request. Default is no password.</dd>
554
+ <dt><tt class="docutils literal"><span class="pre">headers</span></tt>:</dt>
555
+ <dd>Additional headers to set in the request, either as an object
556
+ such as <tt class="docutils literal"><span class="pre">{'Accept':</span> <span class="pre">'text/xml'}</span></tt> or as an Array of 2-Arrays
557
+ <tt class="docutils literal"><span class="pre">[['Accept',</span> <span class="pre">'text/xml']]</span></tt>. Default is no additional headers.</dd>
558
+ <dt><tt class="docutils literal"><span class="pre">mimeType</span></tt>:</dt>
559
+ <dd>An override mime type. The typical use of this is to pass
560
+ 'text/xml' to force XMLHttpRequest to attempt to parse responseXML.
561
+ Default is no override.</dd>
562
+ <dt><em>returns</em>:</dt>
563
+ <dd><a class="mochiref reference" href="#fn-deferred">Deferred</a> that will callback with the
564
+ <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> instance on success</dd>
565
+ <dt><em>Availability</em>:</dt>
566
+ <dd>Available in MochiKit 1.4+.</dd>
567
+ </dl>
568
+ </blockquote>
569
+ <p>
570
+ <a name="fn-dosimplexmlhttprequest"></a>
571
+ <a class="mochidef reference" href="#fn-dosimplexmlhttprequest">doSimpleXMLHttpRequest(url[, queryArguments...])</a>:</p>
572
+ <blockquote>
573
+ <p>Perform a simple <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> and wrap it with a
574
+ <a class="mochiref reference" href="#fn-deferred">Deferred</a> that may be cancelled.</p>
575
+ <p>Note that only <tt class="docutils literal"><span class="pre">200</span></tt> (OK), <tt class="docutils literal"><span class="pre">201</span></tt> (CREATED),
576
+ <tt class="docutils literal"><span class="pre">204</span></tt> (NO CONTENT) and <tt class="docutils literal"><span class="pre">304</span></tt> (NOT MODIFIED) are considered
577
+ success codes. All other status codes will
578
+ result in an errback with an <tt class="docutils literal"><span class="pre">XMLHttpRequestError</span></tt>.</p>
579
+ <dl class="docutils">
580
+ <dt><tt class="docutils literal"><span class="pre">url</span></tt>:</dt>
581
+ <dd>The URL to GET</dd>
582
+ <dt><tt class="docutils literal"><span class="pre">queryArguments</span></tt>:</dt>
583
+ <dd><p class="first">If this function is called with more than one argument, a
584
+ <tt class="docutils literal"><span class="pre">&quot;?&quot;</span></tt> and the result of
585
+ <a class="mochiref reference" href="Base.html#fn-querystring">MochiKit.Base.queryString</a> with the rest of the
586
+ arguments are appended to the URL.</p>
587
+ <p>For example, this will do a GET request to the URL
588
+ <tt class="docutils literal"><span class="pre">http://example.com?bar=baz</span></tt>:</p>
589
+ <pre class="last literal-block">
590
+ doSimpleXMLHttpRequest(&quot;http://example.com&quot;, {bar: &quot;baz&quot;});
591
+ </pre>
592
+ </dd>
593
+ <dt><em>returns</em>:</dt>
594
+ <dd><a class="mochiref reference" href="#fn-deferred">Deferred</a> that will callback with the
595
+ <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> instance on success</dd>
596
+ <dt><em>Availability</em>:</dt>
597
+ <dd>Available in MochiKit 1.3.1+. Support for 201 and 204 were added in
598
+ MochiKit 1.4.</dd>
599
+ </dl>
600
+ </blockquote>
601
+ <p>
602
+ <a name="fn-evaljsonrequest"></a>
603
+ <a class="mochidef reference" href="#fn-evaljsonrequest">evalJSONRequest(req)</a>:</p>
604
+ <blockquote>
605
+ <p>Evaluate a JSON <a class="footnote-reference" href="#id10" id="id4" name="id4">[4]</a> <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt></p>
606
+ <dl class="docutils">
607
+ <dt><tt class="docutils literal"><span class="pre">req</span></tt>:</dt>
608
+ <dd>The request whose <tt class="docutils literal"><span class="pre">.responseText</span></tt> property is to be
609
+ evaluated. If the JSON is wrapped in a comment, the comment will
610
+ be stripped before evaluation.</dd>
611
+ <dt><em>returns</em>:</dt>
612
+ <dd>A JavaScript object</dd>
613
+ <dt><em>Availability</em>:</dt>
614
+ <dd>Available in MochiKit 1.3.1+</dd>
615
+ </dl>
616
+ </blockquote>
617
+ <p>
618
+ <a name="fn-fail"></a>
619
+ <a class="mochidef reference" href="#fn-fail">fail([result])</a>:</p>
620
+ <blockquote>
621
+ <p>Return a <a class="mochiref reference" href="#fn-deferred">Deferred</a> that has already had
622
+ <tt class="docutils literal"><span class="pre">.errback(result)</span></tt> called.</p>
623
+ <p>See <tt class="docutils literal"><span class="pre">succeed</span></tt> documentation for rationale.</p>
624
+ <dl class="docutils">
625
+ <dt><tt class="docutils literal"><span class="pre">result</span></tt>:</dt>
626
+ <dd>The result to give to
627
+ <a class="mochiref reference" href="#fn-deferred.prototype.errback">Deferred.prototype.errback(result)</a>.</dd>
628
+ <dt><em>returns</em>:</dt>
629
+ <dd>A <tt class="docutils literal"><span class="pre">new</span></tt> <a class="mochiref reference" href="#fn-deferred">Deferred()</a></dd>
630
+ <dt><em>Availability</em>:</dt>
631
+ <dd>Available in MochiKit 1.3.1+</dd>
632
+ </dl>
633
+ </blockquote>
634
+ <p>
635
+ <a name="fn-gatherresults"></a>
636
+ <a class="mochidef reference" href="#fn-gatherresults">gatherResults(deferreds)</a>:</p>
637
+ <blockquote>
638
+ <p>A convenience function that returns a <a class="mochiref reference" href="#fn-deferredlist">DeferredList</a>
639
+ from the given <tt class="docutils literal"><span class="pre">Array</span></tt> of <a class="mochiref reference" href="#fn-deferred">Deferred</a> instances that
640
+ will callback with an <tt class="docutils literal"><span class="pre">Array</span></tt> of just results when they're
641
+ available, or errback on the first array.</p>
642
+ <dl class="docutils">
643
+ <dt><em>Availability</em>:</dt>
644
+ <dd>Available in MochiKit 1.3.1+</dd>
645
+ </dl>
646
+ </blockquote>
647
+ <p>
648
+ <a name="fn-getxmlhttprequest"></a>
649
+ <a class="mochidef reference" href="#fn-getxmlhttprequest">getXMLHttpRequest()</a>:</p>
650
+ <blockquote>
651
+ <p>Return an <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> compliant object for the current
652
+ platform.</p>
653
+ <p>In order of preference:</p>
654
+ <ul class="simple">
655
+ <li><tt class="docutils literal"><span class="pre">new</span> <span class="pre">XMLHttpRequest()</span></tt></li>
656
+ <li><tt class="docutils literal"><span class="pre">new</span> <span class="pre">ActiveXObject('Msxml2.XMLHTTP')</span></tt></li>
657
+ <li><tt class="docutils literal"><span class="pre">new</span> <span class="pre">ActiveXObject('Microsoft.XMLHTTP')</span></tt></li>
658
+ <li><tt class="docutils literal"><span class="pre">new</span> <span class="pre">ActiveXObject('Msxml2.XMLHTTP.4.0')</span></tt></li>
659
+ </ul>
660
+ <dl class="docutils">
661
+ <dt><em>Availability</em>:</dt>
662
+ <dd>Available in MochiKit 1.3.1+</dd>
663
+ </dl>
664
+ </blockquote>
665
+ <p>
666
+ <a name="fn-maybedeferred"></a>
667
+ <a class="mochidef reference" href="#fn-maybedeferred">maybeDeferred(func[, argument...])</a>:</p>
668
+ <blockquote>
669
+ <p>Call a <tt class="docutils literal"><span class="pre">func</span></tt> with the given arguments and ensure the result is
670
+ a <a class="mochiref reference" href="#fn-deferred">Deferred</a>.</p>
671
+ <dl class="docutils">
672
+ <dt><tt class="docutils literal"><span class="pre">func</span></tt>:</dt>
673
+ <dd>The function to call.</dd>
674
+ <dt><em>returns</em>:</dt>
675
+ <dd>A new <a class="mochiref reference" href="#fn-deferred">Deferred</a> based on the call to <tt class="docutils literal"><span class="pre">func</span></tt>. If
676
+ <tt class="docutils literal"><span class="pre">func</span></tt> does not naturally return a <a class="mochiref reference" href="#fn-deferred">Deferred</a>, its
677
+ result or error value will be wrapped by one.</dd>
678
+ <dt><em>Availability</em>:</dt>
679
+ <dd>Available in MochiKit 1.3.1+</dd>
680
+ </dl>
681
+ </blockquote>
682
+ <p>
683
+ <a name="fn-loadjsondoc"></a>
684
+ <a class="mochidef reference" href="#fn-loadjsondoc">loadJSONDoc(url[, queryArguments...])</a>:</p>
685
+ <blockquote>
686
+ <p>Do a simple <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> to a URL and get the response as a
687
+ JSON <a class="footnote-reference" href="#id10" id="id5" name="id5">[4]</a> document.</p>
688
+ <dl class="docutils">
689
+ <dt><tt class="docutils literal"><span class="pre">url</span></tt>:</dt>
690
+ <dd>The URL to GET</dd>
691
+ <dt><tt class="docutils literal"><span class="pre">queryArguments</span></tt>:</dt>
692
+ <dd><p class="first">If this function is called with more than one argument, a
693
+ <tt class="docutils literal"><span class="pre">&quot;?&quot;</span></tt> and the result of
694
+ <a class="mochiref reference" href="Base.html#fn-querystring">MochiKit.Base.queryString</a> with the rest of the
695
+ arguments are appended to the URL.</p>
696
+ <p>For example, this will do a GET request to the URL
697
+ <tt class="docutils literal"><span class="pre">http://example.com?bar=baz</span></tt>:</p>
698
+ <pre class="last literal-block">
699
+ loadJSONDoc(&quot;http://example.com&quot;, {bar: &quot;baz&quot;});
700
+ </pre>
701
+ </dd>
702
+ <dt><em>returns</em>:</dt>
703
+ <dd><a class="mochiref reference" href="#fn-deferred">Deferred</a> that will callback with the evaluated
704
+ JSON <a class="footnote-reference" href="#id10" id="id6" name="id6">[4]</a> response upon successful <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt></dd>
705
+ <dt><em>Availability</em>:</dt>
706
+ <dd>Available in MochiKit 1.3.1+</dd>
707
+ </dl>
708
+ </blockquote>
709
+ <p>
710
+ <a name="fn-sendxmlhttprequest"></a>
711
+ <a class="mochidef reference" href="#fn-sendxmlhttprequest">sendXMLHttpRequest(req[, sendContent])</a>:</p>
712
+ <blockquote>
713
+ <p>Set an <tt class="docutils literal"><span class="pre">onreadystatechange</span></tt> handler on an <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt>
714
+ object and send it off. Will return a cancellable
715
+ <a class="mochiref reference" href="#fn-deferred">Deferred</a> that will callback on success.</p>
716
+ <p>Note that only <tt class="docutils literal"><span class="pre">200</span></tt> (OK), <tt class="docutils literal"><span class="pre">201</span></tt> (CREATED),
717
+ <tt class="docutils literal"><span class="pre">204</span></tt> (NO CONTENT) and <tt class="docutils literal"><span class="pre">304</span></tt> (NOT MODIFIED) are considered
718
+ success codes. All other status codes will
719
+ result in an errback with an <tt class="docutils literal"><span class="pre">XMLHttpRequestError</span></tt>.</p>
720
+ <dl class="docutils">
721
+ <dt><tt class="docutils literal"><span class="pre">req</span></tt>:</dt>
722
+ <dd>An preconfigured <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> object (open has been
723
+ called).</dd>
724
+ <dt><tt class="docutils literal"><span class="pre">sendContent</span></tt>:</dt>
725
+ <dd>Optional string or DOM content to send over the
726
+ <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt>.</dd>
727
+ <dt><em>returns</em>:</dt>
728
+ <dd><a class="mochiref reference" href="#fn-deferred">Deferred</a> that will callback with the
729
+ <tt class="docutils literal"><span class="pre">XMLHttpRequest</span></tt> instance on success.</dd>
730
+ <dt><em>Availability</em>:</dt>
731
+ <dd>Available in MochiKit 1.3.1+. Support for 201 and 204 were added in
732
+ MochiKit 1.4.</dd>
733
+ </dl>
734
+ </blockquote>
735
+ <p>
736
+ <a name="fn-succeed"></a>
737
+ <a class="mochidef reference" href="#fn-succeed">succeed([result])</a>:</p>
738
+ <blockquote>
739
+ <p>Return a <a class="mochiref reference" href="#fn-deferred">Deferred</a> that has already had
740
+ <tt class="docutils literal"><span class="pre">.callback(result)</span></tt> called.</p>
741
+ <p>This is useful when you're writing synchronous code to an
742
+ asynchronous interface: i.e., some code is calling you expecting a
743
+ <a class="mochiref reference" href="#fn-deferred">Deferred</a> result, but you don't actually need to do
744
+ anything asynchronous. Just return <tt class="docutils literal"><span class="pre">succeed(theResult)</span></tt>.</p>
745
+ <p>See <tt class="docutils literal"><span class="pre">fail</span></tt> for a version of this function that uses a failing
746
+ <a class="mochiref reference" href="#fn-deferred">Deferred</a> rather than a successful one.</p>
747
+ <dl class="docutils">
748
+ <dt><tt class="docutils literal"><span class="pre">result</span></tt>:</dt>
749
+ <dd>The result to give to
750
+ <a class="mochiref reference" href="#fn-deferred.prototype.callback">Deferred.prototype.callback(result)</a></dd>
751
+ <dt><em>returns</em>:</dt>
752
+ <dd>a <tt class="docutils literal"><span class="pre">new</span></tt> <a class="mochiref reference" href="#fn-deferred">Deferred</a></dd>
753
+ <dt><em>Availability</em>:</dt>
754
+ <dd>Available in MochiKit 1.3.1+</dd>
755
+ </dl>
756
+ </blockquote>
757
+ <p>
758
+ <a name="fn-wait"></a>
759
+ <a class="mochidef reference" href="#fn-wait">wait(seconds[, res])</a>:</p>
760
+ <blockquote>
761
+ <p>Return a new cancellable <a class="mochiref reference" href="#fn-deferred">Deferred</a> that will
762
+ <tt class="docutils literal"><span class="pre">.callback(res)</span></tt> after at least <tt class="docutils literal"><span class="pre">seconds</span></tt> seconds have
763
+ elapsed.</p>
764
+ <dl class="docutils">
765
+ <dt><em>Availability</em>:</dt>
766
+ <dd>Available in MochiKit 1.3.1+</dd>
767
+ </dl>
768
+ </blockquote>
769
+ </div>
770
+ </div>
771
+ <div class="section">
772
+ <h1><a id="see-also" name="see-also">See Also</a></h1>
773
+ <table class="docutils footnote" frame="void" id="id7" rules="none">
774
+ <colgroup><col class="label" /><col /></colgroup>
775
+ <tbody valign="top">
776
+ <tr><td class="label"><a class="fn-backref" href="#id1" name="id7">[1]</a></td><td>AJAX, Asynchronous JavaScript and XML: <a class="reference" href="http://en.wikipedia.org/wiki/AJAX">http://en.wikipedia.org/wiki/AJAX</a></td></tr>
777
+ </tbody>
778
+ </table>
779
+ <table class="docutils footnote" frame="void" id="id8" rules="none">
780
+ <colgroup><col class="label" /><col /></colgroup>
781
+ <tbody valign="top">
782
+ <tr><td class="label"><a class="fn-backref" href="#id2" name="id8">[2]</a></td><td>Twisted, an event-driven networking framework written in Python: <a class="reference" href="http://twistedmatrix.com/">http://twistedmatrix.com/</a></td></tr>
783
+ </tbody>
784
+ </table>
785
+ <table class="docutils footnote" frame="void" id="id9" rules="none">
786
+ <colgroup><col class="label" /><col /></colgroup>
787
+ <tbody valign="top">
788
+ <tr><td class="label"><a class="fn-backref" href="#id3" name="id9">[3]</a></td><td>Twisted Deferred Reference: <a class="reference" href="http://twistedmatrix.com/projects/core/documentation/howto/defer.html">http://twistedmatrix.com/projects/core/documentation/howto/defer.html</a></td></tr>
789
+ </tbody>
790
+ </table>
791
+ <table class="docutils footnote" frame="void" id="id10" rules="none">
792
+ <colgroup><col class="label" /><col /></colgroup>
793
+ <tbody valign="top">
794
+ <tr><td class="label"><a name="id10">[4]</a></td><td><em>(<a class="fn-backref" href="#id4">1</a>, <a class="fn-backref" href="#id5">2</a>, <a class="fn-backref" href="#id6">3</a>)</em> JSON, JavaScript Object Notation: <a class="reference" href="http://json.org/">http://json.org/</a></td></tr>
795
+ </tbody>
796
+ </table>
797
+ </div>
798
+ <div class="section">
799
+ <h1><a id="authors" name="authors">Authors</a></h1>
800
+ <ul class="simple">
801
+ <li>Bob Ippolito &lt;<a class="reference" href="mailto:bob&#64;redivi.com">bob&#64;redivi.com</a>&gt;</li>
802
+ </ul>
803
+ </div>
804
+ <div class="section">
805
+ <h1><a id="copyright" name="copyright">Copyright</a></h1>
806
+ <p>Copyright 2005 Bob Ippolito &lt;<a class="reference" href="mailto:bob&#64;redivi.com">bob&#64;redivi.com</a>&gt;. This program is
807
+ dual-licensed free software; you can redistribute it and/or modify it
808
+ under the terms of the <a class="reference" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a> or the <a class="reference" href="http://www.opensource.org/licenses/afl-2.1.php">Academic Free License
809
+ v2.1</a>.</p>
810
+ </div>
811
+ </div>
812
+
813
+ </body>
814
+ </html>