redcar 0.2.9dev
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.
- data/CHANGES +64 -0
- data/LICENSE +32 -0
- data/README.md +64 -0
- data/ROADMAP.md +69 -0
- data/Rakefile +223 -0
- data/bin/redcar +6 -0
- data/config/default.yaml +15 -0
- data/ext/extconf.rb +18 -0
- data/lib/freebase2/README.txt +47 -0
- data/lib/freebase2/bin/default.yaml +15 -0
- data/lib/freebase2/bin/install.rb +42 -0
- data/lib/freebase2/bin/run.rb +48 -0
- data/lib/freebase2/lib/freebase/configuration.rb +535 -0
- data/lib/freebase2/lib/freebase/core.rb +197 -0
- data/lib/freebase2/lib/freebase/databus.rb +1128 -0
- data/lib/freebase2/lib/freebase/freebase.rb +60 -0
- data/lib/freebase2/lib/freebase/logger.rb +117 -0
- data/lib/freebase2/lib/freebase/plugin.rb +384 -0
- data/lib/freebase2/lib/freebase/properties.rb +130 -0
- data/lib/freebase2/lib/freebase/readers.rb +321 -0
- data/lib/freebase2/notes +61 -0
- data/lib/freebase2/plugins/raa_webrick/httpd.rb +125 -0
- data/lib/freebase2/plugins/raa_webrick/plugin.yaml +7 -0
- data/lib/freebase2/plugins/raa_webrick/web_root/test.html +5 -0
- data/lib/freebase2/plugins/raa_webrick/webserver.yaml +6 -0
- data/lib/freebase2/plugins/raa_xmlrpc4r/plugin.xml +8 -0
- data/lib/freebase2/plugins/raa_xmlrpc4r/rpcd.rb +54 -0
- data/lib/freebase2/regress/README +1 -0
- data/lib/little_plugger/History.txt +20 -0
- data/lib/little_plugger/Rakefile +34 -0
- data/lib/little_plugger/lib/little-plugger.rb +323 -0
- data/lib/little_plugger/spec/little-plugger_spec.rb +26 -0
- data/lib/little_plugger/spec/spec_helper.rb +16 -0
- data/lib/logging/History.txt +240 -0
- data/lib/logging/Rakefile +37 -0
- data/lib/logging/data/bad_logging_1.rb +13 -0
- data/lib/logging/data/bad_logging_2.rb +21 -0
- data/lib/logging/data/logging.rb +42 -0
- data/lib/logging/data/logging.yaml +63 -0
- data/lib/logging/data/simple_logging.rb +13 -0
- data/lib/logging/examples/appenders.rb +47 -0
- data/lib/logging/examples/classes.rb +41 -0
- data/lib/logging/examples/consolidation.rb +83 -0
- data/lib/logging/examples/formatting.rb +51 -0
- data/lib/logging/examples/hierarchies.rb +73 -0
- data/lib/logging/examples/layouts.rb +48 -0
- data/lib/logging/examples/loggers.rb +29 -0
- data/lib/logging/examples/names.rb +43 -0
- data/lib/logging/examples/simple.rb +17 -0
- data/lib/logging/lib/logging.rb +501 -0
- data/lib/logging/lib/logging/appender.rb +251 -0
- data/lib/logging/lib/logging/appenders.rb +131 -0
- data/lib/logging/lib/logging/appenders/buffering.rb +168 -0
- data/lib/logging/lib/logging/appenders/console.rb +60 -0
- data/lib/logging/lib/logging/appenders/email.rb +75 -0
- data/lib/logging/lib/logging/appenders/file.rb +58 -0
- data/lib/logging/lib/logging/appenders/growl.rb +197 -0
- data/lib/logging/lib/logging/appenders/io.rb +69 -0
- data/lib/logging/lib/logging/appenders/rolling_file.rb +293 -0
- data/lib/logging/lib/logging/appenders/string_io.rb +68 -0
- data/lib/logging/lib/logging/appenders/syslog.rb +194 -0
- data/lib/logging/lib/logging/config/configurator.rb +188 -0
- data/lib/logging/lib/logging/config/yaml_configurator.rb +191 -0
- data/lib/logging/lib/logging/layout.rb +117 -0
- data/lib/logging/lib/logging/layouts.rb +47 -0
- data/lib/logging/lib/logging/layouts/basic.rb +32 -0
- data/lib/logging/lib/logging/layouts/parseable.rb +211 -0
- data/lib/logging/lib/logging/layouts/pattern.rb +311 -0
- data/lib/logging/lib/logging/log_event.rb +45 -0
- data/lib/logging/lib/logging/logger.rb +503 -0
- data/lib/logging/lib/logging/repository.rb +232 -0
- data/lib/logging/lib/logging/root_logger.rb +61 -0
- data/lib/logging/lib/logging/stats.rb +278 -0
- data/lib/logging/lib/logging/utils.rb +153 -0
- data/lib/logging/lib/spec/logging_helper.rb +34 -0
- data/lib/logging/test/appenders/test_buffered_io.rb +176 -0
- data/lib/logging/test/appenders/test_console.rb +66 -0
- data/lib/logging/test/appenders/test_email.rb +170 -0
- data/lib/logging/test/appenders/test_file.rb +95 -0
- data/lib/logging/test/appenders/test_growl.rb +127 -0
- data/lib/logging/test/appenders/test_io.rb +129 -0
- data/lib/logging/test/appenders/test_rolling_file.rb +200 -0
- data/lib/logging/test/appenders/test_syslog.rb +194 -0
- data/lib/logging/test/benchmark.rb +86 -0
- data/lib/logging/test/config/test_configurator.rb +70 -0
- data/lib/logging/test/config/test_yaml_configurator.rb +40 -0
- data/lib/logging/test/layouts/test_basic.rb +42 -0
- data/lib/logging/test/layouts/test_json.rb +112 -0
- data/lib/logging/test/layouts/test_pattern.rb +198 -0
- data/lib/logging/test/layouts/test_yaml.rb +121 -0
- data/lib/logging/test/setup.rb +44 -0
- data/lib/logging/test/test_appender.rb +152 -0
- data/lib/logging/test/test_consolidate.rb +46 -0
- data/lib/logging/test/test_layout.rb +110 -0
- data/lib/logging/test/test_log_event.rb +80 -0
- data/lib/logging/test/test_logger.rb +699 -0
- data/lib/logging/test/test_logging.rb +267 -0
- data/lib/logging/test/test_repository.rb +158 -0
- data/lib/logging/test/test_root_logger.rb +81 -0
- data/lib/logging/test/test_stats.rb +274 -0
- data/lib/logging/test/test_utils.rb +116 -0
- data/lib/redcar.rb +12 -0
- data/lib/redcar/boot.rb +105 -0
- data/lib/redcar/install.rb +97 -0
- data/lib/redcar/plist.rb +83 -0
- data/lib/redcar/ruby_extensions.rb +14 -0
- data/lib/redcar/runner.rb +32 -0
- data/lib/redcar/usage.rb +24 -0
- data/lib/regex_replace.rb +220 -0
- data/plugins/application/features/main_menu.feature +9 -0
- data/plugins/application/features/main_window.feature +8 -0
- data/plugins/application/features/step_definitions/dialog_steps.rb +5 -0
- data/plugins/application/features/step_definitions/menu_steps.rb +21 -0
- data/plugins/application/features/step_definitions/window_steps.rb +4 -0
- data/plugins/application/features/support/env.rb +32 -0
- data/plugins/application/lib/application.rb +128 -0
- data/plugins/application/lib/application/assets/file.png +0 -0
- data/plugins/application/lib/application/command.rb +70 -0
- data/plugins/application/lib/application/command/executor.rb +46 -0
- data/plugins/application/lib/application/command/history.rb +49 -0
- data/plugins/application/lib/application/dialog.rb +15 -0
- data/plugins/application/lib/application/menu.rb +27 -0
- data/plugins/application/lib/application/menu/builder.rb +51 -0
- data/plugins/application/lib/application/menu/item.rb +26 -0
- data/plugins/application/lib/application/notebook.rb +77 -0
- data/plugins/application/lib/application/sensitive.rb +57 -0
- data/plugins/application/lib/application/sensitivity.rb +78 -0
- data/plugins/application/lib/application/tab.rb +47 -0
- data/plugins/application/lib/application/tab/command.rb +5 -0
- data/plugins/application/lib/application/window.rb +139 -0
- data/plugins/application/plugin.yaml +11 -0
- data/plugins/application/spec/application/application_spec.rb +23 -0
- data/plugins/application/spec/application/command/executor_spec.rb +67 -0
- data/plugins/application/spec/application/command/history_spec.rb +49 -0
- data/plugins/application/spec/application/command_spec.rb +59 -0
- data/plugins/application/spec/application/controllers/application_controller.rb +4 -0
- data/plugins/application/spec/application/controllers/notebook_controller.rb +4 -0
- data/plugins/application/spec/application/controllers/window_controller.rb +5 -0
- data/plugins/application/spec/application/menu/builder_spec.rb +57 -0
- data/plugins/application/spec/application/menu/menu_item_spec.rb +17 -0
- data/plugins/application/spec/application/menu_spec.rb +36 -0
- data/plugins/application/spec/application/notebook_spec.rb +26 -0
- data/plugins/application/spec/application/sensitive_spec.rb +156 -0
- data/plugins/application/spec/application/window_spec.rb +24 -0
- data/plugins/application/spec/spec_helper.rb +7 -0
- data/plugins/application_swt/lib/application_swt.rb +70 -0
- data/plugins/application_swt/lib/application_swt/cucumber_patches.rb +118 -0
- data/plugins/application_swt/lib/application_swt/cucumber_runner.rb +25 -0
- data/plugins/application_swt/lib/application_swt/dialog_adapter.rb +23 -0
- data/plugins/application_swt/lib/application_swt/event_loop.rb +27 -0
- data/plugins/application_swt/lib/application_swt/menu.rb +59 -0
- data/plugins/application_swt/lib/application_swt/menu/binding_translator.rb +39 -0
- data/plugins/application_swt/lib/application_swt/notebook.rb +129 -0
- data/plugins/application_swt/lib/application_swt/notebook/drag_and_drop_listener.rb +71 -0
- data/plugins/application_swt/lib/application_swt/swt/grid_data.rb +11 -0
- data/plugins/application_swt/lib/application_swt/swt_wrapper.rb +106 -0
- data/plugins/application_swt/lib/application_swt/tab.rb +58 -0
- data/plugins/application_swt/lib/application_swt/window.rb +142 -0
- data/plugins/application_swt/plugin.yaml +11 -0
- data/plugins/application_swt/spec/application_swt/menu/binding_translator_spec.rb +45 -0
- data/plugins/application_swt/spec/application_swt/menu_spec.rb +7 -0
- data/plugins/application_swt/spec/spec_helper.rb +18 -0
- data/plugins/application_swt/vendor/swt/linux/dummy +1 -0
- data/plugins/application_swt/vendor/swt/osx/dummy +1 -0
- data/plugins/application_swt/vendor/swt/osx64/dummy +1 -0
- data/plugins/application_swt/vendor/swt/win32/dummy +1 -0
- data/plugins/core/lib/core.rb +29 -0
- data/plugins/core/lib/core/controller.rb +5 -0
- data/plugins/core/lib/core/gui.rb +87 -0
- data/plugins/core/lib/core/logger.rb +25 -0
- data/plugins/core/lib/core/model.rb +9 -0
- data/plugins/core/lib/core/observable.rb +111 -0
- data/plugins/core/lib/core/plugin.rb +5 -0
- data/plugins/core/plugin.yaml +7 -0
- data/plugins/core/spec/core/gui_spec.rb +27 -0
- data/plugins/core/spec/core/observable_spec.rb +104 -0
- data/plugins/core/spec/spec_helper.rb +4 -0
- data/plugins/edit_view/features/multiple_notebooks.feature +77 -0
- data/plugins/edit_view/features/multiple_windows.feature +48 -0
- data/plugins/edit_view/features/new_tab.feature +12 -0
- data/plugins/edit_view/features/step_definitions/key_steps.rb +48 -0
- data/plugins/edit_view/features/step_definitions/notebook_steps.rb +60 -0
- data/plugins/edit_view/features/step_definitions/tab_steps.rb +55 -0
- data/plugins/edit_view/features/step_definitions/window_steps.rb +80 -0
- data/plugins/edit_view/features/support/env.rb +66 -0
- data/plugins/edit_view/lib/edit_view.rb +76 -0
- data/plugins/edit_view/lib/edit_view/command.rb +6 -0
- data/plugins/edit_view/lib/edit_view/document.rb +63 -0
- data/plugins/edit_view/lib/edit_view/edit_tab.rb +29 -0
- data/plugins/edit_view/lib/edit_view/mirror.rb +42 -0
- data/plugins/edit_view/plugin.yaml +14 -0
- data/plugins/edit_view/spec/edit_view/document_spec.rb +77 -0
- data/plugins/edit_view/spec/spec_helper.rb +4 -0
- data/plugins/edit_view_swt/lib/edit_view_swt.rb +170 -0
- data/plugins/edit_view_swt/lib/edit_view_swt/document.rb +31 -0
- data/plugins/edit_view_swt/lib/edit_view_swt/edit_tab.rb +33 -0
- data/plugins/edit_view_swt/plugin.yaml +14 -0
- data/plugins/edit_view_swt/vendor/dummy +1 -0
- data/plugins/edit_view_swt/vendor/java-mateview.rb +12 -0
- data/plugins/project/features/fixtures/winter.txt +1 -0
- data/plugins/project/features/open_and_save_files.feature +22 -0
- data/plugins/project/features/step_definitions/file_steps.rb +24 -0
- data/plugins/project/features/support/env.rb +15 -0
- data/plugins/project/lib/project.rb +79 -0
- data/plugins/project/lib/project/dir_mirror.rb +53 -0
- data/plugins/project/lib/project/file_mirror.rb +70 -0
- data/plugins/project/plugin.yaml +12 -0
- data/plugins/project/spec/project/dir_mirror_spec.rb +76 -0
- data/plugins/project/spec/project/file_mirror_spec.rb +78 -0
- data/plugins/project/spec/spec_helper.rb +4 -0
- data/plugins/redcar/plugin.yaml +20 -0
- data/plugins/redcar/redcar.rb +166 -0
- data/plugins/repl/lib/repl.rb +44 -0
- data/plugins/repl/lib/repl/internal_mirror.rb +98 -0
- data/plugins/repl/plugin.yaml +12 -0
- data/plugins/repl/spec/repl/internal_mirror_spec.rb +147 -0
- data/plugins/repl/spec/spec_helper.rb +4 -0
- data/plugins/tree_view/lib/tree_view.rb +7 -0
- data/plugins/tree_view/lib/tree_view/mirror.rb +74 -0
- data/plugins/tree_view/plugin.yaml +14 -0
- data/plugins/tree_view/spec/spec_helper.rb +4 -0
- data/plugins/tree_view_swt/lib/tree_view_swt.rb +5 -0
- data/plugins/tree_view_swt/plugin.yaml +14 -0
- data/textmate/Bundles/C.tmbundle/Snippets/010_main_______main__.plist +20 -0
- data/textmate/Bundles/C.tmbundle/Snippets/030_for_int_loop___fori__.plist +19 -0
- data/textmate/Bundles/C.tmbundle/Snippets/Include_header_once_only_guard.plist +28 -0
- data/textmate/Bundles/C.tmbundle/Snippets/Typedef.tmSnippet +16 -0
- data/textmate/Bundles/C.tmbundle/Snippets/__1_begin_________1_end_______beginend__.plist +16 -0
- data/textmate/Bundles/C.tmbundle/Snippets/__endif.plist +17 -0
- data/textmate/Bundles/C.tmbundle/Snippets/__ifndef__________define__________endif.tmSnippet +18 -0
- data/textmate/Bundles/C.tmbundle/Snippets/__include________inc__.plist +16 -0
- data/textmate/Bundles/C.tmbundle/Snippets/__pragma_mark___mark__.plist +21 -0
- data/textmate/Bundles/C.tmbundle/Snippets/class______class__.plist +24 -0
- data/textmate/Bundles/C.tmbundle/Snippets/do___while_loop___do__.plist +18 -0
- data/textmate/Bundles/C.tmbundle/Snippets/fprintf_______.tmSnippet +16 -0
- data/textmate/Bundles/C.tmbundle/Snippets/if______if__.plist +19 -0
- data/textmate/Bundles/C.tmbundle/Snippets/namespace______namespace__.plist +20 -0
- data/textmate/Bundles/C.tmbundle/Snippets/next___include________Inc__.plist +16 -0
- data/textmate/Bundles/C.tmbundle/Snippets/printf______printf__.plist +16 -0
- data/textmate/Bundles/C.tmbundle/Snippets/read_file___readF__.plist +23 -0
- data/textmate/Bundles/C.tmbundle/Snippets/std____map___map__.plist +16 -0
- data/textmate/Bundles/C.tmbundle/Snippets/std____vector___v__.plist +16 -0
- data/textmate/Bundles/C.tmbundle/Snippets/struct.plist +19 -0
- data/textmate/Bundles/C.tmbundle/Snippets/template___typename________template__.plist +16 -0
- data/textmate/Bundles/C.tmbundle/Syntaxes/C.plist +1084 -0
- data/textmate/Bundles/C.tmbundle/Syntaxes/C____.plist +521 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/Fixed_Position_Bottom_100___wide_IE6.tmSnippet +18 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/__important_CSS_______.plist +18 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/background____color_image_repeat_attachment_position___background__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/background__attachment___scroll__fixed___background__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/background__color____color__hex___background__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/background__color____color__name___background__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/background__color____color__rgb___background__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/background__color____transparent___background__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/background__image____none___background__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/background__image____url___background__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/background__position____position___background__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/background__repeat____r__r__x__r__y__n__r___background__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border_____size_style_color___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__bottom___size_style_color___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__bottom__color___size_style_color___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__bottom__style___size_style_color___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__bottom__width___size_style_color___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__color___color___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__left___size_style_color___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__left__color___color___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__left__style___style___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__left__width___size___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__right___size_style_color___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__right__color___color___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__right__style___style___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__right__width___size___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__style___style___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__top___size_style_color___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__top__color___color___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__top__style___style___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__top__width___size___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/border__width___width___border__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/clear___value___clear__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/color____color__hex___color__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/color____color__name___color__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/color____color__rgb___color__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/cursor___type___cursor__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/cursor___url___cursor__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/direction___ltr__rtl___direction__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/display___block___display__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/display___common__types___display__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/display___inline___display__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/display___table__types___display__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/filter___AlphaImageLoader___for_IE_PNGs_____background__.plist +19 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/float___left__right__none___float__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/font_____style_variant_weight_size__line__height_font___family___font__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/font___size_font___font__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/font__family_____family___font__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/font__size___size___font__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/font__style_____normal__italic__oblique___font__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/font__variant_____normal__small__caps___font__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/font__weight___weight___font__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/letter__spacing_____length__em___letter__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/letter__spacing_____length__px___letter__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/list__style___type_position_image___list__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/list__style__image___url___list__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/list__style__position___pos___list__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/list__style__type___asian___list__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/list__style__type___marker__list__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/list__style__type___numeric___list__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/list__style__type___other___list__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/list__style__type___roman__alpha__greek___list__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/margin___T_R_B_L___margin__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/margin___V_H___margin__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/margin_____all___margin__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/margin__bottom___length___margin__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/margin__left___length___margin__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/margin__right___length___margin__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/margin__top___length___margin__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/marker__offset___auto___marker__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/marker__offset___length___marker__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/opacity_____for_Safari___FF_and_IE_____opacity__.plist +18 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/overflow___type___overflow__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/padding_____T_R_B_L___padding__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/padding_____V_H___padding__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/padding_____all___padding__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/padding__bottom___length___margin__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/padding__left___length___margin__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/padding__right___length___margin__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/padding__top___length___margin__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/position___type___position__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/properties_______________.plist +19 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/scrollbar.tmSnippet +23 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/selection.tmSnippet +20 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/text__align___left__center__right___txt__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/text__decoration___none__underline__overline__line__through__blink___text__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/text__indent___length___text__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/text__shadow___color__hex_x_y_blur___text__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/text__shadow___color__rgb_x_y_blur___text__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/text__shadow___none___text__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/text__transform___capitalize__upper__lower___text__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/text__transform___none___text__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/vertical__align___type___vertical__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/visibility___type___visibility__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/white__space____normal__pre__nowrap___white__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/word__spacing____length___word__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/word__spacing____normal___word__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Snippets/z__index___index___z__.plist +16 -0
- data/textmate/Bundles/CSS.tmbundle/Syntaxes/CSS.plist +543 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Arrow___arrow__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Backspace___backspace__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Backtab___backtab__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Command___command__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Control___control__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Delete___delete__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/DocType_HTML_4_0_Strict.plist +18 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/DocType_XHTL_1_0_Frameset.plist +18 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/DocType_XHTML_1_0_Strict.plist +18 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/DocType_XHTML_1_0_Transitional.plist +18 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/DocType_XHTML_1_1.plist +18 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Down___down__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Embed_QT_movie___movie__.plist +26 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Emphasize.tmSnippet +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Enter___enter__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Escape___escape__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Fieldset.tmSnippet +22 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/HTML________4_0_Transitional___doctype__.plist +18 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/IE_Conditional_Comment___Internet_Explorer.tmSnippet +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/IE_Conditional_Comment___Internet_Explorer_5_0_only.tmSnippet +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/IE_Conditional_Comment___Internet_Explorer_5_5_only.tmSnippet +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/IE_Conditional_Comment___Internet_Explorer_5_x.tmSnippet +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/IE_Conditional_Comment___Internet_Explorer_6_and_below.tmSnippet +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/IE_Conditional_Comment___Internet_Explorer_6_only.tmSnippet +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/IE_Conditional_Comment___Internet_Explorer_7__.tmSnippet +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/IE_Conditional_Comment___NOT_Internet_Explorer.tmSnippet +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Input_with_Label.tmSnippet +19 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Left___left__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Option.tmSnippet +18 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Option___option__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Return___return__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Right___right__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Select_Box.tmSnippet +22 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Shift___shift__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Smart_return__indent_for_tag_pairs.plist +18 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Strong.tmSnippet +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Tab___tab__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Up___up__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Wrap_Selection_In_Tag.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/Wrap_in___________________.plist +14 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML_____input__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML_____textarea__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___a_mailto_____.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___base__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___body__.plist +18 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___br_____.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___div__.plist +18 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___form__.plist +20 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___h1__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___head__.plist +20 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___link__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___meta__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___nbsp___NonBreakingSpace.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___script__.plist +18 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___script_src_____.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___style__.plist +18 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___table__.plist +19 -0
- data/textmate/Bundles/HTML.tmbundle/Snippets/XHTML___title__.plist +16 -0
- data/textmate/Bundles/HTML.tmbundle/Syntaxes/HTML.plist +962 -0
- data/textmate/Bundles/HTML.tmbundle/Templates/HTML /342/200/223 4.0 Strict/index.html" +15 -0
- data/textmate/Bundles/HTML.tmbundle/Templates/HTML /342/200/223 4.0 Strict/info.plist" +20 -0
- data/textmate/Bundles/HTML.tmbundle/Templates/HTML /342/200/224 4.0 Transitional/index.html" +15 -0
- data/textmate/Bundles/HTML.tmbundle/Templates/HTML /342/200/224 4.0 Transitional/info.plist" +20 -0
- data/textmate/Bundles/HTML.tmbundle/Templates/XHTML /342/200/223 1.0 Frameset/index.html" +16 -0
- data/textmate/Bundles/HTML.tmbundle/Templates/XHTML /342/200/223 1.0 Frameset/info.plist" +16 -0
- data/textmate/Bundles/HTML.tmbundle/Templates/XHTML /342/200/223 1.0 Strict/index.html" +16 -0
- data/textmate/Bundles/HTML.tmbundle/Templates/XHTML /342/200/223 1.0 Strict/info.plist" +16 -0
- data/textmate/Bundles/HTML.tmbundle/Templates/XHTML /342/200/223 1.0 Transitional/index.html" +16 -0
- data/textmate/Bundles/HTML.tmbundle/Templates/XHTML /342/200/223 1.0 Transitional/info.plist" +16 -0
- data/textmate/Bundles/HTML.tmbundle/Templates/XHTML /342/200/223 1.1/index.html" +15 -0
- data/textmate/Bundles/HTML.tmbundle/Templates/XHTML /342/200/223 1.1/info.plist" +16 -0
- data/textmate/Bundles/RedcarRepl.tmbundle/Syntaxes/InternalRuby.plist +54 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/060_ruby_if_else.plist +20 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/070_ruby_if.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/080_ruby_case.plist +19 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/Add_____________Marker.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/Array_new__10________i____________Arr__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/Benchmark_bmbm_______do____end.tmSnippet +19 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/Dir__________.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/Dir_glob___________do___file______end____Dir__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/File_foreach____________do___line______end____File__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/File_open________________file________.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/File_read__________.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/Hash_new______hash___key___hash__key_______________Has__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/Insert_ERb__s______________or_______________.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/Marshal_dump__obj___file______Md__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/Marshal_load__obj______Ml__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/PStore_new________.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/RDoc_documentation_block.tmSnippet +20 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/Wrap_in_Begin________Rescue________End.plist +23 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/YAML_dump_______file______Yd____.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/YAML_load__file______Yl____.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/__END__.tmSnippet +17 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/______usr__local__bin__ruby___w.plist +17 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/__yields___RDoc_comment.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/alias_method_______am__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/all________e____________all__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/any________e____________any__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/application_code_______app__.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert__________as__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_equal.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_in_delta__________asid__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_instance_of__________asio__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_kind_of__________asko__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_match__________asm__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_nil__________asn__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_no_match__________asnm__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_not_equal__________asne__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_not_nil__________asnn__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_not_same__________asns__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_nothing_raised___________________asnr__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_nothing_thrown_____________asnt__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_operator__________aso__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_raise___________________asr__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_respond_to__________asrt__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_same__________ass__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_send__________ass__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/assert_throws___________________ast__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/attr_accessor_______rw__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/attr_reader_______r__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/attr_writer_______w__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/class_______DelegateClass____initialize____end____class__.plist +24 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/class_______ParentClass____initialize____end.plist +22 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/class_______Struct____initialize____end.plist +22 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/class_______Test____Unit____TestCase____end____tc__.plist +24 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/class______self____end.tmSnippet +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/class____end____cla__.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/class____initialize____end.plist +22 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/class____instance_methods____undef____initialize____end____class__.plist +30 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/class_from_name________clafn__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/classify______e____________clas__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/collect______e____________col__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/deep_copy__________dee__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/def_delegator______defd__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/def_delegators______defds__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/def_end.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/def_method_missing____end____mm__.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/def_self____end____defs__.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/def_test_____end____t__.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/delete_if______e____________deli__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/detect______e____________det__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/directory____.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/do___obj______end___doo__.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/downto__0________n____________dow__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/each______e____________ea__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/each_byte______byte____________eab__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/each_char______chr____________eac____.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/each_cons____________group____________eac____.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/each_index______i____________eai__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/each_key______key____________eak__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/each_line______line____________eal__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/each_pair______name___val____________eap__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/each_slice______group____________eas__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/each_value______val____________eav__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/each_with_index______e___i____________eawi__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/elsif____.tmSnippet +17 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/embed_string_variable.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/extend_Forwardable____Forw__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/fetch__name________key____________fet__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/fill__range________i____________fil__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/find______e____________fin__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/find_all______e____________fina__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/flatten_once____fla__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/flunk__________fl__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/grep____pattern__________match____________gre__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/gsub________________match____________gsu__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/hash_pair_______.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/hash_pointer.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/include_Comparable_______Comp__.plist +20 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/include_Enumerable_______Enum__.plist +20 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/inject__init________mem___var____________inj__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/lambda______args____________lam__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/loop_________.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/map______e____________map__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/map_with_index______e___i____________mapwi__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/max______a___b____________max__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/min______a___b____________min__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/module____ClassMethods____end.plist +29 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/module____end.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/module____module_function____end.plist +20 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/namespace______do____end.tmSnippet +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/open____path__or__url_______w_____do___doc______end___ope__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/open_yield_block_______.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/option_parse_____________optp__.plist +43 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/partition______e____________par__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/path_from_here________.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/randomize____ran__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/reject______e____________rej__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/require___________req__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/require___tc____________ts__.plist +20 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/require_gem_______.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/results_report_______________.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/reverse_each______e____________rea__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/scan________________match____________sca__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/select______e____________sel__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/singleton_class____.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/sort______a___b____________sor__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/sort_by______e____________sorb__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/step__2________e____________ste__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/sub________________match____________sub__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/task___task_name__________dependent_____tasks___do____end.tmSnippet +19 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/times______n____________tim__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/transaction_________do____end.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/unix_filter______uni__.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/unless___unless__.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/until_____end.tmSnippet +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/untitled.plist +19 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/upto__1_0__0_0________n____________upt__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/usage_if________usai__.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/usage_unless________usau__.plist +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/when.plist +17 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/while_____end.tmSnippet +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/xmlread______.tmSnippet +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/xpath_______________.tmSnippet +18 -0
- data/textmate/Bundles/Ruby.tmbundle/Snippets/zip__enums________row____________zip__.plist +16 -0
- data/textmate/Bundles/Ruby.tmbundle/Syntaxes/Ruby.plist +2763 -0
- data/textmate/Bundles/Source.tmbundle/Snippets/Continue_line_comment.plist +35 -0
- data/textmate/Bundles/Source.tmbundle/Snippets/Escaped_Quote_Pair_____________.plist +14 -0
- data/textmate/Bundles/Source.tmbundle/Snippets/Escaped_Single_Quote_Pair_____________.plist +14 -0
- data/textmate/Bundles/Source.tmbundle/Snippets/Frame_text.plist +16 -0
- data/textmate/Bundles/Source.tmbundle/Snippets/__n.plist +16 -0
- data/textmate/Bundles/Text.tmbundle/Snippets/010_Copyright.plist +14 -0
- data/textmate/Bundles/Text.tmbundle/Snippets/Conitnue_bullet.plist +17 -0
- data/textmate/Bundles/Text.tmbundle/Snippets/Conitnue_light_bullet.plist +17 -0
- data/textmate/Bundles/Text.tmbundle/Snippets/Conitnue_star_bullet.plist +17 -0
- data/textmate/Bundles/Text.tmbundle/Snippets/Insert_ISO_date.plist +14 -0
- data/textmate/Bundles/Text.tmbundle/Snippets/Lorem_ipsum.plist +14 -0
- data/textmate/Bundles/Text.tmbundle/Syntaxes/Plain_text.plist +83 -0
- data/textmate/Bundles/Text.tmbundle/Templates/Empty file/info.plist +14 -0
- data/textmate/Bundles/Text.tmbundle/Templates/From Clipboard/info.plist +17 -0
- data/textmate/Themes/Active4D.tmTheme +407 -0
- data/textmate/Themes/All Hallow's Eve.tmTheme +277 -0
- data/textmate/Themes/Amy.tmTheme +557 -0
- data/textmate/Themes/Blackboard.tmTheme +350 -0
- data/textmate/Themes/Brilliance Black.tmTheme +2619 -0
- data/textmate/Themes/Brilliance Dull.tmTheme +2243 -0
- data/textmate/Themes/Cobalt.tmTheme +559 -0
- data/textmate/Themes/Dawn.tmTheme +437 -0
- data/textmate/Themes/Eiffel.tmTheme +439 -0
- data/textmate/Themes/Espresso Libre.tmTheme +402 -0
- data/textmate/Themes/IDLE.tmTheme +235 -0
- data/textmate/Themes/LAZY.tmTheme +291 -0
- data/textmate/Themes/Mac Classic.tmTheme +450 -0
- data/textmate/Themes/MagicWB (Amiga).tmTheme +376 -0
- data/textmate/Themes/Pastels on Dark.tmTheme +701 -0
- data/textmate/Themes/Railscasts.tmTheme +278 -0
- data/textmate/Themes/Slush & Poppies.tmTheme +336 -0
- data/textmate/Themes/SpaceCadet.tmTheme +212 -0
- data/textmate/Themes/Sunburst.tmTheme +665 -0
- data/textmate/Themes/Twilight.tmTheme +514 -0
- data/textmate/Themes/Vibrant Ink.tmTheme +447 -0
- data/textmate/Themes/Zenburnesque.tmTheme +343 -0
- data/textmate/Themes/choco.tmTheme +542 -0
- data/textmate/Themes/iPlastic.tmTheme +286 -0
- metadata +673 -0
data/bin/redcar
ADDED
data/config/default.yaml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#### Properties: Core configuration file - Version: 1.0
|
|
2
|
+
properties: ~
|
|
3
|
+
"|":
|
|
4
|
+
- config: ''
|
|
5
|
+
"|":
|
|
6
|
+
- log_file: "redcar.log"
|
|
7
|
+
- log_level: 0
|
|
8
|
+
- log_name: REDCAR
|
|
9
|
+
- plugin_path: "plugins"
|
|
10
|
+
- product_name: "Redcar"
|
|
11
|
+
- version: ''
|
|
12
|
+
"|":
|
|
13
|
+
- major: 0
|
|
14
|
+
- minor: 1
|
|
15
|
+
- release: 0
|
data/ext/extconf.rb
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# this file is invoked when the gem is installed
|
|
2
|
+
# rubygems expects it to build a gem, so we need to work around that
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
require File.join(File.dirname(__FILE__), %w(.. lib redcar install.rb))
|
|
6
|
+
|
|
7
|
+
# Zerg::Support::Gems.ensure_on_path 'zerg'
|
|
8
|
+
|
|
9
|
+
# we really shouldn't be abusing rubygems' root; then again, the Debian
|
|
10
|
+
# maintainers shouldn't be abusing the patience of Ruby developers
|
|
11
|
+
|
|
12
|
+
installation = Redcar::Install.new
|
|
13
|
+
|
|
14
|
+
installation.emulate_extension_install 'redcar_post_install'
|
|
15
|
+
installation.grab_jruby
|
|
16
|
+
installation.grab_common_jars
|
|
17
|
+
installation.grab_platform_dependencies
|
|
18
|
+
installation.grab_redcar_jars
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
FreeBASE 2.0
|
|
2
|
+
by Daniel Lucraft, based on FreeBASE 1.0 by Rich Kilmer
|
|
3
|
+
http://www.daniellucraft.com/blog
|
|
4
|
+
|
|
5
|
+
== DESCRIPTION:
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
== FEATURES/PROBLEMS:
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
== SYNOPSIS:
|
|
13
|
+
|
|
14
|
+
FIX (code sample
|
|
15
|
+
|
|
16
|
+
== REQUIREMENTS:
|
|
17
|
+
|
|
18
|
+
* Ruby
|
|
19
|
+
|
|
20
|
+
== INSTALL:
|
|
21
|
+
|
|
22
|
+
* sudo gem install freebase2 (NOT YET)
|
|
23
|
+
|
|
24
|
+
== LICENSE:
|
|
25
|
+
|
|
26
|
+
(The MIT License)
|
|
27
|
+
|
|
28
|
+
Copyright (c) 2007 FIX
|
|
29
|
+
|
|
30
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
31
|
+
a copy of this software and associated documentation files (the
|
|
32
|
+
'Software'), to deal in the Software without restriction, including
|
|
33
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
34
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
35
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
36
|
+
the following conditions:
|
|
37
|
+
|
|
38
|
+
The above copyright notice and this permission notice shall be
|
|
39
|
+
included in all copies or substantial portions of the Software.
|
|
40
|
+
|
|
41
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
42
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
43
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
44
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
45
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
46
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
47
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#### Properties: Core configuration file - Version: 1.0
|
|
2
|
+
properties: ~
|
|
3
|
+
"|":
|
|
4
|
+
- config: ''
|
|
5
|
+
"|":
|
|
6
|
+
- log_file: "freebase.log"
|
|
7
|
+
- log_level: 2
|
|
8
|
+
- log_name: FREEBASE
|
|
9
|
+
- plugin_path: "../plugins"
|
|
10
|
+
- product_name: "Freebase Example Application"
|
|
11
|
+
- version: ''
|
|
12
|
+
"|":
|
|
13
|
+
- major: 1
|
|
14
|
+
- minor: 2
|
|
15
|
+
- release: 0
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require 'rbconfig'
|
|
2
|
+
require 'find'
|
|
3
|
+
require 'ftools'
|
|
4
|
+
|
|
5
|
+
Dir.chdir ".." if Dir.pwd =~ /bin.?$/
|
|
6
|
+
|
|
7
|
+
include Config
|
|
8
|
+
|
|
9
|
+
$srcdir = CONFIG["srcdir"]
|
|
10
|
+
$version = CONFIG["MAJOR"]+"."+CONFIG["MINOR"]
|
|
11
|
+
$libdir = File.join(CONFIG["libdir"], "ruby", $version)
|
|
12
|
+
$archdir = File.join($libdir, CONFIG["arch"])
|
|
13
|
+
$site_libdir = $:.find {|x| x =~ /site_ruby$/}
|
|
14
|
+
if !$site_libdir
|
|
15
|
+
$site_libdir = File.join($libdir, "site_ruby")
|
|
16
|
+
elsif $site_libdir !~ Regexp.quote($version)
|
|
17
|
+
$site_libdir = File.join($site_libdir, $version)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def install_rb(srcdir = nil)
|
|
21
|
+
libdir = "lib"
|
|
22
|
+
libdir = File.join(srcdir, libdir) if srcdir
|
|
23
|
+
path = []
|
|
24
|
+
dir = []
|
|
25
|
+
Find.find(libdir) do |f|
|
|
26
|
+
next unless FileTest.file?(f)
|
|
27
|
+
next if (f = f[libdir.length+1..-1]) == nil
|
|
28
|
+
next if (/CVS$/ =~ File.dirname(f))
|
|
29
|
+
path.push f
|
|
30
|
+
dir |= [File.dirname(f)]
|
|
31
|
+
end
|
|
32
|
+
for f in dir
|
|
33
|
+
next if f == "."
|
|
34
|
+
next if f == "CVS"
|
|
35
|
+
File::makedirs(File.join($site_libdir, f))
|
|
36
|
+
end
|
|
37
|
+
for f in path
|
|
38
|
+
File::install(File.join("lib", f), File.join($site_libdir, f), 0644, true)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
install_rb
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
$FREEBASE_APPLICATION = "freebase"
|
|
2
|
+
|
|
3
|
+
$:.unshift "../lib"
|
|
4
|
+
|
|
5
|
+
require 'rbconfig'
|
|
6
|
+
|
|
7
|
+
module FreeBASE
|
|
8
|
+
module Example
|
|
9
|
+
class Bootstrap
|
|
10
|
+
#version information
|
|
11
|
+
VERSION_MAJOR = 1
|
|
12
|
+
VERSION_MINOR = 2
|
|
13
|
+
VERSION_RELEASE = 0
|
|
14
|
+
|
|
15
|
+
##
|
|
16
|
+
# Start up the FreeBASE and block until shut down event is received
|
|
17
|
+
#
|
|
18
|
+
# dir:: [String] The directory which holds the properties.yaml and/or default.yaml
|
|
19
|
+
#
|
|
20
|
+
def self.startup(dir)
|
|
21
|
+
|
|
22
|
+
require 'freebase/freebase'
|
|
23
|
+
|
|
24
|
+
#verify the existence of the supplied directory
|
|
25
|
+
begin
|
|
26
|
+
files = Dir.entries(".")
|
|
27
|
+
rescue
|
|
28
|
+
raise "Could not locate directory '.'"
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
#make sure that either freebase.yaml exists or default.yaml
|
|
32
|
+
unless files.include?("freebase.yaml")
|
|
33
|
+
raise "Could not locate default.yaml in #{dir}" unless files.include?("default.yaml")
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
#This method will not return until FreeBASE is closed (shut down)
|
|
37
|
+
FreeBASE::Core.startup("freebase.yaml", "default.yaml")
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
if $0==__FILE__
|
|
44
|
+
baseDir = '.'
|
|
45
|
+
baseDir = ARGV[0] if ARGV.size > 0
|
|
46
|
+
FreeBASE::Example::Bootstrap.startup(baseDir)
|
|
47
|
+
end
|
|
48
|
+
|
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
# Purpose: Configuration classes for FreeBASE
|
|
2
|
+
#
|
|
3
|
+
# Authors: Rich Kilmer <rich@infoether.com>
|
|
4
|
+
# Contributors:
|
|
5
|
+
#
|
|
6
|
+
# This file is part of the FreeRIDE project
|
|
7
|
+
#
|
|
8
|
+
# This application is free software; you can redistribute it and/or
|
|
9
|
+
# modify it under the terms of the Ruby license defined in the
|
|
10
|
+
# COPYING file.
|
|
11
|
+
#
|
|
12
|
+
# Copyright (c) 2001 Rich Kilmer. All rights reserved.
|
|
13
|
+
#
|
|
14
|
+
|
|
15
|
+
module FreeBASE
|
|
16
|
+
|
|
17
|
+
##
|
|
18
|
+
# Main configuration control class. Responsible for processing
|
|
19
|
+
# subsystem/plugins from supplied paths, resolving dependencies,
|
|
20
|
+
# and providing plugin lifecycle (load/start/stop/unload).
|
|
21
|
+
#
|
|
22
|
+
class Configuration
|
|
23
|
+
|
|
24
|
+
attr_reader :plugins, :core, :plugin_paths
|
|
25
|
+
|
|
26
|
+
##
|
|
27
|
+
# Creates a configuration class from for the given FreeBASE core.
|
|
28
|
+
# Reads in the configuration files and resolves dependencies
|
|
29
|
+
#
|
|
30
|
+
# core:: [FreeBASE::Core] The core object.
|
|
31
|
+
# plugin_paths:: [String] A semicolon separated list of directories to search for plugins
|
|
32
|
+
#
|
|
33
|
+
def initialize(core, plugin_paths)
|
|
34
|
+
@core = core
|
|
35
|
+
@plugin_paths = plugin_paths
|
|
36
|
+
@plugins = {}
|
|
37
|
+
YAMLConfigurationReader.new(self)
|
|
38
|
+
resolve_dependencies
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
##
|
|
42
|
+
# Regsiters a config object (subsystem or plugin) with FreeBASE
|
|
43
|
+
#
|
|
44
|
+
# config:: [FreeBASE::SubsystemConfiguration | FreeBASE::PluginConfiguration] The configuration object
|
|
45
|
+
#
|
|
46
|
+
def register(config, base_path)
|
|
47
|
+
config.configuration = self
|
|
48
|
+
config.base_path = base_path
|
|
49
|
+
if File.absolute_path?(base_path)
|
|
50
|
+
config.full_base_path = base_path
|
|
51
|
+
else
|
|
52
|
+
config.full_base_path = File.expand_path(File.join($FR_CODEBASE, base_path))
|
|
53
|
+
end
|
|
54
|
+
if config.kind_of? SubsystemConfiguration
|
|
55
|
+
config.each_plugin {|plugin_config| register(plugin_config, base_path)}
|
|
56
|
+
return
|
|
57
|
+
end
|
|
58
|
+
@plugins[config.name] = config if config.autoload?
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
##
|
|
62
|
+
# Requires all the plugins based on the load list calculated by the dependency resolution
|
|
63
|
+
#
|
|
64
|
+
def require_plugins
|
|
65
|
+
num = 0
|
|
66
|
+
if @load_list.size == 0
|
|
67
|
+
puts "[FreeBASE] no plugins to require" if ARGV.include?("--debug-freebase")
|
|
68
|
+
exit
|
|
69
|
+
end
|
|
70
|
+
while num < @load_list.size
|
|
71
|
+
plugin = @load_list[num]
|
|
72
|
+
plugin.instance.require_files
|
|
73
|
+
num += 1
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
##
|
|
78
|
+
# Loads all the plugins based on the load list calculated by the dependency resolution
|
|
79
|
+
#
|
|
80
|
+
def load_plugins
|
|
81
|
+
num = 0
|
|
82
|
+
if @load_list.size == 0
|
|
83
|
+
puts "[FreeBASE] no plugins to load" if ARGV.include?("--debug-freebase")
|
|
84
|
+
exit
|
|
85
|
+
end
|
|
86
|
+
while num < @load_list.size
|
|
87
|
+
plugin = @load_list[num]
|
|
88
|
+
plugin.instance.load
|
|
89
|
+
if plugin.instance.state != LOADED
|
|
90
|
+
puts "[FreeBASE] failed to load: #{plugin.name}"
|
|
91
|
+
fail_load_dependencies(plugin)
|
|
92
|
+
fail_start_dependencies(plugin)
|
|
93
|
+
else
|
|
94
|
+
puts "[FreeBASE] loaded: #{plugin.name}" if ARGV.include?("--debug-freebase")
|
|
95
|
+
num += 1
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
##
|
|
101
|
+
# Starts all the plugins based on the start list calculated by the dependency resolution
|
|
102
|
+
#
|
|
103
|
+
def start_plugins
|
|
104
|
+
num = 0
|
|
105
|
+
while num < @start_list.size
|
|
106
|
+
plugin = @start_list[num]
|
|
107
|
+
plugin.instance.start
|
|
108
|
+
if plugin.instance.state != RUNNING
|
|
109
|
+
puts "[FreeBASE] failed to start: #{plugin.name}"
|
|
110
|
+
fail_start_dependencies(plugin)
|
|
111
|
+
else
|
|
112
|
+
puts "[FreeBASE] started: #{plugin.name}" if ARGV.include?("--debug-freebase")
|
|
113
|
+
num += 1
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
##
|
|
119
|
+
# Stops all the plugins based on reversing the start list calculated by the dependency resolution
|
|
120
|
+
#
|
|
121
|
+
def stop_plugins
|
|
122
|
+
@start_list.reverse.each do |plugin|
|
|
123
|
+
plugin.instance.stop
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
##
|
|
128
|
+
# Unloads all the plugins based on by reversing the load list calculated by the dependency resolution
|
|
129
|
+
#
|
|
130
|
+
def unload_plugins
|
|
131
|
+
@load_list.reverse.each do |plugin|
|
|
132
|
+
plugin.instance.unload
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
private
|
|
137
|
+
|
|
138
|
+
def fail_load_dependencies(plugin)
|
|
139
|
+
@load_list.delete(plugin)
|
|
140
|
+
plugin.rev_load_graph.each { |other| fail_load_dependencies(other) }
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
def fail_start_dependencies(plugin)
|
|
144
|
+
@start_list.delete(plugin)
|
|
145
|
+
plugin.rev_start_graph.each { |other| fail_start_dependencies(other) }
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def resolve_dependencies
|
|
149
|
+
# graph dependencies
|
|
150
|
+
@plugins.each_value do |plugin|
|
|
151
|
+
plugin.build_graph
|
|
152
|
+
end
|
|
153
|
+
# compute load and start levels
|
|
154
|
+
@plugins.each_value do |plugin|
|
|
155
|
+
plugin.compute_levels
|
|
156
|
+
end
|
|
157
|
+
# build load list
|
|
158
|
+
@load_list = @plugins.values
|
|
159
|
+
@load_list.sort! do |a, b|
|
|
160
|
+
a.load_level<=>b.load_level
|
|
161
|
+
end
|
|
162
|
+
# build start list
|
|
163
|
+
@start_list = @plugins.values
|
|
164
|
+
@start_list.sort! do |a, b|
|
|
165
|
+
a.start_level<=>b.start_level
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
def debug
|
|
170
|
+
@plugins.each do |name, plugin|
|
|
171
|
+
puts "Plugin: #{name} Load Level: #{plugin.load_level} Dep: #{plugin.fwd_load_graph.collect {|p| p.name}.join(', ')}"
|
|
172
|
+
end
|
|
173
|
+
puts "_"*30
|
|
174
|
+
@load_list.each {|plugin| puts "#{plugin.load_level}: #{plugin.name}"}
|
|
175
|
+
puts "_"*30
|
|
176
|
+
puts "_"*30
|
|
177
|
+
@plugins.each do |name, plugin|
|
|
178
|
+
puts "Plugin: #{name} Start Level: #{plugin.start_level} Dep: #{plugin.fwd_start_graph.collect {|p| p.name}.join(', ')}"
|
|
179
|
+
end
|
|
180
|
+
puts "_"*30
|
|
181
|
+
@start_list.each {|plugin| puts "#{plugin.start_level}: #{plugin.name}"}
|
|
182
|
+
exit
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
##
|
|
188
|
+
# Represents a subsystem (set of plugins) in FreeBASE. It creates
|
|
189
|
+
# a plugin named the subsystem name which is dependent on all plugins
|
|
190
|
+
# in the subsystem. This allows another plugin to be dependent on
|
|
191
|
+
# all the plugins in the subsystem by simply being dependent on the
|
|
192
|
+
# plugin named after the subsystem
|
|
193
|
+
#
|
|
194
|
+
class SubsystemConfiguration
|
|
195
|
+
attr_accessor :name, :version, :base_path, :full_base_path
|
|
196
|
+
attr_reader :plugins
|
|
197
|
+
attr_reader :configuration
|
|
198
|
+
|
|
199
|
+
##
|
|
200
|
+
# Orders the properties to export when this object is serialized
|
|
201
|
+
# to YAML
|
|
202
|
+
#
|
|
203
|
+
# return:: [Array] List of properties to export...used by YAML
|
|
204
|
+
#
|
|
205
|
+
def to_yaml_properties
|
|
206
|
+
['@name', '@version', '@plugins']
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
##
|
|
210
|
+
# Constructs a SubsystemConfiguration object. May optionally
|
|
211
|
+
# supply block with yielded instance of 'self' to set properties.
|
|
212
|
+
#
|
|
213
|
+
def initialize
|
|
214
|
+
@plugins = []
|
|
215
|
+
yield self if block_given?
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
##
|
|
219
|
+
# Set the configuration instance. Also builds the plugin which represents
|
|
220
|
+
# the subsystem. This should be called only after all plugins configurations
|
|
221
|
+
# have beed processed and added to this subsystem.
|
|
222
|
+
#
|
|
223
|
+
# configuration:: [FreeBASE::Configuration] The FreeBASE configuration manager
|
|
224
|
+
#
|
|
225
|
+
def configuration=(configuration)
|
|
226
|
+
@configuration = configuration
|
|
227
|
+
each_plugin {|plugin| plugin.configuration = configuration}
|
|
228
|
+
#add plugin to represent the subsystem itself
|
|
229
|
+
add_plugin do |plugin|
|
|
230
|
+
plugin.name = @name
|
|
231
|
+
plugin.version = @version
|
|
232
|
+
plugin.require_path = nil #"freebase/plugin"
|
|
233
|
+
plugin.startup_module = "FreeBASE::SubsystemPlugin"
|
|
234
|
+
plugin.autoload = true
|
|
235
|
+
@plugins.each do |other|
|
|
236
|
+
plugin.add_load_dependency(other.name)
|
|
237
|
+
end
|
|
238
|
+
@plugins.each do |other|
|
|
239
|
+
plugin.add_start_dependency(other.name)
|
|
240
|
+
end
|
|
241
|
+
end
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
##
|
|
245
|
+
# Returns a newly created plugin accepting an optional block
|
|
246
|
+
# which can be used to set attributes of the plugin
|
|
247
|
+
#
|
|
248
|
+
# &block:: [Block] Accepts the yielded plugin as the parameter
|
|
249
|
+
def add_plugin(&block)
|
|
250
|
+
plugin = PluginConfiguration.new(&block)
|
|
251
|
+
plugin.configuration = @configuration
|
|
252
|
+
@plugins << plugin
|
|
253
|
+
plugin
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
##
|
|
257
|
+
# Iterates over the list of available plugins yielding each one
|
|
258
|
+
#
|
|
259
|
+
def each_plugin
|
|
260
|
+
@plugins.each {|plugin| yield plugin}
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
##
|
|
266
|
+
# This class holds the metadata about a plugin. It is created
|
|
267
|
+
# by a Reader (see reader.rb) from either an XML file or a YAML
|
|
268
|
+
# load operation.
|
|
269
|
+
#
|
|
270
|
+
class PluginConfiguration
|
|
271
|
+
|
|
272
|
+
##
|
|
273
|
+
# Raised if there is a circular dependency in plugins during load/start
|
|
274
|
+
# holds a reversing list of plugins to be able to show the cycle.
|
|
275
|
+
#
|
|
276
|
+
class CircularDependency < RuntimeError
|
|
277
|
+
attr_reader :plugin_list
|
|
278
|
+
##
|
|
279
|
+
# Constructs an exception with the supplied elements
|
|
280
|
+
#
|
|
281
|
+
# dep_type:: [String] Ether "load" or "start"
|
|
282
|
+
# start_plugin:: [FreeBASE::PluginConfiguration] The plugin that the cycle was caught in
|
|
283
|
+
def initialize(dep_type, start_plugin)
|
|
284
|
+
@dep_type = dep_type.capitalize
|
|
285
|
+
@plugin_list = [start_plugin]
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
##
|
|
289
|
+
# Outputs the cycle:
|
|
290
|
+
# PluginA -> PluginB -> PluginC -> PluginA
|
|
291
|
+
#
|
|
292
|
+
def to_s
|
|
293
|
+
cycle = (@plugin_list.collect {|plugin| plugin.name}).reverse.join("->")
|
|
294
|
+
"\n#{@dep_type} Circular Plugin Dependency: #{cycle}"
|
|
295
|
+
end
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
attr_accessor(:name, :version, :require_path, :dependencies_path,
|
|
299
|
+
:properties_path, :startup_module,
|
|
300
|
+
:resource_path, :base_path,
|
|
301
|
+
:full_base_path,
|
|
302
|
+
:description, :author, :tests, :test_module)
|
|
303
|
+
attr_writer :autoload
|
|
304
|
+
attr_reader :configuration
|
|
305
|
+
attr_reader :fwd_load_graph, :fwd_start_graph
|
|
306
|
+
attr_reader :rev_load_graph, :rev_start_graph
|
|
307
|
+
attr_reader :load_level, :start_level
|
|
308
|
+
|
|
309
|
+
def dependencies_met
|
|
310
|
+
if @dependencies_met == nil
|
|
311
|
+
true
|
|
312
|
+
else
|
|
313
|
+
@dependencies_met
|
|
314
|
+
end
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
alias :dependencies_met? :dependencies_met
|
|
318
|
+
|
|
319
|
+
##
|
|
320
|
+
# Contructs a plugin configuration. Yields instance of self for initializing instance data.
|
|
321
|
+
#
|
|
322
|
+
def initialize
|
|
323
|
+
yield self if block_given?
|
|
324
|
+
@dependencies_met = true
|
|
325
|
+
end
|
|
326
|
+
|
|
327
|
+
##
|
|
328
|
+
# Retrieve the base path in the in the user dir (USERPROFILE or HOME)
|
|
329
|
+
#
|
|
330
|
+
def base_user_path
|
|
331
|
+
filename = DefaultPropertiesReader.user_filename(File.join(@base_path,"foo.bar"))
|
|
332
|
+
unless @base_user_path
|
|
333
|
+
if filename
|
|
334
|
+
require 'fileutils'
|
|
335
|
+
FileUtils.mkdir_p(File.dirname(filename))
|
|
336
|
+
@base_user_path = File.dirname(filename)
|
|
337
|
+
end
|
|
338
|
+
end
|
|
339
|
+
@base_user_path
|
|
340
|
+
end
|
|
341
|
+
|
|
342
|
+
##
|
|
343
|
+
# Retrieve the local user file (in USERPROFILE or HOME) of the supplied filespec.
|
|
344
|
+
# This method is usefull if a plugin needs to create a file
|
|
345
|
+
#
|
|
346
|
+
def user_filename(filespec, ensure_dir=false)
|
|
347
|
+
filename = DefaultPropertiesReader.user_filename(filespec)
|
|
348
|
+
if ensure_dir && filename
|
|
349
|
+
require 'fileutils'
|
|
350
|
+
FileUtils.mkdir_p(File.dirname(filename))
|
|
351
|
+
end
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
##
|
|
355
|
+
# Orders the properties to export when this object is serialized
|
|
356
|
+
# to YAML
|
|
357
|
+
#
|
|
358
|
+
# return:: [Array] List of properties to export...used by YAML
|
|
359
|
+
#
|
|
360
|
+
def to_yaml_properties
|
|
361
|
+
['@name', '@version', '@autoload', '@require_path',
|
|
362
|
+
'@startup_module', '@properties_path',
|
|
363
|
+
'@resource_path', '@load_dependencies', '@start_dependencies']
|
|
364
|
+
end
|
|
365
|
+
|
|
366
|
+
##
|
|
367
|
+
# Gets (and possibly builds if first time called) the FreeBASE::Plugin object
|
|
368
|
+
#
|
|
369
|
+
# return:: [FreeBASE::Plugin] The plugin controller for this configuration
|
|
370
|
+
#
|
|
371
|
+
def instance
|
|
372
|
+
unless @plugin_instance
|
|
373
|
+
@plugin_instance = FreeBASE::Plugin.new(@configuration.core, self)
|
|
374
|
+
end
|
|
375
|
+
@plugin_instance
|
|
376
|
+
end
|
|
377
|
+
|
|
378
|
+
##
|
|
379
|
+
# Builds a graph of dependencies (both forward and reverse) which is used to
|
|
380
|
+
# detect cycles and block loading/starting of plugins whose dependent plugin
|
|
381
|
+
# fails
|
|
382
|
+
#
|
|
383
|
+
def build_graph
|
|
384
|
+
each_load_dependency do |other, version|
|
|
385
|
+
other_plugin = @configuration.plugins[other]
|
|
386
|
+
unless other_plugin
|
|
387
|
+
puts "#{@name} has a load dependency not found: #{other}"
|
|
388
|
+
@dependencies_met = false
|
|
389
|
+
return false
|
|
390
|
+
end
|
|
391
|
+
@fwd_load_graph << other_plugin
|
|
392
|
+
other_plugin.rev_load_graph << self
|
|
393
|
+
end
|
|
394
|
+
each_start_dependency do |other, version|
|
|
395
|
+
other_plugin = @configuration.plugins[other]
|
|
396
|
+
unless other_plugin
|
|
397
|
+
puts "#{@name} has a start dependency not found: #{other}"
|
|
398
|
+
@dependencies_met = false
|
|
399
|
+
return false
|
|
400
|
+
end
|
|
401
|
+
return false unless other_plugin
|
|
402
|
+
@fwd_start_graph << other_plugin
|
|
403
|
+
other_plugin.rev_start_graph << self
|
|
404
|
+
end
|
|
405
|
+
return true
|
|
406
|
+
end
|
|
407
|
+
|
|
408
|
+
##
|
|
409
|
+
# Computes the load level and start level for this plugin configuration
|
|
410
|
+
#
|
|
411
|
+
def compute_levels
|
|
412
|
+
get_load_level
|
|
413
|
+
get_start_level
|
|
414
|
+
end
|
|
415
|
+
|
|
416
|
+
##
|
|
417
|
+
# Returns the load level for this plugin configuration. This will always
|
|
418
|
+
# be one higher than the highest level plugin which this plugin is dependent
|
|
419
|
+
# on. This method may raise a CircularDependency exception if on is detected.
|
|
420
|
+
#
|
|
421
|
+
# return:: [Integer] The load level
|
|
422
|
+
#
|
|
423
|
+
def get_load_level
|
|
424
|
+
raise (CircularDependency.new("Load", self)) if @computing_levels
|
|
425
|
+
return @load_level if @load_level
|
|
426
|
+
@computing_levels = true
|
|
427
|
+
@load_level = 0
|
|
428
|
+
@fwd_load_graph.each do |other|
|
|
429
|
+
begin
|
|
430
|
+
olevel = other.get_load_level + 1
|
|
431
|
+
rescue CircularDependency => cycle
|
|
432
|
+
cycle.plugin_list << self
|
|
433
|
+
raise
|
|
434
|
+
end
|
|
435
|
+
@load_level = olevel unless @load_level > olevel
|
|
436
|
+
end
|
|
437
|
+
@computing_levels = false
|
|
438
|
+
return @load_level
|
|
439
|
+
end
|
|
440
|
+
|
|
441
|
+
##
|
|
442
|
+
# Returns the start level for this plugin configuration. This will always
|
|
443
|
+
# be one higher than the highest level plugin which this plugin is dependent
|
|
444
|
+
# on. This method may raise a CircularDependency exception if on is detected.
|
|
445
|
+
#
|
|
446
|
+
# return:: [Integer] The start level
|
|
447
|
+
#
|
|
448
|
+
def get_start_level
|
|
449
|
+
raise (CircularDependency.new("Start", self)) if @computing_levels
|
|
450
|
+
return @start_level if @start_level
|
|
451
|
+
@computing_levels = true
|
|
452
|
+
@start_level = 0
|
|
453
|
+
@fwd_start_graph.each do |other|
|
|
454
|
+
begin
|
|
455
|
+
olevel = other.get_start_level + 1
|
|
456
|
+
rescue CircularDependency => cycle
|
|
457
|
+
cycle.plugin_list << self
|
|
458
|
+
raise
|
|
459
|
+
end
|
|
460
|
+
@start_level = olevel if @start_level < olevel
|
|
461
|
+
end
|
|
462
|
+
@computing_levels = false
|
|
463
|
+
return @start_level
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
##
|
|
467
|
+
# Sets the configuration controller for this plugin config.
|
|
468
|
+
#
|
|
469
|
+
# configuration:: [FreeBASE::Configuration] The configuration controller instance
|
|
470
|
+
#
|
|
471
|
+
def configuration=(configuration)
|
|
472
|
+
@fwd_load_graph = []
|
|
473
|
+
@fwd_start_graph = []
|
|
474
|
+
@rev_load_graph = []
|
|
475
|
+
@rev_start_graph = []
|
|
476
|
+
@configuration = configuration
|
|
477
|
+
end
|
|
478
|
+
|
|
479
|
+
##
|
|
480
|
+
# Returns whether this plugin should automatically load and start
|
|
481
|
+
#
|
|
482
|
+
# return:: [Boolean] True if this plugin should load and start, otherwise false
|
|
483
|
+
#
|
|
484
|
+
def autoload?
|
|
485
|
+
@autoload
|
|
486
|
+
end
|
|
487
|
+
|
|
488
|
+
##
|
|
489
|
+
# Returns instance of self
|
|
490
|
+
#
|
|
491
|
+
def each_plugin
|
|
492
|
+
yield self
|
|
493
|
+
end
|
|
494
|
+
|
|
495
|
+
##
|
|
496
|
+
# Add a load dependency for this plugin
|
|
497
|
+
#
|
|
498
|
+
# plugin:: [String] The plugin name that this plugin is dependent on to load
|
|
499
|
+
# version:: [String="*"] The version of the plugin that this plugin is dependent on (* for any)
|
|
500
|
+
#
|
|
501
|
+
def add_load_dependency(plugin, version="*")
|
|
502
|
+
@load_dependencies ||= {}
|
|
503
|
+
@load_dependencies[plugin]=version
|
|
504
|
+
end
|
|
505
|
+
|
|
506
|
+
##
|
|
507
|
+
# Add a start dependency for this plugin
|
|
508
|
+
#
|
|
509
|
+
# plugin:: [String] The plugin name that this plugin is dependent on to start
|
|
510
|
+
# version:: [String="*"] The version of the plugin that this plugin is dependent on (* for any)
|
|
511
|
+
#
|
|
512
|
+
def add_start_dependency(plugin, version="*")
|
|
513
|
+
@start_dependencies ||= {}
|
|
514
|
+
@start_dependencies[plugin]=version
|
|
515
|
+
end
|
|
516
|
+
|
|
517
|
+
##
|
|
518
|
+
# Iterates over each load dependency yielding a |plugin, version| for each iteration.
|
|
519
|
+
#
|
|
520
|
+
def each_load_dependency(&block)
|
|
521
|
+
return unless @load_dependencies
|
|
522
|
+
@load_dependencies.each(&block)
|
|
523
|
+
end
|
|
524
|
+
|
|
525
|
+
##
|
|
526
|
+
# Iterates over each start dependency yielding a |plugin, version| for each iteration.
|
|
527
|
+
#
|
|
528
|
+
def each_start_dependency(&block)
|
|
529
|
+
return unless @start_dependencies
|
|
530
|
+
@start_dependencies.each(&block)
|
|
531
|
+
end
|
|
532
|
+
end
|
|
533
|
+
end
|
|
534
|
+
|
|
535
|
+
|