redcar 0.3.1dev → 0.3.2dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. data/CHANGES +34 -1
  2. data/README.md +2 -1
  3. data/ROADMAP.md +13 -45
  4. data/Rakefile +15 -14
  5. data/bin/redcar +4 -1
  6. data/lib/plugin_manager/README.md +61 -0
  7. data/lib/plugin_manager/Rakefile +55 -0
  8. data/lib/plugin_manager/bin/plugin_manager +4 -0
  9. data/lib/plugin_manager/lib/plugin_manager.rb +107 -0
  10. data/lib/plugin_manager/lib/plugin_manager/definition_builder.rb +37 -0
  11. data/lib/plugin_manager/lib/plugin_manager/plugin.rb +9 -0
  12. data/lib/plugin_manager/lib/plugin_manager/plugin_definition.rb +50 -0
  13. data/lib/plugin_manager/plugin_manager.gemspec +33 -0
  14. data/lib/plugin_manager/spec/fixtures/error_in_definition/core/plugin.rb +2 -0
  15. data/lib/plugin_manager/spec/fixtures/error_in_plugin/core/core.rb +4 -0
  16. data/lib/plugin_manager/spec/fixtures/error_in_plugin/core/plugin.rb +7 -0
  17. data/lib/plugin_manager/spec/fixtures/example/core/core.rb +20 -0
  18. data/lib/plugin_manager/spec/fixtures/example/core/plugin.rb +7 -0
  19. data/lib/plugin_manager/spec/fixtures/example/debug/debug.rb +6 -0
  20. data/lib/plugin_manager/spec/fixtures/example/debug/plugin.rb +8 -0
  21. data/lib/plugin_manager/spec/fixtures/example/extras/extras.rb +6 -0
  22. data/lib/plugin_manager/spec/fixtures/example/extras/plugin.rb +8 -0
  23. data/lib/plugin_manager/spec/fixtures/two_versions1/core/core.rb +20 -0
  24. data/lib/plugin_manager/spec/fixtures/two_versions1/core/plugin.rb +7 -0
  25. data/lib/plugin_manager/spec/fixtures/two_versions1/core2/core.rb +20 -0
  26. data/lib/plugin_manager/spec/fixtures/two_versions1/core2/plugin.rb +7 -0
  27. data/lib/plugin_manager/spec/fixtures/two_versions2/core/core.rb +20 -0
  28. data/lib/plugin_manager/spec/fixtures/two_versions2/core/plugin.rb +7 -0
  29. data/lib/plugin_manager/spec/fixtures/two_versions2/core2/core.rb +20 -0
  30. data/lib/plugin_manager/spec/fixtures/two_versions2/core2/plugin.rb +8 -0
  31. data/lib/plugin_manager/spec/fixtures/unmet_dependencies1/core/core.rb +10 -0
  32. data/lib/plugin_manager/spec/fixtures/unmet_dependencies1/core/plugin.rb +7 -0
  33. data/lib/plugin_manager/spec/fixtures/unmet_dependencies1/debug/debug.rb +6 -0
  34. data/lib/plugin_manager/spec/fixtures/unmet_dependencies1/debug/plugin.rb +8 -0
  35. data/lib/plugin_manager/spec/fixtures/unmet_dependencies2/core/core.rb +10 -0
  36. data/lib/plugin_manager/spec/fixtures/unmet_dependencies2/core/plugin.rb +7 -0
  37. data/lib/plugin_manager/spec/fixtures/unmet_dependencies2/debug/debug.rb +6 -0
  38. data/lib/plugin_manager/spec/fixtures/unmet_dependencies2/debug/plugin.rb +8 -0
  39. data/lib/plugin_manager/spec/plugin_manager_spec.rb +208 -0
  40. data/lib/plugin_manager/spec/spec_helper.rb +3 -0
  41. data/lib/redcar.rb +8 -3
  42. data/lib/redcar/boot.rb +59 -56
  43. data/lib/redcar/installer.rb +1 -1
  44. data/lib/redcar/instance_exec.rb +25 -0
  45. data/lib/redcar/runner.rb +5 -1
  46. data/lib/redcar/usage.rb +5 -1
  47. data/plugins/application/icons/close.png +0 -0
  48. data/plugins/application/lib/application.rb +61 -28
  49. data/plugins/application/lib/application/clipboard.rb +71 -0
  50. data/plugins/application/lib/application/dialog.rb +63 -0
  51. data/plugins/application/lib/application/menu.rb +32 -1
  52. data/plugins/application/lib/application/menu/builder.rb +10 -4
  53. data/plugins/application/lib/application/menu/item.rb +16 -3
  54. data/plugins/application/lib/application/notebook.rb +5 -0
  55. data/plugins/application/lib/application/speedbar.rb +73 -0
  56. data/plugins/application/lib/application/window.rb +25 -0
  57. data/plugins/application/plugin.rb +8 -0
  58. data/plugins/application/spec/application/clipboard_spec.rb +36 -0
  59. data/plugins/application/spec/application/menu_spec.rb +73 -1
  60. data/plugins/application/spec/application/speedbar_spec.rb +46 -0
  61. data/plugins/application/spec/spec_helper.rb +1 -1
  62. data/plugins/application_swt/lib/application_swt.rb +18 -11
  63. data/plugins/application_swt/lib/application_swt/clipboard.rb +42 -0
  64. data/plugins/application_swt/lib/application_swt/dialog_adapter.rb +68 -0
  65. data/plugins/application_swt/lib/application_swt/dialogs/filter_list_dialog_controller.rb +1 -1
  66. data/plugins/application_swt/lib/application_swt/html_tab.rb +32 -0
  67. data/plugins/application_swt/lib/application_swt/menu.rb +57 -21
  68. data/plugins/application_swt/lib/application_swt/menu/binding_translator.rb +39 -2
  69. data/plugins/application_swt/lib/application_swt/notebook.rb +5 -0
  70. data/plugins/application_swt/lib/application_swt/speedbar.rb +187 -0
  71. data/plugins/application_swt/lib/application_swt/swt_wrapper.rb +24 -1
  72. data/plugins/application_swt/lib/application_swt/window.rb +33 -3
  73. data/plugins/application_swt/plugin.rb +8 -0
  74. data/plugins/application_swt/spec/spec_helper.rb +1 -1
  75. data/plugins/auto_completer/features/auto_complete.feature +65 -0
  76. data/plugins/auto_completer/features/step_definitions/auto_complete_steps.rb +4 -0
  77. data/plugins/auto_completer/features/support/env.rb +4 -0
  78. data/plugins/auto_completer/lib/auto_completer.rb +99 -0
  79. data/plugins/auto_completer/lib/auto_completer/document_controller.rb +52 -0
  80. data/plugins/auto_completer/lib/auto_completer/word_iterator.rb +48 -0
  81. data/plugins/auto_completer/lib/auto_completer/word_list.rb +40 -0
  82. data/plugins/auto_completer/plugin.rb +10 -0
  83. data/plugins/auto_indenter/lib/auto_indenter.rb +1 -1
  84. data/plugins/auto_indenter/lib/auto_indenter/document_controller.rb +1 -1
  85. data/plugins/auto_indenter/plugin.rb +8 -0
  86. data/plugins/core/lib/core.rb +6 -30
  87. data/plugins/core/lib/core/gui.rb +7 -2
  88. data/plugins/core/lib/core/logger.rb +7 -4
  89. data/plugins/core/lib/core/plugin/storage.rb +15 -5
  90. data/plugins/core/plugin.rb +7 -0
  91. data/plugins/core/spec/core/storage_spec.rb +0 -9
  92. data/plugins/edit_view/features/cut_and_paste.feature +45 -0
  93. data/plugins/edit_view/features/step_definitions/editing_steps.rb +22 -0
  94. data/plugins/edit_view/features/step_definitions/key_steps.rb +1 -1
  95. data/plugins/edit_view/features/step_definitions/notebook_steps.rb +1 -1
  96. data/plugins/edit_view/features/step_definitions/tab_steps.rb +2 -0
  97. data/plugins/edit_view/features/step_definitions/window_steps.rb +1 -1
  98. data/plugins/edit_view/features/support/env.rb +2 -2
  99. data/plugins/edit_view/lib/edit_view.rb +24 -13
  100. data/plugins/edit_view/lib/edit_view/document.rb +233 -15
  101. data/plugins/edit_view/lib/edit_view/edit_tab.rb +2 -2
  102. data/plugins/edit_view/plugin.rb +9 -0
  103. data/plugins/edit_view/spec/spec_helper.rb +1 -1
  104. data/plugins/edit_view_swt/lib/edit_view_swt.rb +37 -8
  105. data/plugins/edit_view_swt/lib/edit_view_swt/document.rb +59 -24
  106. data/plugins/edit_view_swt/lib/edit_view_swt/word_movement.rb +66 -0
  107. data/plugins/edit_view_swt/plugin.rb +9 -0
  108. data/plugins/edit_view_swt/spec/edit_view_swt/word_movement_spec.rb +29 -0
  109. data/plugins/edit_view_swt/spec/spec_helper.rb +6 -0
  110. data/plugins/html_view/assets/blueprint/ie.css +35 -0
  111. data/plugins/html_view/assets/blueprint/print.css +29 -0
  112. data/plugins/html_view/assets/blueprint/screen.css +257 -0
  113. data/plugins/html_view/assets/blueprint/src/forms.css +65 -0
  114. data/plugins/html_view/assets/blueprint/src/grid.css +281 -0
  115. data/plugins/html_view/assets/blueprint/src/grid.png +0 -0
  116. data/plugins/html_view/assets/blueprint/src/ie.css +76 -0
  117. data/plugins/html_view/assets/blueprint/src/print.css +85 -0
  118. data/plugins/html_view/assets/blueprint/src/reset.css +38 -0
  119. data/plugins/html_view/assets/blueprint/src/typography.css +106 -0
  120. data/plugins/html_view/assets/jquery-1.4.min.js +151 -0
  121. data/plugins/html_view/assets/redcar.css +12 -0
  122. data/plugins/html_view/lib/html_controller.rb +5 -0
  123. data/plugins/html_view/lib/html_view.rb +47 -0
  124. data/plugins/html_view/lib/html_view/html_tab.rb +16 -0
  125. data/plugins/html_view/plugin.rb +12 -0
  126. data/plugins/my_plugin/lib/my_plugin.rb +55 -0
  127. data/plugins/my_plugin/plugin.rb +8 -0
  128. data/plugins/plugin_manager_ui/lib/plugin_manager_ui.rb +62 -0
  129. data/plugins/plugin_manager_ui/plugin.rb +12 -0
  130. data/plugins/plugin_manager_ui/views/index.html.erb +31 -0
  131. data/plugins/project/lib/project.rb +27 -13
  132. data/plugins/project/lib/project/find_file_dialog.rb +25 -19
  133. data/plugins/project/plugin.rb +8 -0
  134. data/plugins/project/spec/spec_helper.rb +1 -1
  135. data/plugins/redcar/plugin.rb +13 -0
  136. data/plugins/redcar/redcar.rb +249 -8
  137. data/plugins/repl/lib/repl.rb +22 -14
  138. data/plugins/repl/plugin.rb +8 -0
  139. data/plugins/repl/spec/spec_helper.rb +1 -1
  140. data/plugins/tree/plugin.rb +9 -0
  141. data/plugins/tree/spec/spec_helper.rb +1 -1
  142. data/plugins/tree_view_swt/plugin.rb +9 -0
  143. data/textmate/Bundles/Apache.tmbundle/Syntaxes/Apache.plist +544 -0
  144. data/textmate/Bundles/Apache.tmbundle/Syntaxes/mod_perl.tmLanguage +120 -0
  145. data/textmate/Bundles/Blogging.tmbundle/Syntaxes/Blog___HTML__.plist +88 -0
  146. data/textmate/Bundles/Blogging.tmbundle/Syntaxes/Blog___Markdown__.plist +89 -0
  147. data/textmate/Bundles/Blogging.tmbundle/Syntaxes/Blog___Text__.plist +74 -0
  148. data/textmate/Bundles/Blogging.tmbundle/Syntaxes/Blog___Textile__.plist +74 -0
  149. data/textmate/Bundles/Bundle Development.tmbundle/Syntaxes/LanguageGrammar.tmLanguage +1829 -0
  150. data/textmate/Bundles/C Sharp.tmbundle/Syntaxes/Build.tmLanguage +142 -0
  151. data/textmate/Bundles/C Sharp.tmbundle/Syntaxes/C__.tmLanguage +524 -0
  152. data/textmate/Bundles/C++ Qt.tmbundle/Syntaxes/Qt_C____.tmLanguage +62 -0
  153. data/textmate/Bundles/C++ Qt.tmbundle/Syntaxes/qmake_Project.tmLanguage +308 -0
  154. data/textmate/Bundles/C.tmbundle/Syntaxes/C.plist +90 -48
  155. data/textmate/Bundles/Clojure.tmbundle/Syntaxes/Clojure.tmLanguage +427 -0
  156. data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/Cucumber_Plain_Text_Feature.tmLanguage +106 -13
  157. data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/Cucumber_Steps.tmLanguage +177 -2
  158. data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/plaintext_template.erb +109 -17
  159. data/textmate/Bundles/D.tmbundle/Syntaxes/D.tmLanguage +908 -0
  160. data/textmate/Bundles/Diff.tmbundle/Syntaxes/Diff.plist +229 -0
  161. data/textmate/Bundles/DokuWiki.tmbundle/Syntaxes/DokuWiki.tmLanguage +649 -0
  162. data/textmate/Bundles/F-Script.tmbundle/Syntaxes/F__Script.plist +219 -0
  163. data/textmate/Bundles/Haskell.tmbundle/Syntaxes/Haskell.plist +646 -0
  164. data/textmate/Bundles/Haskell.tmbundle/Syntaxes/Literate_Haskell.plist +90 -0
  165. data/textmate/Bundles/Io.tmbundle/Syntaxes/Io.plist +225 -0
  166. data/textmate/Bundles/JSON.tmbundle/Syntaxes/JSON.tmLanguage +285 -0
  167. data/textmate/Bundles/JavaScript Prototype & Script_aculo_us.tmbundle/Syntaxes/JavaScript____Prototype.tmLanguage +193 -0
  168. data/textmate/Bundles/JavaScript Prototype & Script_aculo_us.tmbundle/Syntaxes/JavaScript____Prototype_Bracketed.tmLanguage +394 -0
  169. data/textmate/Bundles/JavaScript jQuery.tmbundle/Syntaxes/jQuery___JavaScript__.tmLanguage +440 -0
  170. data/textmate/Bundles/JavaScript.tmbundle/Syntaxes/JavaScript.plist +712 -0
  171. data/textmate/Bundles/Latex.tmbundle/Syntaxes/Bibtex.plist +406 -0
  172. data/textmate/Bundles/Latex.tmbundle/Syntaxes/LaTeX.plist +1601 -0
  173. data/textmate/Bundles/Latex.tmbundle/Syntaxes/LaTeX_Beamer.plist +106 -0
  174. data/textmate/Bundles/Latex.tmbundle/Syntaxes/LaTeX_Log.plist +141 -0
  175. data/textmate/Bundles/Latex.tmbundle/Syntaxes/LaTeX_Memoir.tmLanguage +165 -0
  176. data/textmate/Bundles/Latex.tmbundle/Syntaxes/TeX.plist +246 -0
  177. data/textmate/Bundles/Latex.tmbundle/Syntaxes/TeX_Math.plist +132 -0
  178. data/textmate/Bundles/Lisp.tmbundle/Syntaxes/Lisp.plist +160 -0
  179. data/textmate/Bundles/Makefile.tmbundle/Syntaxes/Makefile.plist +103 -0
  180. data/textmate/Bundles/Markdown.tmbundle/Syntaxes/Markdown.plist +1192 -0
  181. data/textmate/Bundles/Markdown.tmbundle/Syntaxes/MultiMarkdown.tmLanguage +80 -0
  182. data/textmate/Bundles/PHP.tmbundle/Syntaxes/PHP.plist +3481 -0
  183. data/textmate/Bundles/Perl HTML-Template.tmbundle/Syntaxes/Perl_HTML__Template.tmLanguage +217 -0
  184. data/textmate/Bundles/Perl Template Toolkit.tmbundle/Syntaxes/HTML___Template_Toolkit__.tmLanguage +339 -0
  185. data/textmate/Bundles/Postscript.tmbundle/Syntaxes/Postscript.tmLanguage +321 -0
  186. data/textmate/Bundles/Processing.tmbundle/Syntaxes/Processing.plist +296 -0
  187. data/textmate/Bundles/Property List.tmbundle/Syntaxes/Property_List.tmLanguage +1650 -0
  188. data/textmate/Bundles/Python Django Templates.tmbundle/Syntaxes/HTML___Django__.tmLanguage +104 -0
  189. data/textmate/Bundles/Python Django.tmbundle/Syntaxes/Python_Django.tmLanguage +57 -0
  190. data/textmate/Bundles/Python.tmbundle/Syntaxes/Python.tmLanguage +3016 -0
  191. data/textmate/Bundles/Python.tmbundle/Syntaxes/Regular_Expressions___Python__.tmLanguage +299 -0
  192. data/textmate/Bundles/Rez.tmbundle/Syntaxes/Rez.plist +219 -0
  193. data/textmate/Bundles/Ruby Haml.tmbundle/Syntaxes/Ruby_Haml.tmLanguage +403 -0
  194. data/textmate/Bundles/Ruby RSpec.tmbundle/Syntaxes/RSpec.tmLanguage +142 -0
  195. data/textmate/Bundles/Ruby.tmbundle/Syntaxes/Ruby.plist +139 -49
  196. data/textmate/Bundles/SQL.tmbundle/Syntaxes/SQL.plist +705 -0
  197. data/textmate/Bundles/SSH-Config.tmbundle/Syntaxes/SSH__Config.tmLanguage +88 -0
  198. data/textmate/Bundles/Scala.tmbundle/Syntaxes/Scala.tmLanguage +609 -0
  199. data/textmate/Bundles/Scala.tmbundle/Syntaxes/Scala_Properties.tmLanguage +54 -0
  200. data/textmate/Bundles/ShellScript.tmbundle/Syntaxes/Shell__Unix__Generic.plist +1855 -0
  201. data/textmate/Bundles/Tabular.tmbundle/Syntaxes/CSV.tmLanguage +178 -0
  202. data/textmate/Bundles/Tabular.tmbundle/Syntaxes/TSV.tmLanguage +135 -0
  203. data/textmate/Bundles/TextMate.tmbundle/Syntaxes/Regular_Expressions___Oniguruma__.tmLanguage +295 -0
  204. data/textmate/Bundles/TextMate.tmbundle/Syntaxes/Release_Notes.tmLanguage +126 -0
  205. data/textmate/Bundles/Textile.tmbundle/Syntaxes/Textile.plist +490 -0
  206. data/textmate/Bundles/Thrift.tmbundle/Syntaxes/Thrift.tmLanguage +1024 -0
  207. data/textmate/Bundles/XML.tmbundle/Syntaxes/XML.plist +576 -0
  208. data/textmate/Bundles/XML.tmbundle/Syntaxes/XSL.plist +157 -0
  209. data/textmate/Bundles/YAML.tmbundle/Syntaxes/YAML.plist +466 -0
  210. data/textmate/Themes/Django.tmTheme +436 -0
  211. metadata +371 -325
  212. data/config/default.yaml +0 -15
  213. data/lib/freebase2/README.txt +0 -47
  214. data/lib/freebase2/bin/default.yaml +0 -15
  215. data/lib/freebase2/bin/install.rb +0 -42
  216. data/lib/freebase2/bin/run.rb +0 -48
  217. data/lib/freebase2/lib/freebase/configuration.rb +0 -535
  218. data/lib/freebase2/lib/freebase/core.rb +0 -197
  219. data/lib/freebase2/lib/freebase/databus.rb +0 -1128
  220. data/lib/freebase2/lib/freebase/freebase.rb +0 -60
  221. data/lib/freebase2/lib/freebase/logger.rb +0 -117
  222. data/lib/freebase2/lib/freebase/plugin.rb +0 -384
  223. data/lib/freebase2/lib/freebase/properties.rb +0 -130
  224. data/lib/freebase2/lib/freebase/readers.rb +0 -328
  225. data/lib/freebase2/notes +0 -61
  226. data/lib/freebase2/plugins/raa_webrick/httpd.rb +0 -125
  227. data/lib/freebase2/plugins/raa_webrick/plugin.yaml +0 -7
  228. data/lib/freebase2/plugins/raa_webrick/web_root/test.html +0 -5
  229. data/lib/freebase2/plugins/raa_webrick/webserver.yaml +0 -6
  230. data/lib/freebase2/plugins/raa_xmlrpc4r/plugin.xml +0 -8
  231. data/lib/freebase2/plugins/raa_xmlrpc4r/rpcd.rb +0 -54
  232. data/lib/freebase2/regress/README +0 -1
  233. data/lib/little_plugger/History.txt +0 -20
  234. data/lib/little_plugger/Rakefile +0 -34
  235. data/lib/little_plugger/lib/little-plugger.rb +0 -323
  236. data/lib/little_plugger/spec/little-plugger_spec.rb +0 -26
  237. data/lib/little_plugger/spec/spec_helper.rb +0 -16
  238. data/lib/logging/History.txt +0 -240
  239. data/lib/logging/Rakefile +0 -37
  240. data/lib/logging/data/bad_logging_1.rb +0 -13
  241. data/lib/logging/data/bad_logging_2.rb +0 -21
  242. data/lib/logging/data/logging.rb +0 -42
  243. data/lib/logging/data/logging.yaml +0 -63
  244. data/lib/logging/data/simple_logging.rb +0 -13
  245. data/lib/logging/examples/appenders.rb +0 -47
  246. data/lib/logging/examples/classes.rb +0 -41
  247. data/lib/logging/examples/consolidation.rb +0 -83
  248. data/lib/logging/examples/formatting.rb +0 -51
  249. data/lib/logging/examples/hierarchies.rb +0 -73
  250. data/lib/logging/examples/layouts.rb +0 -48
  251. data/lib/logging/examples/loggers.rb +0 -29
  252. data/lib/logging/examples/names.rb +0 -43
  253. data/lib/logging/examples/simple.rb +0 -17
  254. data/lib/logging/lib/logging.rb +0 -501
  255. data/lib/logging/lib/logging/appender.rb +0 -251
  256. data/lib/logging/lib/logging/appenders.rb +0 -131
  257. data/lib/logging/lib/logging/appenders/buffering.rb +0 -168
  258. data/lib/logging/lib/logging/appenders/console.rb +0 -60
  259. data/lib/logging/lib/logging/appenders/email.rb +0 -75
  260. data/lib/logging/lib/logging/appenders/file.rb +0 -58
  261. data/lib/logging/lib/logging/appenders/growl.rb +0 -197
  262. data/lib/logging/lib/logging/appenders/io.rb +0 -69
  263. data/lib/logging/lib/logging/appenders/rolling_file.rb +0 -293
  264. data/lib/logging/lib/logging/appenders/string_io.rb +0 -68
  265. data/lib/logging/lib/logging/appenders/syslog.rb +0 -194
  266. data/lib/logging/lib/logging/config/configurator.rb +0 -188
  267. data/lib/logging/lib/logging/config/yaml_configurator.rb +0 -191
  268. data/lib/logging/lib/logging/layout.rb +0 -117
  269. data/lib/logging/lib/logging/layouts.rb +0 -47
  270. data/lib/logging/lib/logging/layouts/basic.rb +0 -32
  271. data/lib/logging/lib/logging/layouts/parseable.rb +0 -211
  272. data/lib/logging/lib/logging/layouts/pattern.rb +0 -311
  273. data/lib/logging/lib/logging/log_event.rb +0 -45
  274. data/lib/logging/lib/logging/logger.rb +0 -503
  275. data/lib/logging/lib/logging/repository.rb +0 -232
  276. data/lib/logging/lib/logging/root_logger.rb +0 -61
  277. data/lib/logging/lib/logging/stats.rb +0 -278
  278. data/lib/logging/lib/logging/utils.rb +0 -153
  279. data/lib/logging/lib/spec/logging_helper.rb +0 -34
  280. data/lib/logging/test/appenders/test_buffered_io.rb +0 -176
  281. data/lib/logging/test/appenders/test_console.rb +0 -66
  282. data/lib/logging/test/appenders/test_email.rb +0 -170
  283. data/lib/logging/test/appenders/test_file.rb +0 -95
  284. data/lib/logging/test/appenders/test_growl.rb +0 -127
  285. data/lib/logging/test/appenders/test_io.rb +0 -129
  286. data/lib/logging/test/appenders/test_rolling_file.rb +0 -200
  287. data/lib/logging/test/appenders/test_syslog.rb +0 -194
  288. data/lib/logging/test/benchmark.rb +0 -86
  289. data/lib/logging/test/config/test_configurator.rb +0 -70
  290. data/lib/logging/test/config/test_yaml_configurator.rb +0 -40
  291. data/lib/logging/test/layouts/test_basic.rb +0 -42
  292. data/lib/logging/test/layouts/test_json.rb +0 -112
  293. data/lib/logging/test/layouts/test_pattern.rb +0 -198
  294. data/lib/logging/test/layouts/test_yaml.rb +0 -121
  295. data/lib/logging/test/setup.rb +0 -44
  296. data/lib/logging/test/test_appender.rb +0 -152
  297. data/lib/logging/test/test_consolidate.rb +0 -46
  298. data/lib/logging/test/test_layout.rb +0 -110
  299. data/lib/logging/test/test_log_event.rb +0 -80
  300. data/lib/logging/test/test_logger.rb +0 -699
  301. data/lib/logging/test/test_logging.rb +0 -267
  302. data/lib/logging/test/test_repository.rb +0 -158
  303. data/lib/logging/test/test_root_logger.rb +0 -81
  304. data/lib/logging/test/test_stats.rb +0 -274
  305. data/lib/logging/test/test_utils.rb +0 -116
  306. data/plugins/application/plugin.yaml +0 -11
  307. data/plugins/application_swt/plugin.yaml +0 -11
  308. data/plugins/auto_indenter/plugin.yaml +0 -12
  309. data/plugins/core/plugin.yaml +0 -7
  310. data/plugins/edit_view/plugin.yaml +0 -14
  311. data/plugins/edit_view_swt/plugin.yaml +0 -14
  312. data/plugins/project/plugin.yaml +0 -12
  313. data/plugins/redcar/plugin.yaml +0 -18
  314. data/plugins/repl/plugin.yaml +0 -12
  315. data/plugins/tree/plugin.yaml +0 -14
  316. data/plugins/tree_view_swt/plugin.yaml +0 -14
