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
data/CHANGES CHANGED
@@ -1,7 +1,40 @@
1
1
 
2
- Version 0.3.1dev (9 Jan 2010)
2
+ Version 0.3.2dev (TBA)
3
3
  ======================
4
4
 
5
+ New features:
6
+
7
+ * Dialog API for plugins and commands to use.
8
+ * Speedbar API for plugins and commands to use (e.g. Goto Line command).
9
+ * Remembers last directory when opening a file/directory. (thanks Roger Pack)
10
+ * Word movement (alt-left, alt-right) now works as it should in an editor for
11
+ programmers.
12
+ * Very simple forward search command.
13
+ * Somewhat faster startup time.
14
+ * Nicer error message when jruby jar is missing.
15
+ * Goto Line command
16
+ * Select All and Select Line commands.
17
+ * Cut and Copy will take the line if there is no selection
18
+ * Block typing mode
19
+ * Auto completion
20
+ * HTML View, with Ruby/JavaScript interface, to write plugins in HTML+CSS+JS.
21
+ * PluginManagerUI plugin, running on the HTML View.
22
+
23
+ Internal changes:
24
+
25
+ * Ported plugins to plugin_manager gem (github.com/danlucraft/plugin_manager)
26
+ * Pure Ruby clipboard and Copy/Cut/Paste commands.
27
+
28
+ Fixes:
29
+
30
+ * The show more tabs menu in a notebook is handled properly.
31
+ * Deleting a lot of lines no longer causes the last few to lose highlighting.
32
+ * Clojure highlighting works.
33
+ * HTML colours no longer 'bleed' past the tags
34
+
35
+ Version 0.3.1dev (9 Jan 2010)
36
+ =============================
37
+
5
38
  Enhancements:
6
39
 
7
40
  * Fuzzy file finder.
data/README.md CHANGED
@@ -19,6 +19,7 @@ A pure Ruby text editor running on JRuby.
19
19
  You must have Java installed.
20
20
 
21
21
  $ sudo gem install redcar --pre
22
+ $ sudo redcar install
22
23
 
23
24
  NB the install will take a minute or so to complete as it has to download about
24
25
  15MB of jar files.
@@ -44,7 +45,7 @@ installed, and RSpec and Cucumber installed as JRuby gems.
44
45
  $ cd redcar
45
46
  $ git submodule init
46
47
  $ git submodule update
47
- $ jruby ext/extconf.rb
48
+ $ jruby bin/redcar install
48
49
  $ jruby -S rake build
49
50
 
50
51
  To run:
data/ROADMAP.md CHANGED
@@ -2,64 +2,32 @@
2
2
  Redcar JRuby Port Roadmap
3
3
  =========================
4
4
 
5
- 0.3dev - *Developer preview* - DONE
6
- -----------------------------------
7
-
8
- This will be the first JRuby release of Redcar.
9
-
10
- The features of this release are chosen to be the minimum to make Redcar self-hosting as an editor:
11
-
12
- * Syntax Highlighting (done)
13
- * File editing (done)
14
- * Multiple notebook panes (done)
15
- * Multiple windows (done)
16
- * _Basic_ project pane (done)
17
- * Auto-indenter (done)
18
- * Packaged as a gem (done)
19
- * Runs on 3 platforms (done)
20
-
21
- 0.3.1dev - *Developer preview* - DONE
22
- ------------------------------
23
-
24
- Features:
25
-
26
- * Keybindings to switch tabs (done)
27
- * Text editing stuff:
28
- - Undo/Redo (done)
29
- - Home/End (done)
30
- * Project stuff:
31
- - watches for file changes (done)
32
- - fuzzy file finder (done)
33
- * Plugins stuff:
34
- - can add to menus easily (done)
35
-
36
- More previews to add
37
- --------------------
5
+ Features still to port
6
+ -----------------------
38
7
 
8
+ * Understands tabs v. spaces
39
9
  * Tests passing on 3 platforms
40
- * Dialog library with simple DSL
41
- * Gem plugins
42
- * Per-plugin storage
43
- * HTML output from commands
44
- * Tooltip output from commands
45
10
  * Full project support
46
- * Fuzzy file finder
47
- * Speedbar returns
48
- * Embedded web server for plugins/plugin configuration
49
11
  * Snippets
50
- * Go to symbol
51
- * Autocompletion
52
12
  * Bracket matching
