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
@@ -0,0 +1,9 @@
1
+
2
+ class PluginManager
3
+ class Plugin
4
+ def self.define(&block)
5
+ builder = DefinitionBuilder.new(&block)
6
+ builder.build
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,50 @@
1
+
2
+ class PluginManager
3
+ class PluginDefinition
4
+ attr_accessor :name,
5
+ :version,
6
+ :object_string,
7
+ :file,
8
+ :dependencies,
9
+ :definition_file
10
+
11
+ def inspect1
12
+ "<Plugin #{name} #{version} depends:[#{(dependencies||[]).map{|dep| dep.join("")}.join(", ")}] #{required_files.length} files>"
13
+ end
14
+
15
+ def inspect
16
+ inspect1
17
+ end
18
+
19
+ def required_files
20
+ @required_files ||= []
21
+ end
22
+
23
+ def load
24
+ required_files.each {|file| $".delete(file) }
25
+ load_file = File.expand_path(File.join(File.dirname(definition_file), file))
26
+ $:.unshift(File.dirname(load_file))
27
+ new_files = log_requires do
28
+ require load_file
29
+ end
30
+ required_files.unshift(*new_files)
31
+ if object.respond_to?(:loaded)
32
+ object.loaded
33
+ end
34
+ end
35
+
36
+ def object
37
+ eval(object_string)
38
+ end
39
+
40
+ private
41
+
42
+ def log_requires
43
+ before = $".dup
44
+ yield
45
+ after = $".dup
46
+ result = after - before
47
+ result
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,33 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{plugin_manager}
5
+ s.version = "1.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Daniel Lucraft"]
9
+ s.date = %q{2010-01-17}
10
+ s.default_executable = %q{plugin_manager}
11
+ s.email = %q{dan@fluentradical.com}
12
+ s.executables = ["plugin_manager"]
13
+ s.extra_rdoc_files = ["README.md"]
14
+ s.files = ["README.md", "bin", "spec", "lib/plugin_manager", "lib/plugin_manager/definition_builder.rb", "lib/plugin_manager/plugin.rb", "lib/plugin_manager/plugin_definition.rb", "lib/plugin_manager.rb", "bin/plugin_manager"]
15
+ s.homepage = %q{http://github.com/danlucraft/plugin_manager}
16
+ s.rdoc_options = ["--main", "README.md"]
17
+ s.require_paths = ["lib"]
18
+ s.rubygems_version = %q{1.3.5}
19
+ s.summary = %q{A Ruby plugin loader}
20
+
21
+ if s.respond_to? :specification_version then
22
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
+ s.specification_version = 3
24
+
25
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
+ s.add_development_dependency(%q<rspec>, [">= 0"])
27
+ else
28
+ s.add_dependency(%q<rspec>, [">= 0"])
29
+ end
30
+ else
31
+ s.add_dependency(%q<rspec>, [">= 0"])
32
+ end
33
+ end
@@ -0,0 +1,7 @@
1
+
2
+ Plugin.define do
3
+ name "Core"
4
+ version "1.0"
5
+ object "App::Core"
6
+ file "core"
7
+ end
@@ -0,0 +1,20 @@
1
+
2
+ module App
3
+ def self.plugins
4
+ @plugins ||= []
5
+ end
6
+
7
+ class << self
8
+ attr_accessor :times_loaded
9
+ end
10
+
11
+ if self.times_loaded
12
+ self.times_loaded += 1
13
+ else
14
+ self.times_loaded = 1
15
+ end
16
+
17
+ class Core
18
+ App.plugins << :core
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+
2
+ Plugin.define do
3
+ name "Core"
4
+ version "1.0"
5
+ object "App::Core"
6
+ file "core"
7
+ end
@@ -0,0 +1,6 @@
1
+
2
+ module App
3
+ class Debug
4
+ App.plugins << :debug
5
+ end
6
+ end
@@ -0,0 +1,8 @@
1
+
2
+ Plugin.define do
3
+ name "Debug"
4
+ version "1.0"
5
+ object "App::Debug"
6
+ file File.join(File.dirname(__FILE__), %w(debug))
7
+ dependencies "Extras", ">=1.0"
8
+ end
@@ -0,0 +1,6 @@
1
+
2
+ module App
3
+ class Extras
4
+ App.plugins << :extras
5
+ end
6
+ end
@@ -0,0 +1,8 @@
1
+
2
+ Plugin.define do
3
+ name "Extras"
4
+ version "1.0"
5
+ object "App::Extras"
6
+ file File.join(File.dirname(__FILE__), %w(extras))
7
+ dependencies "Core", ">=1.0"
8
+ end
@@ -0,0 +1,20 @@
1
+
2
+ module App
3
+ def self.plugins
4
+ @plugins ||= []
5
+ end
6
+
7
+ class << self
8
+ attr_accessor :times_loaded
9
+ end
10
+
11
+ if self.times_loaded
12
+ self.times_loaded += 1
13
+ else
14
+ self.times_loaded = 1
15
+ end
16
+
17
+ class Core
18
+ App.plugins << :core
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+
2
+ Plugin.define do
3
+ name "Core"
4
+ version "1.0"
5
+ object "App::Core"
6
+ file "core"
7
+ end
@@ -0,0 +1,20 @@
1
+
2
+ module App
3
+ def self.plugins
4
+ @plugins ||= []
5
+ end
6
+
7
+ class << self
8
+ attr_accessor :times_loaded
9
+ end
10
+
11
+ if self.times_loaded
12
+ self.times_loaded += 1
13
+ else
14
+ self.times_loaded = 1
15
+ end
16
+
17
+ class Core
18
+ App.plugins << :core
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+
2
+ Plugin.define do
3
+ name "Core"
4
+ version "2.0"
5
+ object "App::Core"
6
+ file "core"
7
+ end
@@ -0,0 +1,20 @@
1
+
2
+ module App
3
+ def self.plugins
4
+ @plugins ||= []
5
+ end
6
+
7
+ class << self
8
+ attr_accessor :times_loaded
9
+ end
10
+
11
+ if self.times_loaded
12
+ self.times_loaded += 1
13
+ else
14
+ self.times_loaded = 1
15
+ end
16
+
17
+ class Core
18
+ App.plugins << :core
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+
2
+ Plugin.define do
3
+ name "Core"
4
+ version "1.0"
5
+ object "App::Core"
6
+ file "core"
7
+ end
@@ -0,0 +1,20 @@
1
+
2
+ module App
3
+ def self.plugins
4
+ @plugins ||= []
5
+ end
6
+
7
+ class << self
8
+ attr_accessor :times_loaded
9
+ end
10
+
11
+ if self.times_loaded
12
+ self.times_loaded += 1
13
+ else
14
+ self.times_loaded = 1
15
+ end
16
+
17
+ class Core
18
+ App.plugins << :core
19
+ end
20
+ end
@@ -0,0 +1,8 @@
1
+
2
+ Plugin.define do
3
+ name "Core"
4
+ version "2.0"
5
+ object "App::Core"
6
+ file "core"
7
+ dependencies "foo", "1.111"
8
+ end
@@ -0,0 +1,10 @@
1
+
2
+ module App
3
+ def self.plugins
4
+ @plugins ||= []
5
+ end
6
+
7
+ class Core
8
+ App.plugins << :core
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+
2
+ Plugin.define do
3
+ name "Core"
4
+ version "1.0"
5
+ object "App::Core"
6
+ file "core"
7
+ end
@@ -0,0 +1,6 @@
1
+
2
+ module App
3
+ class Debug
4
+ App.plugins << :debug
5
+ end
6
+ end
@@ -0,0 +1,8 @@
1
+
2
+ Plugin.define do
3
+ name "Debug"
4
+ version "1.0"
5
+ object "App::Debug"
6
+ file File.join(File.dirname(__FILE__), %w(debug))
7
+ dependencies "Extras", ">=1.0"
8
+ end
@@ -0,0 +1,10 @@
1
+
2
+ module App
3
+ def self.plugins
4
+ @plugins ||= []
5
+ end
6
+
7
+ class Core
8
+ App.plugins << :core
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+
2
+ Plugin.define do
3
+ name "Core"
4
+ version "1.0"
5
+ object "App::Core"
6
+ file "core"
7
+ end
@@ -0,0 +1,6 @@
1
+
2
+ module App
3
+ class Debug
4
+ App.plugins << :debug
5
+ end
6
+ end
@@ -0,0 +1,8 @@
1
+
2
+ Plugin.define do
3
+ name "Debug"
4
+ version "1.0"
5
+ object "App::Debug"
6
+ file File.join(File.dirname(__FILE__), %w(debug))
7
+ dependencies "Core", ">=1.1"
8
+ end
@@ -0,0 +1,208 @@
1
+
2
+ require File.join(File.dirname(__FILE__), "spec_helper")
3
+
4
+ describe PluginManager do
5
+ before do
6
+ @before_files = $".clone
7
+ if defined?(App)
8
+ App.times_loaded = 0
9
+ end
10
+ end
11
+
12
+ after do
13
+ added_files = $".clone - @before_files
14
+ added_files.each do |file|
15
+ $".delete(file)
16
+ end
17
+ end
18
+
19
+ describe "loading plugin definitions" do
20
+ before do
21
+ @manager = PluginManager.new
22
+ @manager.add_plugin_source(File.join(File.dirname(__FILE__), %w(fixtures example)))
23
+ end
24
+
25
+ it "should find plugin files inside the source" do
26
+ @manager.plugins.map do |f|
27
+ f.definition_file[/example\/(.*)\/plugin.rb/, 1]
28
+ end.sort.should == %w(core debug extras)
29
+ end
30
+
31
+ it "should load the plugin definitions" do
32
+ @manager.plugins.length.should == 3
33
+ @manager.plugins.map {|d| d.name }.should == %w(Core Debug Extras)
34
+ end
35
+ end
36
+
37
+ describe "loading plugin definitions with syntax errors in them" do
38
+ before do
39
+ @manager = PluginManager.new
40
+ @manager.add_plugin_source(File.join(File.dirname(__FILE__), %w(fixtures error_in_definition)))
41
+ end
42
+
43
+ it "should not die when loading the definition" do
44
+ @manager.plugins.length.should == 0
45
+ end
46
+
47
+ it "should report it as an error" do
48
+ @manager.unreadable_definitions.length.should == 1
49
+ @manager.unreadable_definitions.first.should ==
50
+ File.expand_path(File.join(File.dirname(__FILE__), %w(fixtures error_in_definition core plugin.rb)))
51
+ end
52
+ end
53
+
54
+ describe "loading plugins" do
55
+ before do
56
+ @manager = PluginManager.new
57
+ @manager.add_plugin_source(File.join(File.dirname(__FILE__), %w(fixtures example)))
58
+ @manager.load
59
+ end
60
+
61
+ it "should load the plugins in dependency order" do
62
+ App.plugins.should == [:core, :extras, :debug]
63
+ end
64
+
65
+ it "should record the files that were loaded" do
66
+ @manager.plugins.find {|pl| pl.name == "Core"}.required_files.length.should == 1
67
+ end
68
+ end
69
+
70
+ describe "loading plugins with errors in them" do
71
+ before do
72
+ @manager = PluginManager.new
73
+ @manager.add_plugin_source(File.join(File.dirname(__FILE__), %w(fixtures error_in_plugin)))
74
+ end
75
+
76
+ it "should not die when loading plugins" do
77
+ @manager.load
78
+ end
79
+
80
+ it "should report them as having errors" do
81
+ @manager.load
82
+ @manager.plugins_with_errors.length.should == 1
83
+ @manager.plugins_with_errors.first.name.should == "Core"
84
+ end
85
+ end
86
+
87
+ describe "loading plugins with unmet dependencies because the plugin is missing" do
88
+ before do
89
+ @manager = PluginManager.new
90
+ @manager.add_plugin_source(File.join(File.dirname(__FILE__), %w(fixtures unmet_dependencies1)))
91
+ end
92
+
93
+ it "should load the rest of the plugins ok" do
94
+ @manager.load
95
+ @manager.loaded_plugins.map {|pl| pl.name }.should == ["Core"]
96
+ end
97
+ end
98
+
99
+ describe "loading plugins with unmet dependencies because the plugin is not recent enough" do
100
+ before do
101
+ @manager = PluginManager.new
102
+ @manager.add_plugin_source(File.join(File.dirname(__FILE__), %w(fixtures unmet_dependencies2)))
103
+ end
104
+
105
+ it "should load the rest of the plugins ok" do
106
+ @manager.load
107
+ @manager.loaded_plugins.map {|pl| pl.name }.should == ["Core"]
108
+ end
109
+ end
110
+
111
+ describe "reloading plugins" do
112
+ before do
113
+ @manager = PluginManager.new
114
+ @manager.add_plugin_source(File.join(File.dirname(__FILE__), %w(fixtures example)))
115
+ @manager.load
116
+ end
117
+
118
+ it "should actually reload the code" do
119
+ @manager.loaded_plugins.find {|pl| pl.name == "Core"}.load
120
+ App.times_loaded.should == 2
121
+ end
122
+ end
123
+
124
+ describe "loading when there are multiple versions" do
125
+ before do
126
+ @manager = PluginManager.new
127
+ @manager.add_plugin_source(File.join(File.dirname(__FILE__), %w(fixtures two_versions1)))
128
+ @manager.load
129
+ end
130
+
131
+ it "should only load one version" do
132
+ @manager.loaded_plugins.length.should == 1
133
+ end
134
+
135
+ it "should load the most recent version" do
136
+ @manager.loaded_plugins.first.version.should == "2.0"
137
+ end
138
+ end
139
+
140
+ describe "loading when there are multiple versions and the most recent has unmet deps" do
141
+ before do
142
+ @manager = PluginManager.new
143
+ @manager.add_plugin_source(File.join(File.dirname(__FILE__), %w(fixtures two_versions2)))
144
+ @manager.load
145
+ end
146
+
147
+ it "should only load one version" do
148
+ @manager.loaded_plugins.length.should == 1
149
+ end
150
+
151
+ it "should load the most recent version with met dependencies" do
152
+ @manager.loaded_plugins.first.version.should == "1.0"
153
+ end
154
+ end
155
+
156
+ describe "version comparison" do
157
+ it "should return true if it is equal" do
158
+ PluginManager.compare_version("=1.0", "1.0").should be_true
159
+ end
160
+
161
+ it "should return false if it is not equal" do
162
+ PluginManager.compare_version("=2.0", "1.0").should be_false
163
+ end
164
+
165
+ it "should return true if it is bigger than" do
166
+ PluginManager.compare_version(">1.0", "2.0").should be_true
167
+ end
168
+
169
+ it "should return false if it is bigger than and not valid" do
170
+ PluginManager.compare_version(">1.0", "0.5").should be_false
171
+ end
172
+
173
+ it "should return true if it is bigger than or equal to" do
174
+ PluginManager.compare_version(">=1.0", "2.0").should be_true
175
+ PluginManager.compare_version(">=1.0", "1.0").should be_true
176
+ PluginManager.compare_version(">=1.0", "0.5").should be_false
177
+ end
178
+
179
+ it "should match against multiple requirements" do
180
+ PluginManager.compare_version(">=1.0, <3.0", "2.0").should be_true
181
+ PluginManager.compare_version(">1.0, <=3.0", "5.0").should be_false
182
+ PluginManager.compare_version(">1.0, <3.0", "0.5").should be_false
183
+ end
184
+
185
+ it "should match not equal requirements" do
186
+ PluginManager.compare_version("!=1.0", "2.0").should be_true
187
+ PluginManager.compare_version("!=1.0", "0.999").should be_true
188
+ PluginManager.compare_version("!=1.0", "1.0").should be_false
189
+ end
190
+
191
+ it "should not care about trailing 0s" do
192
+ PluginManager.compare_version("=1.0", "1.0.0").should be_true
193
+ PluginManager.compare_version("!=1.0", "1.0.0").should be_false
194
+ PluginManager.compare_version("=1.0.0", "1.0").should be_true
195
+ PluginManager.compare_version("!=1.0.0", "1.0").should be_false
196
+ PluginManager.compare_version("=2.0.1.0", "2.0.1.0.0.0").should be_true
197
+ end
198
+ end
199
+ end
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+