@@ -15,6 +15,69 @@ module Redcar
15
15
  def self.save_file(window, options)
16
16
  Redcar.gui.dialog_adapter.save_file(window, options)
17
17
  end
18
+
19
+ # Show a message to the user. Requires a message and
20
+ # options can be:
21
+ #
22
+ # :type should be one of available_message_box_types
23
+ # :buttons should be one of available_message_box_button_combos
24
+ #
25
+ # It will return a symbol representing the button the user clicked on:
26
+ #
27
+ # For example:
28
+ #
29
+ # >> Application::Dialog.message_box(win, "YO!", :type => :info,
30
+ # >> :buttons => :yes_no_cancel)
31
+ # => :yes
32
+ def self.message_box(window, text, options={})
33
+ if buttons = options[:buttons] and !available_message_box_button_combos.include?(buttons)
34
+ raise "option :buttons must be in #{available_message_box_button_combos.inspect}"
35
+ end
36
+ if type = options[:type] and !available_message_box_types.include?(type)
37
+ raise "option :type must be in #{available_message_box_button_types.inspect}"
38
+ end
39
+ Redcar.gui.dialog_adapter.message_box(window, text, options)
40
+ end
41
+
42
+ # Returns the list of valid button combos that can be passed
43
+ # as an option to message_box.
44
+ def self.available_message_box_button_combos
45
+ Redcar.gui.dialog_adapter.available_message_box_button_combos
46
+ end
47
+
48
+ # Returns the list of valid message box types that can be passed
49
+ # as an option to message_box
50
+ def self.available_message_box_types
51
+ Redcar.gui.dialog_adapter.available_message_box_types
52
+ end
53
+
54
+ # Show a dialog containing a text entry box to the user, and blocks
55
+ # until they dismiss it.
56
+ #
57
+ # If a block is given, the block is considered an input validator. A return
58
+ # value of nil from the block means the value is valid, a return value
59
+ # of a String from the block means the value is invalid, and the returned
60
+ # String will be displayed as an error message.
61
+ #
62
+ # Example:
63
+ #
64
+ # Application::Dialog.input(win, "Number", "Please enter a big number", "101") do |text|
65
+ # if text.to_i > 100
66
+ # nil
67
+ # else
68
+ # "must be bigger than 100"
69
+ # end
70
+ # end
71
+ #
72
+ # The return value is a hash containing :button and :value.
73
+ def self.input(window, title, message, initial_value="", &validator)
74
+ Redcar.gui.dialog_adapter.input(window, title, message, initial_value, &validator)
75
+ end
76
+
77
+ # Shows a tool tip to the user, at the cursor location.
78
+ def self.tool_tip(window, message)
79
+ Redcar.gui.dialog_adapter.tool_tip(window, message)
80
+ end
18
81
  end