53
13
  * Text/Source/Ruby bundle commands ported
54
14
  * Drag and drop of tabs
55
15
  * Packaged for one-click install on 3 platforms
56
16
  * Ruby on Rails/HTML/CSS/YAML bundle commands ported
17
+ * Single instance support
57
18
 
58
- 0.4.0
59
- -----
19
+ Version 0.4.0
20
+ -------------
60
21
 
61
22
  Feature parity with Redcar 0.2.
62
23
 
24
+ And then.....
25
+ -------------
26
+
27
+ * Incremental search
28
+ * Find/Replace
29
+ * Go to symbol
30
+ * Search in project
63
31
 
64
32
 
65
33
 
data/Rakefile CHANGED
@@ -50,13 +50,14 @@ end
50
50
  desc "Run all specs and features"
51
51
  task :default => ["specs", "cucumber"]
52
52
 
53
- Spec::Rake::SpecTask.new("specs") do |t|
54
- t.spec_files = FileList[
55
- 'plugins/*/spec/*/*_spec.rb',
56
- 'plugins/*/spec/*/*/*_spec.rb',
57
- 'plugins/*/spec/*/*/*/*_spec.rb',
58
- ]
59
- t.spec_opts = ["-c"]
53
+ task :specs do
54
+ files = Dir['plugins/*/spec/*/*_spec.rb'] + Dir['plugins/*/spec/*/*/*_spec.rb'] + Dir['plugins/*/spec/*/*/*/*_spec.rb']
55
+ case Config::CONFIG["host_os"]
56
+ when "darwin"
57
+ sh("jruby -J-XstartOnFirstThread -S spec -c #{files.join(" ")} && echo 'done'")
58
+ else
59
+ sh("jruby -S spec -c #{files.join(" ")} && echo 'done'")
60
+ end
60
61
  end
61
62
 
62
63
  desc "Run features"
@@ -90,7 +91,7 @@ spec = Gem::Specification.new do |s|
90
91
 
91
92
  # Change these as appropriate
92
93
  s.name = "redcar"
93
- s.version = "0.3.1dev"
94
+ s.version = "0.3.2dev"
94
95
  s.summary = "A JRuby text editor."
95
96
  s.author = "Daniel Lucraft"
96
97
  s.email = "dan@fluentradical.com"
