redcar 0.3.1dev → 0.3.2dev

Sign up to get free protection for your applications and to get access to all the features.
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/lib/freebase2/notes DELETED
@@ -1,61 +0,0 @@
1
-
2
- FreeBASE Load Sequence
3
-
4
- FreeBASE::Core.startup {
5
- Core.new {
6
- init_bus {
7
- # - creates the master databus
8
- # - adds /system/shutdown and /logs/
9
- }
10
- load_properties {
11
- # - unless it already exists, create a properties file
12
- # from the defaults
13
- # - set up the version information
14
- }
15
- load_setup # - loads the setup.rb file if it exists (specified in the
16
- # properties file)
17
- # - gets all plugin paths from /config/plugin_path and adds
18
- # them to the Ruby path
19
- conf = Configuration.new {
20
- YAMLConfigurationReader.new {
21
- # - loads all plugin.yamls by registering with the conf obj
22
- # - they are PluginConfiguration objects
23
- }
24
- resolve_dependencies {
25
- # build forward and backward dep stars for each plugin
26
- # compute_levels for each plugin
27
- # build load list
28
- # build start list
29
- }
30
- }
31
- conf.load_plugins {
32
- # for each plugin in load list:
33
- pl = (PluginConfiguration).instance {
34
- FreeBASE::Plugin.new {
35
- # - create /plugin/plugin_name/ and add self as manager
36
- # - create properties manager (with hard coded v "1.0" ??)
37
- # - create /plugin/plugin_name/log/...
38
- # - set state = UNLOADED
39
- }
40
- }
41
- pl.load {
42
- # - transition to LOADING
43
- # - require the plugins load path
44
- # - create the plugin module
45
- # - hit module.load (this is what you can override)
46
- # - cancel the transition if there was an error
47
- }
48
- }
49
- conf.start_plugins {
50
- # for each plugin in load list:
51
- pl = (PluginConfiguration).instance # cached
52
- pl.start
53
- }
54
- # - set /system/state/all_plugins_loaded to true
55
- # - call /system/ui/messagepump
56
- }
57
- }
58
-
59
- Properties
60
-
61
-
@@ -1,125 +0,0 @@
1
- module FreeBASE
2
- module RAA
3
- ##
4
- # THe WEBrick_Plugin class provides an HTTP handling capability
5
- # for FreeBASE-based applications. Uses the WEBrick library.
6
- #
7
- class WEBrick_Plugin
8
-
9
- extend FreeBASE::StandardPlugin
10
- #include WEBrick
11
-
12
- ##
13
- # Try and load the webrick library, and fail plugin transition
14
- # if it cannot be found. Called from FreeBASE::Plugin.
15
- #
16
- # plugin:: [FreeBASE::Plugin] The plugin instance
17
- #
18
- def self.load(plugin)
19
- begin
20
- require "webrick"
21
- plugin.transition(FreeBASE::LOADED)
22
- rescue LoadError
23
- plugin.transition_failure
24
- end
25
- end
26
-
27
- ##
28
- # Start the Web server. Called from FreeBASE::Plugin.
29
- #
30
- # plugin:: [FreeBASE::Plugin] The plugin instance
31
- #
32
- def self.start(plugin)
33
- WEBrick_Plugin.new(plugin)
34
- plugin.transition(FreeBASE::RUNNING)
35
- end
36
-
37
- ##
38
- # Stop the Web server. Called from FreeBASE::Plugin.
39
- #
40
- # plugin:: [FreeBASE::Plugin] The plugin instance
41
- #
42
- def self.stop(plugin)
43
- begin
44
- plugin["service"].manager.shutdown
45
- rescue => detail
46
- end
47
- plugin.transition(FreeBASE::LOADED)
48
- end
49
-
50
- def initialize(plugin)
51
- @plugin = plugin
52
- @httpd = WEBrick::HTTPServer.new(
53
- :BindAddress => "0.0.0.0",
54
- :Port => @plugin.properties["port"].to_i,
55
- :DocumentRoot => File.join(@plugin.plugin_configuration.base_path, @plugin.properties["web_path"]),
56
- :Logger => plugin["/log"].manager)
57
- Thread.new {@httpd.start}
58
- plugin["service"].manager=@httpd
59
- plugin["/protocols/http"].manager = self
60
- plugin["/protocols/http"].subscribe self
61
- load_slots(plugin["/protocols/http"])
62
- end
63
-
64
- ##
65
- # Mount a block to handle http requests at the supplied path
66
- # path:: [String] The path to handle requests at
67
- # fileSpec:: [String=nil] The path to serve files from (must be directory)
68
- # &block:: [Block] The (optional) handler
69
- #
70
- # Usage:
71
- # db["/protocols/http"].manager.mount("/foo/bar") do |request, response|
72
- # response['content-type'] = "text/html"
73
- # response.body = "<html><body>Hello World!</html>"
74
- # end
75
- # #or
76
- # db["/protocols/http"].manager.mount("/index.html", "public_html")
77
- #
78
- def mount(path, fileSpec=nil, &block)
79
- path = "/"+path unless path[0]==47 # 47 = '/'
80
- if fileSpec
81
- @plugin["/protocols/http#{path}"].data=fileSpec
82
- else
83
- @plugin["/protocols/http#{path}"].set_proc &block
84
- end
85
- end
86
-
87
- def databus_notify(event, slot)
88
- if event == :notify_data_set
89
- @plugin.log_info << "mount path #{slot.path[15..-1]} - #{slot.data}"
90
- @httpd.mount(slot.path[15..-1], WEBrick::HTTPServlet::FileHandler, slot.data, true)
91
- elsif event == :notify_proc_set
92
- @plugin.log_info << "mount proc #{slot.path[15..-1]}"
93
- @httpd.mount_proc(slot.path[15..-1]) do |request, response|
94
- begin
95
- slot.call(request, response)
96
- rescue
97
- response['content-type'] = "text/html"
98
- response.body="<html><body><H1>Exception caught in #{slot.path[15..-1]}</h1><br><B>#{$!}</B><br>#{$!.backtrace.join('<BR>')}</html>"
99
- end
100
- end
101
- end
102
- end
103
-
104
- def load_slots(base)
105
- base.each_slot do |slot|
106
- if slot.is_proc_slot?
107
- @plugin.log_info << "mount proc #{slot.path[15..-1]}"
108
- @httpd.mount_proc(slot.path[15..-1]) do |request, response|
109
- begin
110
- slot.call(request, response)
111
- rescue
112
- response['content-type'] = "text/html"
113
- response.body="<html><body><H1>Exception caught in #{slot.path[15..-1]}</h1><br><B>#{$!}</B><br>#{$!.backtrace.join('<BR>')}</html>"
114
- end
115
- end
116
- elsif slot.is_data_slot?
117
- @plugin.log_info << "mount path #{slot.path[15..-1]} - #{slot.data}"
118
- @httpd.mount(slot.path[15..-1], WEBrick::HTTPServlet::FileHandler, slot.data, false)
119
- end
120
- load_slots(slot)
121
- end
122
- end
123
- end
124
- end
125
- end
@@ -1,7 +0,0 @@
1
- --- !ruby/object:FreeBASE::PluginConfiguration
2
- name: raa_webrick
3
- version: 1.0
4
- autoload: true
5
- require_path: raa_webrick/httpd
6
- startup_module: FreeBASE::RAA::WEBrick_Plugin
7
- properties_path: webserver.yaml
@@ -1,5 +0,0 @@
1
- <html>
2
- <body>
3
- <center><h1>Welcome to the FreeBASE WebServer plugin
4
- </body>
5
- </html>
@@ -1,6 +0,0 @@
1
- #### Properties: raa_webrick - Version: 1.0
2
- properties: ~
3
- "|":
4
- - port: 8080
5
- - web_path: "web_root"
6
- - default_url: "/index.html"
@@ -1,8 +0,0 @@
1
- --- !ruby/object:FreeBASE::PluginConfiguration
2
- name: raa_xmlrpc4r
3
- version: 1.0
4
- autoload: false
5
- require_path: raa_xmlrpc4r/rpcd
6
- startup_module: FreeBASE::RAA::XMLRPC_Plugin
7
- start_dependencies:
8
- raa_webrick: "*"
@@ -1,54 +0,0 @@
1
-
2
- require "xmlrpc/contrib/rpcservlet"
3
-
4
- module FreeBASE
5
-
6
- module RAA
7
-
8
- ##
9
- # THe XMLRPC_Plugin class provides an XML-RPC handling capability
10
- # for FreeBASE-based applications. Uses the xmlrpc4r library.
11
- #
12
- class XMLRPC_Plugin
13
- extend FreeBASE::StandardPlugin
14
-
15
- ##
16
- # Start the XML RPC service. Called from FreeBASE::Plugin.
17
- #
18
- # plugin:: [FreeBASE::Plugin] The plugin instance
19
- #
20
- def self.start(plugin)
21
- XMLRPC_Plugin.new(plugin)
22
- plugin.transition(FreeBASE::RUNNING)
23
- end
24
-
25
- def initialize(plugin)
26
- @plugin = plugin
27
- @rpcservlet = XMLRPC::Servlet.new
28
- @plugin["service"].manager = @rpcservlet
29
- plugin["/protocols/xmlrpc"].manager = self
30
- plugin["/protocols/xmlrpc"].subscribe self
31
- @plugin["/protocols/http/RPC2"].data = @rpcservlet
32
- end
33
-
34
- def bind_RPC(prefix, obj_or_signature=nil, &block)
35
- if block_given?
36
- @plugin["/protocols/xmlrpc/#{prefix}"].set_proc &block
37
- else
38
- @plugin["/protocols/xmlrpc/#{prefix}"].data = obj_or_signature
39
- end
40
- end
41
-
42
- def databus_notify(event, slot)
43
- if event == :notify_data_set
44
- @plugin.log_info << "mount rpc path #{slot.name} - #{slot.data}"
45
- @rpcservlet.add_handler(slot.name, slot.data)
46
- elsif event == :notify_proc_set
47
- @plugin.log_info << "mount rpc block #{slot.name}"
48
- @rpcservlet.add_handler(slot.name, &(slot.proc.get_proc))
49
- end
50
- end
51
-
52
- end
53
- end
54
- end
@@ -1 +0,0 @@
1
- This directory holds unit tests for the FreeBASE module
@@ -1,20 +0,0 @@
1
- == 1.1.1 / 2009-11-08
2
-
3
- * 1 bug fix
4
- * Catching script errors and standard errors when loading plugins
5
-
6
- == 1.1.0 / 2009-11-04
7
-
8
- * 2 minor enhancements
9
- * Loading the first plugin found by name (instead of the last)
10
- * Plugins can be disregarded so they will not be loaded
11
-
12
- == 1.0.1 / 2009-08-14
13
-
14
- * 1 bug fix
15
- * Using the wrong file extension for the File#basename call
16
-
17
- == 1.0.0 / 2009-07-16
18
-
19
- * 1 major enhancement
20
- * Birthday!
@@ -1,34 +0,0 @@
1
-
2
- begin
3
- require 'bones'
4
- rescue LoadError
5
- abort '### please install the "bones" gem ###'
6
- end
7
-
8
- ensure_in_path 'lib'
9
- require 'little-plugger'
10
-
11
- task :default => 'spec:specdoc'
12
- task 'gem:release' => 'spec:run'
13
-
14
- Bones {
15
- name 'little-plugger'
16
- authors 'Tim Pease'
17
- email 'tim.pease@gmail.com'
18
- url 'http://gemcutter.org/gems/little-plugger'
19
- version LittlePlugger::VERSION
20
- readme_file 'README.rdoc'
21
- ignore_file '.gitignore'
22
- rubyforge.name 'codeforpeople'
23
-
24
- spec.opts << '--color'
25
-
26
- use_gmail
27
- enable_sudo
28
-
29
- depend_on 'rspec', :development => true
30
- depend_on 'bones-git', :development => true
31
- depend_on 'bones-extras', :development => true
32
- }
33
-
34
- # EOF
@@ -1,323 +0,0 @@
1
-
2
- # == Synopsis
3
- # LittlePlugger is a module that provides Gem based plugin management.
4
- # By extending your own class or module with LittlePlugger you can easily
5
- # manage the loading and initializing of plugins provided by other gems.
6
- #
7
- # == Details
8
- # Plugins are great! They allow other developers to add functionality to
9
- # an application but relieve the application developer of the responsibility
10
- # for mainting some other developer's plugin code. LittlePlugger aims to
11
- # make it dead simple to manage external plugins as gems.
12
- #
13
- # === Naming
14
- # Every plugin managed by LittlePlugger will have a name represented as a
15
- # Symbol. This name is used to register the plugin, load the plugin file,
16
- # and manage the plugin class/module. Here are the three rules for plugin
17
- # names:
18
- #
19
- # 1) all lowercase with underscores
20
- # 2) maps to a file of the same name with an '.rb' extension
21
- # 3) converting the name to camel case yields the plugin class / module
22
- #
23
- # These rules are essentially the standard ruby practice of naming files
24
- # after the class / module the file defines.
25
- #
26
- # === Finding & Loading
27
- # Plugins are found by searching through the lib folders of all installed
28
- # gems; these gems are not necessarily loaded - just searched. If the lib
29
- # folder has a subdirectory that matches the +plugin_path+, then all ruby
30
- # files in the gem's +plugin_path+ are noted for later loading.
31
- #
32
- # A file is only loaded if the basename of the file matches one of the
33
- # registered plugin names. If no plugins are registered, then every file in
34
- # the +plugin_path+ is loaded.
35
- #
36
- # The plugin classes / modules are all expected to live in the same
37
- # namespace for a particular application. For example, all plugins for the
38
- # "Foo" application should reside in a "Foo::Plugins" namespace. This allows
39
- # the plugins to be automatically initialized by LittlePlugger.
40
- #
41
- # === Initializing
42
- # Optionally, plugins can provide an initialization method for running any
43
- # setup code needed by the plugin. This initialize method should be named as
44
- # follows: "initializer_#{plugin_name}" where the name of the plugin is
45
- # appended to the end of the initializer method name.
46
- #
47
- # If this method exists, it will be called automatically when plugins are
48
- # loaded. The order of loading of initialization is not strictly defined, so
49
- # do not rely on another plugin being initialized for your own plugin
50
- # successfully initialize.
51
- #
52
- # == Usage
53
- # LittlePlugger is used by extending your own class or module with the
54
- # LittlePlugger module.
55
- #
56
- # module Logging
57
- # extend LittlePlugger
58
- # end
59
- #
60
- # This defines a +plugin_path+ and a +plugin_module+ for our Logging module.
61
- # The +plugin_path+ is set to "logging/plugins", and therefore, the
62
- # +plugin_modlue+ is defined as Logging::Plugins. All plugins for the
63
- # Logging module should be found underneath this plugin module.
64
- #
65
- # The plugins for the Logging module are loaded and initialized by calling
66
- # the +initialize_plugins+ method.
67
- #
68
- # Logging.initialize_plugins
69
- #
70
- # If you only want to load the plugin files but not initialize the plugin
71
- # classes / modules then you can call the +load_plugins+ method.
72
- #
73
- # Logging.load_plugins
74
- #
75
- # Finally, you can get a hash of all the loaded plugins.
76
- #
77
- # Logging.plugins
78
- #
79
- # This returns a hash keyed by the plugin names with the plugin class /
80
- # module as the value.
81
- #
82
- # If you only want a certain set of plugins to be loaded, then pass the
83
- # names to the +plugin+ method.
84
- #
85
- # Logging.plugin :foo, :bar, :baz
86
- #
87
- # Now only three plugins for the Logging module will be loaded.
88
- #
89
- # === Customizing
90
- # LittlePlugger allows the use of a custom plugin path and module. These are
91
- # specified when extending with LilttlePlugger by passing the specific path
92
- # and module to LittlePlugger.
93
- #
94
- # class Hoe
95
- # extend LittlePlugger( :path => 'hoe', :module => Hoe )
96
- #
97
- # plugin(
98
- # :clean, :debug, :deps, :flay, :flog, :package,
99
- # :publish, :rcov, :signing, :test
100
- # )
101
- # end
102
- #
103
- # All ruby files found under the "hoe" directory will be treated as
104
- # plugins, and the plugin classes / modules should reside directly under the
105
- # Hoe namespace.
106
- #
107
- # We also specify a list of plugins to be loaded. Only these plugins will be
108
- # loaded and initialized by the LittlePlugger module. The +plugin+ method
109
- # can be called multiple times to add more plugins.
110
- #
111
- module LittlePlugger
112
-
113
- VERSION = '1.1.1' # :nodoc:
114
-
115
- # Returns the version string for the library.
116
- #
117
- def self.version
118
- VERSION
119
- end
120
-
121
- module ClassMethods
122
-
123
- # Add the _names_ to the list of plugins that will be loaded.
124
- #
125
- def plugin( *names )
126
- plugin_names.concat(names.map! {|n| n.to_sym})
127
- end
128
-
129
- # Add the _names_ to the list of plugins that will *not* be loaded. This
130
- # list prevents the plugin system from loading unwanted or unneeded
131
- # plugins.
132
- #
133
- # If a plugin name appears in both the 'disregard_plugin' list and the
134
- # 'plugin' list, the disregard list takes precedence; that is, the plugin
135
- # will not be loaded.
136
- #
137
- def disregard_plugin( *names )
138
- @disregard_plugin ||= []
139
- @disregard_plugin.concat(names.map! {|n| n.to_sym})
140
- @disregard_plugin
141
- end
142
- alias :disregard_plugins :disregard_plugin
143
-
144
- # Returns the array of plugin names that will be loaded. If the array is
145
- # empty, then any plugin found in the +plugin_path+ will be loaded.
146
- #
147
- def plugin_names
148
- @plugin_names ||= []
149
- end
150
-
151
- # Loads the desired plugins and returns a hash. The hash contains all
152
- # the plugin classes and modules keyed by the plugin name.
153
- #
154
- def plugins
155
- load_plugins
156
- pm = plugin_module
157
- names = pm.constants.map { |s| s.to_s }
158
- names.reject! { |n| n =~ %r/^[A-Z_]+$/ }
159
-
160
- h = {}
161
- names.each do |name|
162
- sym = ::LittlePlugger.underscore(name).to_sym
163
- next unless plugin_names.empty? or plugin_names.include? sym
164
- next if disregard_plugins.include? sym
165
- h[sym] = pm.const_get name
166
- end
167
- h
168
- end
169
-
170
- # Iterate over the loaded plugin classes and modules and call the
171
- # initialize method for each plugin. The plugin's initialize method is
172
- # defeind as +initialize_plugin_name+, where the plugin name is unique
173
- # to each plugin.
174
- #
175
- def initialize_plugins
176
- plugins.each do |name, klass|
177
- msg = "initialize_#{name}"
178
- klass.send msg if klass.respond_to? msg
179
- end
180
- end
181
-
182
- # Iterate through all installed gems looking for those that have the
183
- # +plugin_path+ in their "lib" folder, and load all .rb files found in
184
- # the gem's plugin path. Each .rb file should define one class or module
185
- # that will be used as a plugin.
186
- #
187
- def load_plugins
188
- @loaded ||= {}
189
- found = {}
190
-
191
- Gem.find_files(File.join(plugin_path, '*.rb')).each do |path|
192
- name = File.basename(path, '.rb').to_sym
193
- found[name] = path unless found.key? name
194
- end
195
-
196
- :keep_on_truckin while found.map { |name, path|
197
- next unless plugin_names.empty? or plugin_names.include? name
198
- next if disregard_plugins.include? name
199
- next if @loaded[name]
200
- begin
201
- @loaded[name] = load path
202
- rescue ScriptError, StandardError => err
203
- warn "Error loading #{path.inspect}: #{err.message}. skipping..."
204
- end
205
- }.any?
206
- end
207
-
208
- # The path to search in a gem's 'lib' folder for plugins.
209
- #
210
- def plugin_path
211
- ::LittlePlugger.default_plugin_path(self)
212
- end
213
-
214
- # This module or class where plugins are located.
215
- #
216
- def plugin_module
217
- ::LittlePlugger.default_plugin_module(plugin_path)
218
- end
219
-
220
- end # module ClassMethods
221
-
222
- # :stopdoc:
223
-
224
- # Called when another object extends itself with LittlePlugger.
225
- #
226
- def self.extended( other )
227
- other.extend ClassMethods
228
- end
229
-
230
- # Convert the given string from camel case to snake case. Method liberally
231
- # stolen from ActiveSupport.
232
- #
233
- # underscore( "FooBar" ) #=> "foo_bar"
234
- #
235
- def self.underscore( string )
236
- string.to_s.
237
- gsub(%r/::/, '/').
238
- gsub(%r/([A-Z]+)([A-Z][a-z])/,'\1_\2').
239
- gsub(%r/([a-z\d])([A-Z])/,'\1_\2').
240
- tr('-', '_').
241
- downcase
242
- end
243
-
244
- # For a given object returns a default plugin path. The path is
245
- # created by splitting the object's class name on the namespace separator
246
- # "::" and converting each part of the namespace into an underscored
247
- # string (see the +underscore+ method). The strings are then joined using
248
- # the File#join method to give a filesystem path. Appended to this path is
249
- # the 'plugins' directory.
250
- #
251
- # default_plugin_path( FooBar::Baz ) #=> "foo_bar/baz/plugins"
252
- #
253
- def self.default_plugin_path( obj )
254
- obj = obj.class unless obj.is_a? Module
255
- File.join(underscore(obj.name), 'plugins')
256
- end
257
-
258
- # For a given path returns the class or module corresponding to the
259
- # path. This method assumes a correspondence between directory names and
260
- # Ruby namespaces.
261
- #
262
- # default_plugin_module( "foo_bar/baz/plugins" ) #=> FooBar::Baz::Plugins
263
- #
264
- # This method will fail if any of the namespaces have not yet been
265
- # defined.
266
- #
267
- def self.default_plugin_module( path )
268
- path.split(File::SEPARATOR).inject(Object) do |mod, const|
269
- const = const.split('_').map { |s| s.capitalize }.join
270
- mod.const_get const
271
- end
272
- end
273
- # :startdoc:
274
-
275
- end # module LittlePlugger
276
-
277
-
278
- module Kernel
279
-
280
- # call-seq:
281
- # LittlePlugger( opts = {} )
282
- #
283
- # This method allows the user to override some of LittlePlugger's default
284
- # settings when mixed into a module or class.
285
- #
286
- # See the "Customizing" section of the LittlePlugger documentation for an
287
- # example of how this method is used.
288
- #
289
- # ==== Options
290
- #
291
- # * :path <String>
292
- # The default plugin path. Defaults to "module_name/plugins".
293
- #
294
- # * :module <Module>
295
- # The module where plugins will be loaded. Defaults to
296
- # ModuleName::Plugins.
297
- #
298
- # * :plugins <Array>
299
- # The array of default plugins to load. Only the plugins listed in this
300
- # array will be loaded by LittlePlugger.
301
- #
302
- def LittlePlugger( opts = {} )
303
- return ::LittlePlugger::ClassMethods if opts.empty?
304
- Module.new {
305
- include ::LittlePlugger::ClassMethods
306
-
307
- if opts.key?(:path)
308
- eval %Q{def plugin_path() #{opts[:path].to_s.inspect} end}
309
- end
310
-
311
- if opts.key?(:module)
312
- eval %Q{def plugin_module() #{opts[:module].name} end}
313
- end
314
-
315
- if opts.key?(:plugins)
316
- plugins = Array(opts[:plugins]).map {|val| val.to_sym.inspect}.join(',')
317
- eval %Q{def plugin_names() @plugin_names ||= [#{plugins}] end}
318
- end
319
- }
320
- end
321
- end # module Kernel
322
-
323
- # EOF