19
82
  end
20
83
  end
@@ -2,6 +2,7 @@
2
2
  module Redcar
3
3
  class Menu
4
4
  include Enumerable
5
+ include Redcar::Model
5
6
 
6
7
  attr_reader :text, :entries
7
8
 
@@ -34,9 +35,39 @@ module Redcar
34
35
  detect {|e| e.text == text and e.is_a?(Menu) }
35
36
  end
36
37
 
38
+ def entry(text)
39
+ detect {|e| e.text == text }
40
+ end
41
+
37
42
  # Append items and sub_menus using the same syntax as Menu::Builder
38
43
  def build(&block)
39
44
  Menu::Builder.new(self, &block)
40
45
  end
46
+
47
+ def ==(other)
48
+ return false unless length == other.length
49
+ return false unless text == other.text
50
+ @entries.zip(other.entries) do |here, there|
51
+ return false unless here.class == there.class and here == there
52
+ end
53
+ true
54
+ end
55
+
56
+ # Merge two Menu trees together. Modifies this Menu.
57
+ #
58
+ # @param [Menu] another Menu
59
+ def merge(other)
60
+ other.entries.each do |other_entry|
61
+ if here = entry(other_entry.text)
62
+ if here.class == other_entry.class
63
+ here.merge(other_entry)
64
+ else
65
+ @entries[@entries.index(here)] = other_entry
66
+ end
67
+ else
68
+ self << other_entry
69
+ end
70
+ end
71
+ end
41
72
  end