@@ -158,12 +159,12 @@ RELEASE_BUNDLES = %w(
158
159
  desc 'Clean up the Textmate files for packaging'
159
160
  task :clean_textmate do
160
161
  # remove unwanted bundles
161
- Dir["textmate/Bundles/*"].each do |bdir|
162
- p bdir.split("/").last
163
- unless RELEASE_BUNDLES.include?(bdir.split("/").last)
164
- FileUtils.rm_rf(bdir)
165
- end
166
- end
162
+ # Dir["textmate/Bundles/*"].each do |bdir|
163
+ # p bdir.split("/").last
164
+ # unless RELEASE_BUNDLES.include?(bdir.split("/").last)
165
+ # FileUtils.rm_rf(bdir)
166
+ # end
167
+ # end
167
168
 
168
169
  # rename files to be x-platform safe
169
170
  Dir["textmate/Bundles/*.tmbundle/{Syntaxes,Snippets,Templates}/**/*"].each do |fn|
data/bin/redcar CHANGED
@@ -3,10 +3,13 @@
3
3
  require File.join(File.dirname(__FILE__), %w(.. lib redcar))
4
4
 
5
5
  if ARGV.first == "install"
6
+ require 'redcar/installer'
7
+
6
8
  installer = Redcar::Installer.new
7
9
  installer.install
8
10
  else
9
11
  Redcar.ensure_jruby
10
- Redcar.start
12
+ Redcar.load
13
+ Redcar::Top.start
11
14
  Redcar.pump
12
15
  end
@@ -0,0 +1,61 @@
1
+
2
+ Plugin Manager
3
+ ==============
4
+
5
+ This is a plugin loader for Ruby. Features:
6
+
7
+ * dependencies
8
+ * versioning
9
+ * multiple plugin sources
10
+ * safe against plugins with broken code
11
+ * plugin code reloading
12
+
13
+ It is not tied to Rubygems or Rails. A plugin is any directory with a plugin.rb file
14
+ inside that looks like this:
15
+
16
+ Plugin.define do
17
+ name "Extras"
18
+ version "1.0"
19
+
20
+ # the file to load to load the plugin. It is expected to be an .rb
21
+ # file relative to this definition
22
+ file "extras"
23
+
24
+ # this is an object that is defined by the plugin code
25
+ object "App::Extras"
26
+
27
+ # Dependencies of the plugin
28
+ dependencies "core", ">=1.0",
29
+ "fonts", ">=0.5, <1.9",
30
+ "debug", ">0, !=0.95, < 2"
31
+ end
32
+
33
+ See the spec/fixtures/example/ directory for an example of a set of plugins.
34
+
35
+ This
36
+ directory of plugins can be loaded with:
37
+
38
+ manager = PluginManager.new
39
+ manager.add_plugin_source("spec/fixtures/example")
40
+ manager.load
41
+
42
+ The code in the appropriate plugins will be loaded and you will then have available:
43
+
44
+ # plugins that were loaded successfully
45
+ manager.loaded_plugins
46
+
47
+ # plugins that could not be loaded because of unmet dependencies,
48
+ # or because a more recent version was available.
49
+ manager.unloaded_plugins
50
+
51
+ # plugin.rb files that could not be read
52
+ manager.unreadable_definitions
53
+
54
+ # plugins that raised exceptions while being loaded
55
+ manager.plugins_with_errors
56
+
57
+
58
+ License
59
+ =======
60
+
61
+ MIT
@@ -0,0 +1,55 @@
1
+ require "rubygems"
2
+ require "rake/gempackagetask"
3
+ require "rake/rdoctask"
4
+
5
+ require "spec"
6
+ require "spec/rake/spectask"
7
+ Spec::Rake::SpecTask.new do |t|
8
+ t.spec_opts = %w(--format specdoc --colour)
9
+ t.libs = ["spec"]
10
+ end
11
+
12
+ task :default => ["spec"]
13
+
14
+ spec = Gem::Specification.new do |s|
15
+ s.name = "plugin_manager"
16
+ s.version = "1.1"
17
+ s.summary = "A Ruby plugin loader"
18
+ s.author = "Daniel Lucraft"
19
+ s.email = "dan@fluentradical.com"
20
+ s.homepage = "http://github.com/danlucraft/plugin_manager"
21
+
22
+ s.has_rdoc = true
23
+ s.extra_rdoc_files = %w(README.md)
24
+ s.rdoc_options = %w(--main README.md)
25
+
26
+ s.files = %w(README.md) + Dir.glob("{bin,spec,lib/**/*}")
27
+ s.executables = FileList["bin/**"].map { |f| File.basename(f) }
28
+ s.require_paths = ["lib"]
29
+
30
+ s.add_development_dependency("rspec")
31
+ end
32
+
33
+ # This task actually builds the gem. We also regenerate a static
34
+ # .gemspec file, which is useful if something (i.e. GitHub) will
35
+ # be automatically building a gem for this project. If you're not
36
+ # using GitHub, edit as appropriate.
37
+ Rake::GemPackageTask.new(spec) do |pkg|
38
+ pkg.gem_spec = spec
39
+
40
+ # Generate the gemspec file for github.
41
+ file = File.dirname(__FILE__) + "/#{spec.name}.gemspec"
42
+ File.open(file, "w") {|f| f << spec.to_ruby }
43
+ end
44
+
45
+ # Generate documentation
46
+ Rake::RDocTask.new do |rd|
47
+ rd.main = "README.md"
48
+ rd.rdoc_files.include("README.md", "lib/**/*.rb")
49
+ rd.rdoc_dir = "rdoc"
50
+ end
51
+
52
+ desc 'Clear out RDoc and generated packages'
53
+ task :clean => [:clobber_rdoc, :clobber_package] do
54
+ rm "#{spec.name}.gemspec"
55
+ end
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.join(File.dirname(__FILE__), "..", "lib", "plugin_manager")
4
+
@@ -0,0 +1,107 @@
1
+
2
+ $:.unshift(File.dirname(__FILE__))
3
+
4
+ require 'plugin_manager/plugin'
5
+ require 'plugin_manager/plugin_definition'
6
+ require 'plugin_manager/definition_builder'
7
+
8
+ class PluginManager
9
+ attr_reader :unreadable_definitions, :plugins_with_errors, :loaded_plugins, :unloaded_plugins
10
+
11
+ def initialize
12
+ @unloaded_plugins = []
13
+ @loaded_plugins = []
14
+ @unreadable_definitions = []
15
+ @plugins_with_errors = []
16
+ end
17
+
18
+ def plugins
19
+ @unloaded_plugins + @loaded_plugins
20
+ end
21
+
22
+ def add_plugin_source(directory)
23
+ definition_files = Dir[File.join(File.expand_path(directory), "*", "plugin.rb")]
24
+ definition_files.reject! {|f| plugins.any? {|pl| pl.definition_file == File.expand_path(f) } }
25
+ new_definitions =
26
+ definition_files.map do |file|
27
+ begin
28
+ definition = instance_eval(File.read(file))
29
+ definition.definition_file = File.expand_path(file)
30
+ definition
31
+ rescue Object => e
32
+ puts "Unreadable plugin definition: #{file}"
33
+ puts " " + e.message
34
+ puts e.backtrace.map {|l| " " + l }
35
+ @unreadable_definitions << file
36
+ nil
37
+ end
38
+ end.compact.sort_by {|p| p.name.downcase }
39
+ @unloaded_plugins += new_definitions
40
+ end
41
+
42
+ def load
43
+ previous_length = @unloaded_plugins.length + 1
44
+ while previous_length > @unloaded_plugins.length
45
+ previous_length = @unloaded_plugins.length
46
+ if plugin = next_to_load
47
+ begin
48
+ puts "[PluginManager] loading #{plugin.name}" if ENV["PLUGIN_DEBUG"]
49
+ plugin.load
50
+ @loaded_plugins << plugin
51
+ rescue Object => e
52
+ puts "Error loading plugin: #{plugin.inspect}"
53
+ puts " " + e.message
54
+ puts e.backtrace.map {|l| " " + l }
55
+ @plugins_with_errors << plugin
56
+ end
57
+ @unloaded_plugins.delete(plugin)
58
+ end
59
+ end
60
+ end
61
+
62
+ private
63
+
64
+ def next_to_load
65
+ # this ordering ensures we try the most recent version of a plugin first
66
+ remaining_plugins = @unloaded_plugins.sort_by {|pl| pl.version }.reverse
67
+
68
+ remaining_plugins.detect do |d|
69
+ next if @loaded_plugins.map {|pl| pl.name }.include?(d.name)
70
+ (d.dependencies||[]).all? do |dep|
71
+ req_name, req_ver = *dep
72
+ @loaded_plugins.detect do |d1|
73
+ d1.name == req_name and
74
+ PluginManager.compare_version(req_ver, d1.version)
75
+ end
76
+ end
77
+ end
78
+ end
79
+
80
+ def self.compare_version(required, got)
81
+ got = got.gsub(/(\.0)+$/, "")
82
+ required.split(",").all? do |req|
83
+ req = req.strip
84
+ req = req.gsub(/(\.0)+$/, "")
85
+ if md = req.match(/^(=|>|>=|<|<=|!=)?([\d\.]*)$/)
86
+ case md[1]
87
+ when ">"
88
+ got > md[2]
89
+ when ">="
90
+ got >= md[2]
91
+ when "<"
92
+ got < md[2]
93
+ when "<="
94
+ got <= md[2]
95
+ when "="
96
+ md[2] == got
97
+ when "!="
98
+ md[2] != got
99
+ end
100
+ else
101
+ puts "don't recognize version string: #{required.inspect}"
102
+ end
103
+ end
104
+ end
105
+ end
106
+
107
+
@@ -0,0 +1,37 @@
1
+
2
+ class PluginManager
3
+ class DefinitionBuilder
4
+ def initialize(&block)
5
+ @block = block
6
+ @definition = PluginDefinition.new
7
+ end
8
+
9
+ def build
10
+ instance_eval(&@block)
11
+ @definition
12
+ end
13
+
14
+ def name(value)
15
+ @definition.name = value
16
+ end
17
+
18
+ def version(value)
19
+ @definition.version = value
20
+ end
21
+
22
+ def object(value)
23
+ @definition.object_string = value
24
+ end
25
+
26
+ def file(*values)
27
+ @definition.file = values
28
+ end
29
+
30
+ def dependencies(*deps)
31
+ @definition.dependencies ||= []
32
+ deps.each_slice(2) do |name, ver|
33
+ @definition.dependencies << [name, ver]
34
+ end
35
+ end
36
+ end
37
+ end