42
- end
73
+ end
@@ -6,7 +6,7 @@ module Redcar
6
6
  # item "Select All", SelectAllCommand
7
7
  # sub_menu "Indent" do
8
8
  # item "Increase", IncreaseIndentCommand
9
- # item "Decrease", DecreaseIndentCommand
9
+ # item("Decrease") { puts "decrease selected" }
10
10
  # end
11
11
  # end
12
12
  #
@@ -16,11 +16,17 @@ module Redcar
16
16
  # menu << Redcar::Menu::Item.new("Select All", SelectAllCommand)
17
17
  # indent_menu = Redcar::Menu.new("Indent")
18
18
  # indent_menu << Redcar::Menu::Item.new("Increase", IncreaseIndentCommand)
19
- # indent_menu << Redcar::Menu::Item.new("Decrease", DecreaseIndentCommand)
19
+ # indent_menu << Redcar::Menu::Item.new("Decrease") do
20
+ # puts "decrease selected"
21
+ # end
20
22
  # menu << indent_menu
21
23
  class Builder
22
24
  attr_reader :menu
23
25
 
26
+ def self.build(name=nil, &block)
27
+ new(name, &block).menu
28
+ end
29
+
24
30
  def initialize(menu_or_text=nil, &block)
25
31
  case menu_or_text
26
32
  when String, nil
@@ -34,8 +40,8 @@ module Redcar
34
40
 
35
41
  private
36
42
 
37
- def item(text, command)
38
- @current_menu << Item.new(text, command)
43
+ def item(text, command=nil, &block)
44
+ @current_menu << Item.new(text, command, &block)
39
45
  end
40
46
 
41
47
  def separator
@@ -10,10 +10,15 @@ module Redcar
10
10
 
11
11
  attr_reader :text, :command
12
12
 
13
- # Create a new Item, with the given text to display in the menu, and the
14
- # Redcar::Command that is run when the item is selected.
15
- def initialize(text, command)
13
+ # Create a new Item, with the given text to display in the menu, and
14
+ # either:
15
+ # the Redcar::Command that is run when the item is selected.
16
+ # or a block to run when the item is selected
17
+ def initialize(text, command=nil, &block)
16
18
  @text, @command = text, command
19
+ if !command & block
20
+ @command = block
21
+ end
17
22
  end
18
23
 
19
24
  # Call this to signal that the menu item has been selected by the user.
@@ -21,6 +26,14 @@ module Redcar
21
26
  def selected
22
27
  @command.new.run
23
28
  end
29
+
30
+ def merge(other)
31
+ @command = other.command
32
+ end
33
+
34
+ def ==(other)
35
+ text == other.text and command == other.command
36
+ end
24
37
  end
25
38
  end
26
39
  end
@@ -99,6 +99,11 @@ module Redcar
99
99
  notify_listeners(:focussed_tab_changed, tab)
100
100
  end
101
101
  end
102
+ @tab_handlers[tab] << tab.add_listener(:selection_changed) do
103
+ if tab == focussed_tab
104
+ notify_listeners(:focussed_tab_selection_changed, tab)
105
+ end
106
+ end
102
107
  end
103
108
  end
104
109
  end
@@ -0,0 +1,73 @@
1
+
2
+ module Redcar
3
+ class Speedbar
4
+ include Redcar::Model
5
+
6
+ LabelItem = Struct.new(:text)
7
+ ToggleItem = Struct.new(:name, :text, :key, :listener, :value)
8
+ TextBoxItem = Struct.new(:name, :listener, :value)
9
+ ButtonItem = Struct.new(:text, :key, :listener)
10
+ KeyItem = Struct.new(:key, :listener)
11
+
12
+ attr_reader :__items, :__context
13
+
14
+ def initialize(context)
15
+ @__items = []
16
+ @__context = context
17
+ self.class.items.each {|i| @__items << i.clone }
18
+ end
19
+
20
+ def self.items
21
+ @items ||= []
22
+ end
23
+
24
+ def self.append_item(item)
25
+ items << item
26
+ end
27
+
28
+ def self.close_image_path
29
+ File.join(Redcar.root, %w(plugins application icons close.png))
30
+ end
31
+
32
+ def self.define_value_finder(name)
33
+ self.class_eval %Q{
34
+ def #{name}
35
+ __get_value_of(#{name.to_s.inspect})
36
+ end
37
+ }
38
+ end
39
+
40
+ def __get_value_of(name)
41
+ item = __items.detect do |i|
42
+ i.respond_to?(:name) and
43
+ i.name.to_s == name
44
+ end
45
+ unless item
46
+ raise "can't find item #{name}"
47
+ end
48
+ item.value
49
+ end
50
+
51
+ def self.label(text)
52
+ append_item LabelItem.new(text)
53
+ end
54
+
55
+ def self.toggle(name, text, key, value=false, &block)
56
+ append_item ToggleItem.new(name, text, key, block, value)
57
+ define_value_finder(name)
58
+ end
59
+
60
+ def self.textbox(name, value="", &block)
61
+ append_item TextBoxItem.new(name, block, value)
62
+ define_value_finder(name)
63
+ end
64
+
65
+ def self.button(text, key, &block)
66
+ append_item ButtonItem.new(text, key, block)
67
+ end
68
+
69
+ def self.key(key, &block)
70
+ append_item KeyItem.new(key, block)
71
+ end
72
+ end
73
+ end
@@ -11,6 +11,7 @@ module Redcar
11
11
 
12
12
  attr_reader :notebooks, :notebook_orientation
13
13
  attr_reader :treebook
14
+ attr_reader :speedbar
14
15
 
15
16
  def initialize
16
17
  Window.all << self
@@ -19,6 +20,7 @@ module Redcar
19
20
  @notebook_orientation = :horizontal
20
21
  create_notebook
21
22
  @treebook = Treebook.new
23
+ @speedbar = nil
22
24
  self.title = "Redcar"
23
25
  end
24
26
 
@@ -74,6 +76,11 @@ module Redcar
74
76
  notify_listeners(:focussed_tab_changed, tab)
75
77
  end
76
78
  end
79
+ notebook.add_listener(:focussed_tab_selection_changed) do |tab|
80
+ if notebook == focussed_notebook
81
+ notify_listeners(:focussed_tab_selection_changed, tab)
82
+ end
83
+ end
77
84
  end
78
85
 
79
86
  def close_notebook
@@ -134,6 +141,10 @@ module Redcar
134
141
  @menu = menu
135
142
  notify_listeners(:menu_changed, menu)
136
143
  end
144
+
145
+ def popup_menu(menu)
146
+ notify_listeners(:popup_menu, menu)
147
+ end
137
148
 
138
149
  # Focus the Window.
139
150
  def focus
@@ -155,5 +166,19 @@ module Redcar
155
166
  def inspect
156
167
  "#<Redcar::Window \"#{title}\">"
157
168
  end
169
+
170
+ def open_speedbar(speedbar)
171
+ if @speedbar
172
+ close_speedbar
173
+ end
174
+ @speedbar = speedbar
175
+ notify_listeners(:speedbar_opened, speedbar)
176
+ end
177
+
178
+ def close_speedbar
179
+ notify_listeners(:speedbar_closed, @speedbar)
180
+ @speedbar = nil
181
+ focussed_notebook.focussed_tab.focus
182
+ end
158
183
  end
159
184
  end
@@ -0,0 +1,8 @@
1
+
2
+ Plugin.define do
3
+ name "application"
4
+ version "1.0"
5
+ file "lib", "application"
6
+ object "Redcar::Application"
7
+ dependencies "core", ">0"
8
+ end
@@ -0,0 +1,36 @@
1
+ require File.join(File.dirname(__FILE__), "..", "spec_helper")
2
+
3
+ describe Redcar::Clipboard do
4
+ before do
5
+ @clipboard = Redcar::Clipboard.new("test")
6
+ end
7
+
8
+ it "accepts new contents" do
9
+ @clipboard << "havelock"
10
+ @clipboard.last.should == ["havelock"]
11
+ end
12
+
13
+ it "reports it's length" do
14
+ @clipboard.length.should == 0
15
+ @clipboard << "havelock"
16
+ @clipboard.length.should == 1
17
+ @clipboard << "havelock2"
18
+ @clipboard.length.should == 2
19
+ end
20
+
21
+ it "lets you get the items in reverse order" do
22
+ @clipboard << "havelock"
23
+ @clipboard << "samuel"
24
+ @clipboard << "sybil"
25
+ @clipboard[2].should == ["havelock"]
26
+ @clipboard[1].should == ["samuel"]
27
+ @clipboard[0].should == ["sybil"]
28
+ end
29
+
30
+ it "has a maximum length" do
31
+ (Redcar::Clipboard.max_length + 1).times do |i|
32
+ @clipboard << "foo#{i}"
33
+ end
34
+ @clipboard.length.should == Redcar::Clipboard.max_length
35
+ end
36
+ end
@@ -47,4 +47,76 @@ describe Redcar::Menu do
47
47
  @menu.entries.first.text.should == "Cut"
48
48
  end
49
49
  end
50
- end
50
+
51
+ def build(name=nil, &block)
52
+ Redcar::Menu::Builder.build(name, &block)
53
+ end
54
+
55
+ describe "merging Menus" do
56
+ it "adds items" do
57
+ menu = build "Plugins" do
58
+ item "Foo", 1
59
+ item "Bar", 2
60
+ end
61
+
62
+ menu2 = build "Plugins" do
63
+ item "Bar", 3
64
+ end
65
+
66
+ menu.merge(menu2)
67
+
68
+ menu.should == build("Plugins") do
69
+ item "Foo", 1
70
+ item "Bar", 3
71
+ end
72
+ end
73
+
74
+ it "adds Menus" do
75
+ menu = build "Plugins" do
76
+ sub_menu "REPL" do
77
+ end
78
+ end
79
+
80
+ menu2 = build "Plugins" do
81
+ sub_menu "My Plugin" do
82
+ end
83
+ end
84
+
85
+ menu.merge(menu2)
86
+
87
+ menu.should == build("Plugins") do
88
+ sub_menu "REPL" do
89
+ end
90
+ sub_menu "My Plugin" do
91
+ end
92
+
93
+ end
94
+ end
95
+
96
+ it "replaces a menu with an item and vice versa" do
97
+ menu = build "Plugins" do
98
+ item "My Plugin", 201
99
+ sub_menu "REPL" do
100
+ end
101
+ end
102
+
103
+ menu2 = build "Plugins" do
104
+ item "REPL", 101
105
+ sub_menu "My Plugin" do
106
+ end
107
+ end
108
+
109
+ menu.merge(menu2)
110
+
111
+ menu.should == build("Plugins") do
112
+ sub_menu "My Plugin" do
113
+ end
114
+ item "REPL", 101
115
+ end
116
+ end
117
+ end
118
+ end
119
+
120
+
121
+
122
+