metry 1.0.0
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/History.txt +5 -0
- data/Manifest.txt +376 -0
- data/README.txt +62 -0
- data/Rakefile +23 -0
- data/TODO +10 -0
- data/example/example.rb +22 -0
- data/features/app_tracking.feature +11 -0
- data/features/basic_tracking.feature +88 -0
- data/features/sample_application.feature +12 -0
- data/features/step_definitions/tracking.rb +35 -0
- data/features/step_definitions/web.rb +31 -0
- data/features/support/env.rb +22 -0
- data/lib/metry.rb +19 -0
- data/lib/metry/experiment.rb +25 -0
- data/lib/metry/memory.rb +27 -0
- data/lib/metry/rack/tracking.rb +51 -0
- data/lib/metry/tokyo.rb +153 -0
- data/radiant/example/CHANGELOG +611 -0
- data/radiant/example/CONTRIBUTORS +168 -0
- data/radiant/example/INSTALL +38 -0
- data/radiant/example/LICENSE +21 -0
- data/radiant/example/README +60 -0
- data/radiant/example/Rakefile +21 -0
- data/radiant/example/config/boot.rb +161 -0
- data/radiant/example/config/database.yml +20 -0
- data/radiant/example/config/environment.rb +83 -0
- data/radiant/example/config/environments/cucumber.rb +18 -0
- data/radiant/example/config/environments/development.rb +17 -0
- data/radiant/example/config/environments/production.rb +19 -0
- data/radiant/example/config/environments/test.rb +36 -0
- data/radiant/example/config/routes.rb +1 -0
- data/radiant/example/db/schema.rb +112 -0
- data/radiant/example/features/metry.feature +139 -0
- data/radiant/example/features/step_definitions/experiments.rb +12 -0
- data/radiant/example/features/step_definitions/radiant.rb +14 -0
- data/radiant/example/features/step_definitions/tracking.rb +35 -0
- data/radiant/example/features/step_definitions/web.rb +22 -0
- data/radiant/example/features/support/env.rb +52 -0
- data/radiant/example/public/.htaccess +40 -0
- data/radiant/example/public/404.html +8 -0
- data/radiant/example/public/500.html +8 -0
- data/radiant/example/public/dispatch.cgi +10 -0
- data/radiant/example/public/dispatch.fcgi +24 -0
- data/radiant/example/public/dispatch.rb +10 -0
- data/radiant/example/public/favicon.ico +0 -0
- data/radiant/example/public/images/admin/add-child.png +0 -0
- data/radiant/example/public/images/admin/brown-bottom-line.gif +0 -0
- data/radiant/example/public/images/admin/clear-page-cache.png +0 -0
- data/radiant/example/public/images/admin/collapse.png +0 -0
- data/radiant/example/public/images/admin/expand.png +0 -0
- data/radiant/example/public/images/admin/layout.png +0 -0
- data/radiant/example/public/images/admin/minus.png +0 -0
- data/radiant/example/public/images/admin/new-homepage.png +0 -0
- data/radiant/example/public/images/admin/new-layout.png +0 -0
- data/radiant/example/public/images/admin/new-snippet.png +0 -0
- data/radiant/example/public/images/admin/new-user.png +0 -0
- data/radiant/example/public/images/admin/page.png +0 -0
- data/radiant/example/public/images/admin/plus.png +0 -0
- data/radiant/example/public/images/admin/remove-disabled.png +0 -0
- data/radiant/example/public/images/admin/remove.png +0 -0
- data/radiant/example/public/images/admin/snippet.png +0 -0
- data/radiant/example/public/images/admin/spinner.gif +0 -0
- data/radiant/example/public/images/admin/view-site.gif +0 -0
- data/radiant/example/public/images/admin/virtual-page.png +0 -0
- data/radiant/example/public/javascripts/admin/admin.js +149 -0
- data/radiant/example/public/javascripts/admin/ruledtable.js +13 -0
- data/radiant/example/public/javascripts/admin/sitemap.js +132 -0
- data/radiant/example/public/javascripts/admin/tabcontrol.js +133 -0
- data/radiant/example/public/javascripts/application.js +2 -0
- data/radiant/example/public/javascripts/controls.js +963 -0
- data/radiant/example/public/javascripts/dragdrop.js +973 -0
- data/radiant/example/public/javascripts/effects.js +1128 -0
- data/radiant/example/public/javascripts/pngfix.js +39 -0
- data/radiant/example/public/javascripts/prototype.js +4320 -0
- data/radiant/example/public/javascripts/string.js +17 -0
- data/radiant/example/public/robots.txt +1 -0
- data/radiant/example/public/stylesheets/admin/main.css +640 -0
- data/radiant/example/script/about +3 -0
- data/radiant/example/script/autospec +5 -0
- data/radiant/example/script/breakpointer +3 -0
- data/radiant/example/script/console +3 -0
- data/radiant/example/script/cucumber +8 -0
- data/radiant/example/script/dbconsole +3 -0
- data/radiant/example/script/extension +5 -0
- data/radiant/example/script/generate +18 -0
- data/radiant/example/script/performance/benchmarker +3 -0
- data/radiant/example/script/performance/profiler +3 -0
- data/radiant/example/script/performance/request +3 -0
- data/radiant/example/script/process/inspector +3 -0
- data/radiant/example/script/process/reaper +3 -0
- data/radiant/example/script/process/spawner +3 -0
- data/radiant/example/script/process/spinner +3 -0
- data/radiant/example/script/runner +3 -0
- data/radiant/example/script/server +3 -0
- data/radiant/example/script/spec +5 -0
- data/radiant/example/script/spec_server +116 -0
- data/radiant/example/script/version +5 -0
- data/radiant/extension/README +3 -0
- data/radiant/extension/Rakefile +120 -0
- data/radiant/extension/lib/metry_tags.rb +25 -0
- data/radiant/extension/lib/tasks/metry_extension_tasks.rake +28 -0
- data/radiant/extension/metry_extension.rb +24 -0
- data/test/shared.rb +6 -0
- data/test/test_tokyo.rb +14 -0
- data/vendor/rufus-tokyo/CHANGELOG.txt +112 -0
- data/vendor/rufus-tokyo/CREDITS.txt +27 -0
- data/vendor/rufus-tokyo/LICENSE.txt +21 -0
- data/vendor/rufus-tokyo/README.txt +310 -0
- data/vendor/rufus-tokyo/Rakefile +118 -0
- data/vendor/rufus-tokyo/TODO.txt +25 -0
- data/vendor/rufus-tokyo/doc/decision_table.numbers +0 -0
- data/vendor/rufus-tokyo/doc/rdoc-style.css +320 -0
- data/vendor/rufus-tokyo/lib/rufus-edo.rb +3 -0
- data/vendor/rufus-tokyo/lib/rufus-tokyo.rb +3 -0
- data/vendor/rufus-tokyo/lib/rufus/edo.rb +39 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/README.txt +106 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/cabcore.rb +333 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/cabinet/abstract.rb +219 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/cabinet/table.rb +159 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/error.rb +36 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant.rb +4 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant/abstract.rb +137 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant/table.rb +141 -0
- data/vendor/rufus-tokyo/lib/rufus/edo/tabcore.rb +567 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo.rb +58 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/abstract.rb +568 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/lib.rb +230 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/table.rb +753 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/util.rb +425 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/config.rb +161 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia.rb +43 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia/lib.rb +65 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia/words.rb +71 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/hmethods.rb +111 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/query.rb +102 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/transactions.rb +74 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/ttcommons.rb +59 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant.rb +35 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/abstract.rb +146 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/lib.rb +153 -0
- data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/table.rb +162 -0
- data/vendor/rufus-tokyo/rufus-tokyo.gemspec +25 -0
- data/vendor/rufus-tokyo/spec/cabinet_spec.rb +472 -0
- data/vendor/rufus-tokyo/spec/cabinetconfig_spec.rb +82 -0
- data/vendor/rufus-tokyo/spec/edo_cabinet_spec.rb +447 -0
- data/vendor/rufus-tokyo/spec/edo_ntyrant_spec.rb +299 -0
- data/vendor/rufus-tokyo/spec/edo_ntyrant_table_spec.rb +462 -0
- data/vendor/rufus-tokyo/spec/edo_table_spec.rb +560 -0
- data/vendor/rufus-tokyo/spec/hmethods_spec.rb +44 -0
- data/vendor/rufus-tokyo/spec/incr.lua +20 -0
- data/vendor/rufus-tokyo/spec/spec.rb +9 -0
- data/vendor/rufus-tokyo/spec/spec_base.rb +23 -0
- data/vendor/rufus-tokyo/spec/start_tyrants.sh +26 -0
- data/vendor/rufus-tokyo/spec/stop_tyrants.sh +9 -0
- data/vendor/rufus-tokyo/spec/table_spec.rb +567 -0
- data/vendor/rufus-tokyo/spec/tyrant_spec.rb +309 -0
- data/vendor/rufus-tokyo/spec/tyrant_table_spec.rb +479 -0
- data/vendor/rufus-tokyo/spec/util_list_spec.rb +200 -0
- data/vendor/rufus-tokyo/spec/util_map_spec.rb +132 -0
- data/vendor/rufus-tokyo/tasks/dev.rb +70 -0
- data/vendor/rufus-tokyo/test/bm0.rb +353 -0
- data/vendor/rufus-tokyo/test/bm1_compression.rb +54 -0
- data/vendor/rufus-tokyo/test/con0.rb +30 -0
- data/vendor/rufus-tokyo/test/mem.rb +49 -0
- data/vendor/rufus-tokyo/test/mem1.rb +44 -0
- data/vendor/rufus-tokyo/test/readme0.rb +17 -0
- data/vendor/rufus-tokyo/test/readme1.rb +21 -0
- data/vendor/rufus-tokyo/test/readme2.rb +15 -0
- data/vendor/rufus-tokyo/test/readme3.rb +24 -0
- data/vendor/rufus-tokyo/test/readmes_test.sh +17 -0
- data/vendor/webrat/.document +4 -0
- data/vendor/webrat/History.txt +358 -0
- data/vendor/webrat/MIT-LICENSE.txt +19 -0
- data/vendor/webrat/README.rdoc +85 -0
- data/vendor/webrat/Rakefile +200 -0
- data/vendor/webrat/install.rb +1 -0
- data/vendor/webrat/lib/webrat.rb +31 -0
- data/vendor/webrat/lib/webrat/core.rb +14 -0
- data/vendor/webrat/lib/webrat/core/configuration.rb +102 -0
- data/vendor/webrat/lib/webrat/core/elements/area.rb +31 -0
- data/vendor/webrat/lib/webrat/core/elements/element.rb +33 -0
- data/vendor/webrat/lib/webrat/core/elements/field.rb +411 -0
- data/vendor/webrat/lib/webrat/core/elements/form.rb +103 -0
- data/vendor/webrat/lib/webrat/core/elements/label.rb +31 -0
- data/vendor/webrat/lib/webrat/core/elements/link.rb +93 -0
- data/vendor/webrat/lib/webrat/core/elements/select_option.rb +35 -0
- data/vendor/webrat/lib/webrat/core/locators.rb +20 -0
- data/vendor/webrat/lib/webrat/core/locators/area_locator.rb +38 -0
- data/vendor/webrat/lib/webrat/core/locators/button_locator.rb +54 -0
- data/vendor/webrat/lib/webrat/core/locators/field_by_id_locator.rb +37 -0
- data/vendor/webrat/lib/webrat/core/locators/field_labeled_locator.rb +56 -0
- data/vendor/webrat/lib/webrat/core/locators/field_locator.rb +25 -0
- data/vendor/webrat/lib/webrat/core/locators/field_named_locator.rb +41 -0
- data/vendor/webrat/lib/webrat/core/locators/form_locator.rb +19 -0
- data/vendor/webrat/lib/webrat/core/locators/label_locator.rb +34 -0
- data/vendor/webrat/lib/webrat/core/locators/link_locator.rb +74 -0
- data/vendor/webrat/lib/webrat/core/locators/locator.rb +20 -0
- data/vendor/webrat/lib/webrat/core/locators/select_option_locator.rb +59 -0
- data/vendor/webrat/lib/webrat/core/logging.rb +24 -0
- data/vendor/webrat/lib/webrat/core/matchers.rb +4 -0
- data/vendor/webrat/lib/webrat/core/matchers/have_content.rb +73 -0
- data/vendor/webrat/lib/webrat/core/matchers/have_selector.rb +74 -0
- data/vendor/webrat/lib/webrat/core/matchers/have_tag.rb +21 -0
- data/vendor/webrat/lib/webrat/core/matchers/have_xpath.rb +147 -0
- data/vendor/webrat/lib/webrat/core/methods.rb +63 -0
- data/vendor/webrat/lib/webrat/core/mime.rb +29 -0
- data/vendor/webrat/lib/webrat/core/save_and_open_page.rb +48 -0
- data/vendor/webrat/lib/webrat/core/scope.rb +350 -0
- data/vendor/webrat/lib/webrat/core/session.rb +290 -0
- data/vendor/webrat/lib/webrat/core/xml.rb +115 -0
- data/vendor/webrat/lib/webrat/core/xml/hpricot.rb +19 -0
- data/vendor/webrat/lib/webrat/core/xml/nokogiri.rb +76 -0
- data/vendor/webrat/lib/webrat/core/xml/rexml.rb +24 -0
- data/vendor/webrat/lib/webrat/core_extensions/blank.rb +58 -0
- data/vendor/webrat/lib/webrat/core_extensions/deprecate.rb +8 -0
- data/vendor/webrat/lib/webrat/core_extensions/detect_mapped.rb +12 -0
- data/vendor/webrat/lib/webrat/core_extensions/meta_class.rb +6 -0
- data/vendor/webrat/lib/webrat/core_extensions/nil_to_param.rb +5 -0
- data/vendor/webrat/lib/webrat/core_extensions/tcp_socket.rb +27 -0
- data/vendor/webrat/lib/webrat/mechanize.rb +74 -0
- data/vendor/webrat/lib/webrat/merb.rb +9 -0
- data/vendor/webrat/lib/webrat/merb_multipart_support.rb +27 -0
- data/vendor/webrat/lib/webrat/merb_session.rb +80 -0
- data/vendor/webrat/lib/webrat/rack.rb +24 -0
- data/vendor/webrat/lib/webrat/rack_test.rb +32 -0
- data/vendor/webrat/lib/webrat/rails.rb +105 -0
- data/vendor/webrat/lib/webrat/rspec-rails.rb +10 -0
- data/vendor/webrat/lib/webrat/selenium.rb +81 -0
- data/vendor/webrat/lib/webrat/selenium/application_server_factory.rb +40 -0
- data/vendor/webrat/lib/webrat/selenium/application_servers.rb +5 -0
- data/vendor/webrat/lib/webrat/selenium/application_servers/base.rb +46 -0
- data/vendor/webrat/lib/webrat/selenium/application_servers/external.rb +26 -0
- data/vendor/webrat/lib/webrat/selenium/application_servers/merb.rb +50 -0
- data/vendor/webrat/lib/webrat/selenium/application_servers/rails.rb +44 -0
- data/vendor/webrat/lib/webrat/selenium/application_servers/sinatra.rb +37 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/button.js +19 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/label.js +16 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webrat.js +5 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratlink.js +12 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js +15 -0
- data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js +5 -0
- data/vendor/webrat/lib/webrat/selenium/matchers.rb +4 -0
- data/vendor/webrat/lib/webrat/selenium/matchers/have_content.rb +66 -0
- data/vendor/webrat/lib/webrat/selenium/matchers/have_selector.rb +49 -0
- data/vendor/webrat/lib/webrat/selenium/matchers/have_tag.rb +72 -0
- data/vendor/webrat/lib/webrat/selenium/matchers/have_xpath.rb +45 -0
- data/vendor/webrat/lib/webrat/selenium/selenium_extensions.js +6 -0
- data/vendor/webrat/lib/webrat/selenium/selenium_rc_server.rb +84 -0
- data/vendor/webrat/lib/webrat/selenium/selenium_session.rb +248 -0
- data/vendor/webrat/lib/webrat/selenium/silence_stream.rb +18 -0
- data/vendor/webrat/lib/webrat/sinatra.rb +44 -0
- data/vendor/webrat/spec/fakes/test_session.rb +34 -0
- data/vendor/webrat/spec/integration/merb/Rakefile +35 -0
- data/vendor/webrat/spec/integration/merb/app/controllers/application.rb +2 -0
- data/vendor/webrat/spec/integration/merb/app/controllers/exceptions.rb +13 -0
- data/vendor/webrat/spec/integration/merb/app/controllers/testing.rb +27 -0
- data/vendor/webrat/spec/integration/merb/app/views/exceptions/not_acceptable.html.erb +63 -0
- data/vendor/webrat/spec/integration/merb/app/views/exceptions/not_found.html.erb +47 -0
- data/vendor/webrat/spec/integration/merb/app/views/layout/application.html.erb +12 -0
- data/vendor/webrat/spec/integration/merb/app/views/testing/show_form.html.erb +27 -0
- data/vendor/webrat/spec/integration/merb/app/views/testing/upload.html.erb +9 -0
- data/vendor/webrat/spec/integration/merb/config/environments/development.rb +15 -0
- data/vendor/webrat/spec/integration/merb/config/environments/rake.rb +11 -0
- data/vendor/webrat/spec/integration/merb/config/environments/test.rb +14 -0
- data/vendor/webrat/spec/integration/merb/config/init.rb +25 -0
- data/vendor/webrat/spec/integration/merb/config/rack.rb +11 -0
- data/vendor/webrat/spec/integration/merb/config/router.rb +34 -0
- data/vendor/webrat/spec/integration/merb/spec/spec.opts +1 -0
- data/vendor/webrat/spec/integration/merb/spec/spec_helper.rb +24 -0
- data/vendor/webrat/spec/integration/merb/spec/webrat_spec.rb +39 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/app_script.rb +31 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/common.rb +64 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/gem_ext.rb +124 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/main.thor +150 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/ops.rb +93 -0
- data/vendor/webrat/spec/integration/merb/tasks/merb.thor/utils.rb +40 -0
- data/vendor/webrat/spec/integration/rack/Rakefile +5 -0
- data/vendor/webrat/spec/integration/rack/rack_app.rb +16 -0
- data/vendor/webrat/spec/integration/rack/test/test_helper.rb +20 -0
- data/vendor/webrat/spec/integration/rack/test/webrat_rack_test.rb +67 -0
- data/vendor/webrat/spec/integration/rails/Rakefile +30 -0
- data/vendor/webrat/spec/integration/rails/app/controllers/application.rb +15 -0
- data/vendor/webrat/spec/integration/rails/app/controllers/buttons_controller.rb +7 -0
- data/vendor/webrat/spec/integration/rails/app/controllers/fields_controller.rb +4 -0
- data/vendor/webrat/spec/integration/rails/app/controllers/links_controller.rb +7 -0
- data/vendor/webrat/spec/integration/rails/app/controllers/webrat_controller.rb +43 -0
- data/vendor/webrat/spec/integration/rails/app/helpers/buttons_helper.rb +2 -0
- data/vendor/webrat/spec/integration/rails/app/helpers/fields_helper.rb +2 -0
- data/vendor/webrat/spec/integration/rails/app/helpers/links_helper.rb +2 -0
- data/vendor/webrat/spec/integration/rails/app/views/buttons/show.html.erb +11 -0
- data/vendor/webrat/spec/integration/rails/app/views/fields/show.html.erb +9 -0
- data/vendor/webrat/spec/integration/rails/app/views/links/show.html.erb +5 -0
- data/vendor/webrat/spec/integration/rails/app/views/webrat/before_redirect_form.html.erb +4 -0
- data/vendor/webrat/spec/integration/rails/app/views/webrat/buttons.html.erb +11 -0
- data/vendor/webrat/spec/integration/rails/app/views/webrat/form.html.erb +28 -0
- data/vendor/webrat/spec/integration/rails/config/boot.rb +109 -0
- data/vendor/webrat/spec/integration/rails/config/environment.rb +12 -0
- data/vendor/webrat/spec/integration/rails/config/environments/development.rb +17 -0
- data/vendor/webrat/spec/integration/rails/config/environments/selenium.rb +22 -0
- data/vendor/webrat/spec/integration/rails/config/environments/test.rb +22 -0
- data/vendor/webrat/spec/integration/rails/config/initializers/inflections.rb +10 -0
- data/vendor/webrat/spec/integration/rails/config/initializers/mime_types.rb +5 -0
- data/vendor/webrat/spec/integration/rails/config/initializers/new_rails_defaults.rb +17 -0
- data/vendor/webrat/spec/integration/rails/config/locales/en.yml +5 -0
- data/vendor/webrat/spec/integration/rails/config/routes.rb +18 -0
- data/vendor/webrat/spec/integration/rails/public/404.html +30 -0
- data/vendor/webrat/spec/integration/rails/public/422.html +30 -0
- data/vendor/webrat/spec/integration/rails/public/500.html +33 -0
- data/vendor/webrat/spec/integration/rails/script/about +4 -0
- data/vendor/webrat/spec/integration/rails/script/console +3 -0
- data/vendor/webrat/spec/integration/rails/script/dbconsole +3 -0
- data/vendor/webrat/spec/integration/rails/script/destroy +3 -0
- data/vendor/webrat/spec/integration/rails/script/generate +3 -0
- data/vendor/webrat/spec/integration/rails/script/performance/benchmarker +3 -0
- data/vendor/webrat/spec/integration/rails/script/performance/profiler +3 -0
- data/vendor/webrat/spec/integration/rails/script/performance/request +3 -0
- data/vendor/webrat/spec/integration/rails/script/plugin +3 -0
- data/vendor/webrat/spec/integration/rails/script/process/inspector +3 -0
- data/vendor/webrat/spec/integration/rails/script/process/reaper +3 -0
- data/vendor/webrat/spec/integration/rails/script/process/spawner +3 -0
- data/vendor/webrat/spec/integration/rails/script/runner +3 -0
- data/vendor/webrat/spec/integration/rails/script/server +3 -0
- data/vendor/webrat/spec/integration/rails/test/integration/button_click_test.rb +80 -0
- data/vendor/webrat/spec/integration/rails/test/integration/fill_in_test.rb +24 -0
- data/vendor/webrat/spec/integration/rails/test/integration/link_click_test.rb +27 -0
- data/vendor/webrat/spec/integration/rails/test/integration/webrat_test.rb +97 -0
- data/vendor/webrat/spec/integration/rails/test/test_helper.rb +25 -0
- data/vendor/webrat/spec/integration/sinatra/Rakefile +5 -0
- data/vendor/webrat/spec/integration/sinatra/classic_app.rb +64 -0
- data/vendor/webrat/spec/integration/sinatra/modular_app.rb +16 -0
- data/vendor/webrat/spec/integration/sinatra/test/classic_app_test.rb +37 -0
- data/vendor/webrat/spec/integration/sinatra/test/modular_app_test.rb +18 -0
- data/vendor/webrat/spec/integration/sinatra/test/test_helper.rb +16 -0
- data/vendor/webrat/spec/private/core/configuration_spec.rb +116 -0
- data/vendor/webrat/spec/private/core/field_spec.rb +85 -0
- data/vendor/webrat/spec/private/core/link_spec.rb +24 -0
- data/vendor/webrat/spec/private/core/logging_spec.rb +10 -0
- data/vendor/webrat/spec/private/core/session_spec.rb +195 -0
- data/vendor/webrat/spec/private/mechanize/mechanize_session_spec.rb +81 -0
- data/vendor/webrat/spec/private/merb/attaches_file_spec.rb +93 -0
- data/vendor/webrat/spec/private/merb/merb_session_spec.rb +61 -0
- data/vendor/webrat/spec/private/nokogiri_spec.rb +77 -0
- data/vendor/webrat/spec/private/rails/attaches_file_spec.rb +81 -0
- data/vendor/webrat/spec/private/rails/rails_session_spec.rb +110 -0
- data/vendor/webrat/spec/private/selenium/application_servers/rails_spec.rb +26 -0
- data/vendor/webrat/spec/public/basic_auth_spec.rb +24 -0
- data/vendor/webrat/spec/public/check_spec.rb +191 -0
- data/vendor/webrat/spec/public/choose_spec.rb +118 -0
- data/vendor/webrat/spec/public/click_area_spec.rb +106 -0
- data/vendor/webrat/spec/public/click_button_spec.rb +496 -0
- data/vendor/webrat/spec/public/click_link_spec.rb +511 -0
- data/vendor/webrat/spec/public/fill_in_spec.rb +209 -0
- data/vendor/webrat/spec/public/locators/field_by_xpath_spec.rb +19 -0
- data/vendor/webrat/spec/public/locators/field_labeled_spec.rb +172 -0
- data/vendor/webrat/spec/public/locators/field_with_id_spec.rb +16 -0
- data/vendor/webrat/spec/public/matchers/contain_spec.rb +114 -0
- data/vendor/webrat/spec/public/matchers/have_selector_spec.rb +142 -0
- data/vendor/webrat/spec/public/matchers/have_tag_spec.rb +39 -0
- data/vendor/webrat/spec/public/matchers/have_xpath_spec.rb +136 -0
- data/vendor/webrat/spec/public/reload_spec.rb +10 -0
- data/vendor/webrat/spec/public/save_and_open_spec.rb +70 -0
- data/vendor/webrat/spec/public/select_date_spec.rb +112 -0
- data/vendor/webrat/spec/public/select_datetime_spec.rb +137 -0
- data/vendor/webrat/spec/public/select_spec.rb +249 -0
- data/vendor/webrat/spec/public/select_time_spec.rb +100 -0
- data/vendor/webrat/spec/public/selenium/application_server_factory_spec.rb +49 -0
- data/vendor/webrat/spec/public/selenium/application_servers/external_spec.rb +12 -0
- data/vendor/webrat/spec/public/selenium/selenium_session_spec.rb +37 -0
- data/vendor/webrat/spec/public/set_hidden_field_spec.rb +5 -0
- data/vendor/webrat/spec/public/submit_form_spec.rb +5 -0
- data/vendor/webrat/spec/public/visit_spec.rb +58 -0
- data/vendor/webrat/spec/public/within_spec.rb +177 -0
- data/vendor/webrat/spec/rcov.opts +1 -0
- data/vendor/webrat/spec/spec.opts +2 -0
- data/vendor/webrat/spec/spec_helper.rb +50 -0
- data/vendor/webrat/vendor/selenium-server.jar +0 -0
- metadata +442 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Copyright (c) 2009, John Mettraux, jmettraux@gmail.com
|
|
3
|
+
#
|
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
6
|
+
# in the Software without restriction, including without limitation the rights
|
|
7
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
9
|
+
# furnished to do so, subject to the following conditions:
|
|
10
|
+
#
|
|
11
|
+
# The above copyright notice and this permission notice shall be included in
|
|
12
|
+
# all copies or substantial portions of the Software.
|
|
13
|
+
#
|
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
20
|
+
# THE SOFTWARE.
|
|
21
|
+
#
|
|
22
|
+
# Made in Japan.
|
|
23
|
+
#++
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
begin
|
|
27
|
+
|
|
28
|
+
require 'tokyocabinet'
|
|
29
|
+
|
|
30
|
+
rescue LoadError
|
|
31
|
+
|
|
32
|
+
raise LoadError.new(
|
|
33
|
+
"tokyocabinet 'native' C bindings not present on your system, " +
|
|
34
|
+
"see http://github.com/jmettraux/rufus-tokyo/tree/master/lib/rufus/edo")
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
require 'rufus/edo/cabinet/abstract'
|
|
38
|
+
require 'rufus/edo/cabinet/table'
|
|
39
|
+
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
|
|
2
|
+
= Rufus::Edo
|
|
3
|
+
|
|
4
|
+
wrapping Hirabayashi-san's 'native' ruby bindings into a rubiyst-friendly set of Ruby classes.
|
|
5
|
+
|
|
6
|
+
In order to use Rufus::Edo, you have to have the libtokyocabinet dynamic library installed on your system :
|
|
7
|
+
|
|
8
|
+
http://openwferu.rubyforge.org/tokyo.html
|
|
9
|
+
|
|
10
|
+
Then you can install the 'native' C bindings.
|
|
11
|
+
|
|
12
|
+
NOTE : I have only tested those native bindings with Ruby 1.8.6. To run them with JRuby, the best option is Rufus::Tokyo and its FFI bindings.
|
|
13
|
+
|
|
14
|
+
NOTE : the Ruby tyrant library provided by Hirabayashi-san is not a C binding, it's a pure Ruby connector. It is slower than Rufus::Tokyo::Tyrant and Rufus::Tokyo::TyrantTable, but the advantage is that there is no need to install cabinet and tyrant C libraries to connect your Ruby code to your Tokyo Tyrant.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
== installation of the 'native' C bindings
|
|
18
|
+
|
|
19
|
+
=== Careo's mirror gem
|
|
20
|
+
|
|
21
|
+
sudo gem install careo-tokyocabinet --source http://gems.github.com
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
=== directly from http://sf.net/tokyocabinet
|
|
25
|
+
|
|
26
|
+
Get the tokyocabinet-ruby package at :
|
|
27
|
+
|
|
28
|
+
http://sourceforge.net/project/showfiles.php?group_id=200242
|
|
29
|
+
|
|
30
|
+
unpack it :
|
|
31
|
+
|
|
32
|
+
tar xzvf tokyocabinet-ruby-1.20.tar.gz
|
|
33
|
+
cd tokyocabinet-ruby-1.20
|
|
34
|
+
|
|
35
|
+
and then, as described at : http://tokyocabinet.sourceforge.net/rubydoc/
|
|
36
|
+
|
|
37
|
+
ruby extconf.rb
|
|
38
|
+
make
|
|
39
|
+
sudo make install
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
== Rufus::Edo::Cabinet
|
|
43
|
+
|
|
44
|
+
require 'rufus/edo' # sudo gem install rufus-tokyo
|
|
45
|
+
|
|
46
|
+
db = Rufus::Edo::Cabinet.new('data.tch')
|
|
47
|
+
|
|
48
|
+
db['a'] = 'alpha'
|
|
49
|
+
|
|
50
|
+
# ...
|
|
51
|
+
|
|
52
|
+
db.close
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
== Rufus::Edo::Table
|
|
56
|
+
|
|
57
|
+
require 'rufus/edo'
|
|
58
|
+
|
|
59
|
+
db = Rufus::Edo::Table.new('data.tct')
|
|
60
|
+
|
|
61
|
+
db['customer1'] = { 'name' => 'Taira no Kyomori', 'age' => '55' }
|
|
62
|
+
|
|
63
|
+
# ...
|
|
64
|
+
|
|
65
|
+
db.close
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
== tyrant
|
|
69
|
+
|
|
70
|
+
Hirabayashi-san's pure Ruby gem for accessing Tokyo Tyrant can be installed with :
|
|
71
|
+
|
|
72
|
+
sudo gem install careo-tokyotyrant --source http://gems.github.com
|
|
73
|
+
|
|
74
|
+
It's also available at :
|
|
75
|
+
|
|
76
|
+
http://sourceforge.net/project/showfiles.php?group_id=200242
|
|
77
|
+
http://github.com/careo/tokyotyrant-ruby
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
== Rufus::Edo::NetTyrant
|
|
81
|
+
|
|
82
|
+
Note : 'NetTyrant' instead of 'Tyrant' to clearly show that this class isn't a C binding but a simple [pure Ruby] network implementation of a connection to a Tyrant.
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
require 'rufus/edo/ntyrant'
|
|
86
|
+
|
|
87
|
+
db = Rufus::Edo::NetTyrant.new('127.0.0.1', 45000)
|
|
88
|
+
|
|
89
|
+
db['a'] = 'alpha'
|
|
90
|
+
|
|
91
|
+
puts db['a]
|
|
92
|
+
# => 'alpha'
|
|
93
|
+
|
|
94
|
+
db.close
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
== Rufus::Edo::NetTyrantTable
|
|
98
|
+
|
|
99
|
+
require 'rufus/edo/ntyrant'
|
|
100
|
+
|
|
101
|
+
t = Rufus::Edo::NetTyrantTable.new('127.0.0.1', 44502)
|
|
102
|
+
|
|
103
|
+
t['client0'] = { 'name' => 'Heike no Kyomori', 'country' => 'jp' }
|
|
104
|
+
|
|
105
|
+
t.close
|
|
106
|
+
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Copyright (c) 2009, John Mettraux, jmettraux@gmail.com
|
|
3
|
+
#
|
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
6
|
+
# in the Software without restriction, including without limitation the rights
|
|
7
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
9
|
+
# furnished to do so, subject to the following conditions:
|
|
10
|
+
#
|
|
11
|
+
# The above copyright notice and this permission notice shall be included in
|
|
12
|
+
# all copies or substantial portions of the Software.
|
|
13
|
+
#
|
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
20
|
+
# THE SOFTWARE.
|
|
21
|
+
#
|
|
22
|
+
# Made in Japan.
|
|
23
|
+
#++
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
require 'rufus/tokyo/hmethods'
|
|
27
|
+
require 'rufus/tokyo/transactions'
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
module Rufus::Edo
|
|
31
|
+
|
|
32
|
+
#
|
|
33
|
+
# The base cabinet methods are gathered here. They focus on wrapping
|
|
34
|
+
# Hirabayashi-san's methods.
|
|
35
|
+
#
|
|
36
|
+
# This module is included by Edo::Cabinet and Edo::NTyrant. Placing the
|
|
37
|
+
# methods in this module avoids having to load 'TokyoCabinet' when using
|
|
38
|
+
# only rufus/edo/ntyrant.
|
|
39
|
+
#
|
|
40
|
+
module CabinetCore
|
|
41
|
+
|
|
42
|
+
include Rufus::Tokyo::HashMethods
|
|
43
|
+
include Rufus::Tokyo::Transactions
|
|
44
|
+
|
|
45
|
+
def self.included (target_module)
|
|
46
|
+
|
|
47
|
+
target_module.module_eval do
|
|
48
|
+
#
|
|
49
|
+
# Same args as initialize, but can take a block form that will
|
|
50
|
+
# close the db when done. Similar to File.open (via Zev)
|
|
51
|
+
#
|
|
52
|
+
def self.open (name, params={})
|
|
53
|
+
db = self.new(name, params)
|
|
54
|
+
if block_given?
|
|
55
|
+
yield db
|
|
56
|
+
nil
|
|
57
|
+
else
|
|
58
|
+
db
|
|
59
|
+
end
|
|
60
|
+
ensure
|
|
61
|
+
db.close if block_given? && db
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Returns the path to this database.
|
|
67
|
+
#
|
|
68
|
+
def path
|
|
69
|
+
|
|
70
|
+
@path
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# No comment
|
|
74
|
+
#
|
|
75
|
+
def []= (k, v)
|
|
76
|
+
@db.put(k, v) || raise_error
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# No comment
|
|
80
|
+
#
|
|
81
|
+
def putkeep (k, v)
|
|
82
|
+
@db.putkeep(k, v)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# (The actual #[] method is provided by HashMethods)
|
|
86
|
+
#
|
|
87
|
+
def get (k)
|
|
88
|
+
@db.get(k)
|
|
89
|
+
end
|
|
90
|
+
protected :get
|
|
91
|
+
|
|
92
|
+
# Removes a record from the cabinet, returns the value if successful
|
|
93
|
+
# else nil.
|
|
94
|
+
#
|
|
95
|
+
def delete (k)
|
|
96
|
+
v = self[k]
|
|
97
|
+
@db.out(k) ? v : nil
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Returns the number of records in the 'cabinet'
|
|
101
|
+
#
|
|
102
|
+
def size
|
|
103
|
+
@db.rnum
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# Removes all the records in the cabinet (use with care)
|
|
107
|
+
#
|
|
108
|
+
# Returns self (like Ruby's Hash does).
|
|
109
|
+
#
|
|
110
|
+
def clear
|
|
111
|
+
@db.vanish || raise_error
|
|
112
|
+
self
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# Returns the 'weight' of the db (in bytes)
|
|
116
|
+
#
|
|
117
|
+
def weight
|
|
118
|
+
@db.fsiz
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
# Closes the cabinet (and frees the datastructure allocated for it),
|
|
122
|
+
# returns true in case of success.
|
|
123
|
+
#
|
|
124
|
+
def close
|
|
125
|
+
@db.close || raise_error
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# Copies the current cabinet to a new file.
|
|
129
|
+
#
|
|
130
|
+
# Returns true if it was successful.
|
|
131
|
+
#
|
|
132
|
+
def copy (target_path)
|
|
133
|
+
@db.copy(target_path)
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
# Copies the current cabinet to a new file.
|
|
137
|
+
#
|
|
138
|
+
# Does it by copying each entry afresh to the target file. Spares some
|
|
139
|
+
# space, hence the 'compact' label...
|
|
140
|
+
#
|
|
141
|
+
def compact_copy (target_path)
|
|
142
|
+
@other_db = self.class.new(target_path)
|
|
143
|
+
self.each { |k, v| @other_db[k] = v }
|
|
144
|
+
@other_db.close
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# "synchronize updated contents of an abstract database object with
|
|
148
|
+
# the file and the device"
|
|
149
|
+
#
|
|
150
|
+
def sync
|
|
151
|
+
@db.sync || raise_error
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# Returns an array of all the primary keys in the db.
|
|
155
|
+
#
|
|
156
|
+
# With no options given, this method will return all the keys (strings)
|
|
157
|
+
# in a Ruby array.
|
|
158
|
+
#
|
|
159
|
+
# :prefix --> returns only the keys who match a given string prefix
|
|
160
|
+
#
|
|
161
|
+
# :limit --> returns a limited number of keys
|
|
162
|
+
#
|
|
163
|
+
def keys (options={})
|
|
164
|
+
|
|
165
|
+
if pref = options[:prefix]
|
|
166
|
+
|
|
167
|
+
@db.fwmkeys(pref, options[:limit] || -1)
|
|
168
|
+
|
|
169
|
+
else
|
|
170
|
+
|
|
171
|
+
limit = options[:limit] || -1
|
|
172
|
+
limit = nil if limit < 1
|
|
173
|
+
|
|
174
|
+
l = []
|
|
175
|
+
|
|
176
|
+
@db.iterinit
|
|
177
|
+
|
|
178
|
+
while (k = @db.iternext)
|
|
179
|
+
break if limit and l.size >= limit
|
|
180
|
+
l << k
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
l
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
# Deletes all the entries whose keys begin with the given prefix
|
|
188
|
+
#
|
|
189
|
+
def delete_keys_with_prefix (prefix)
|
|
190
|
+
|
|
191
|
+
# only ADB has the #misc method...
|
|
192
|
+
|
|
193
|
+
if @db.respond_to?(:misc)
|
|
194
|
+
@db.misc('outlist', @db.fwmkeys(prefix, -1))
|
|
195
|
+
else
|
|
196
|
+
@db.fwmkeys(prefix, -1).each { |k| self.delete(k) }
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
nil
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
# Given a list of keys, returns a Hash { key => value } of the
|
|
203
|
+
# matching entries (in one sweep).
|
|
204
|
+
#
|
|
205
|
+
# Warning : this is a naive (slow) implementation.
|
|
206
|
+
#
|
|
207
|
+
def lget (keys)
|
|
208
|
+
|
|
209
|
+
# only ADB has the #misc method...
|
|
210
|
+
|
|
211
|
+
if @db.respond_to?(:misc)
|
|
212
|
+
Hash[*@db.misc('getlist', keys)]
|
|
213
|
+
else
|
|
214
|
+
keys.inject({}) { |h, k| v = self[k]; h[k] = v if v; h }
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
#
|
|
219
|
+
# default impl provided by HashMethods
|
|
220
|
+
#
|
|
221
|
+
def merge! (hash)
|
|
222
|
+
|
|
223
|
+
# only ADB has the #misc method...
|
|
224
|
+
|
|
225
|
+
if @db.respond_to?(:misc)
|
|
226
|
+
@db.misc('putlist', hash.to_a.flatten)
|
|
227
|
+
else
|
|
228
|
+
super(hash)
|
|
229
|
+
end
|
|
230
|
+
self
|
|
231
|
+
end
|
|
232
|
+
alias :lput :merge!
|
|
233
|
+
|
|
234
|
+
# Given a list of keys, deletes all the matching entries (in one sweep).
|
|
235
|
+
#
|
|
236
|
+
# Warning : this is a naive (slow) implementation.
|
|
237
|
+
#
|
|
238
|
+
def ldelete (keys)
|
|
239
|
+
|
|
240
|
+
# only ADB has the #misc method...
|
|
241
|
+
|
|
242
|
+
if @db.respond_to?(:misc)
|
|
243
|
+
@db.misc('outlist', keys)
|
|
244
|
+
else
|
|
245
|
+
keys.each { |k| self.delete(k) }
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
nil
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
# Increments the value stored under the given key with the given increment
|
|
252
|
+
# (defaults to 1 (integer)).
|
|
253
|
+
#
|
|
254
|
+
def incr (key, val=1)
|
|
255
|
+
|
|
256
|
+
v = val.is_a?(Fixnum) ? @db.addint(key, val) : @db.adddouble(key, val)
|
|
257
|
+
|
|
258
|
+
raise(EdoError.new(
|
|
259
|
+
"incr failed, there is probably already a string value set " +
|
|
260
|
+
"for the key '#{key}'"
|
|
261
|
+
)) unless v
|
|
262
|
+
|
|
263
|
+
v
|
|
264
|
+
end
|
|
265
|
+
alias :adddouble :incr
|
|
266
|
+
alias :addint :incr
|
|
267
|
+
alias :add_double :incr
|
|
268
|
+
alias :add_int :incr
|
|
269
|
+
|
|
270
|
+
# Triggers a defrag (TC >= 1.4.21 only)
|
|
271
|
+
#
|
|
272
|
+
def defrag
|
|
273
|
+
|
|
274
|
+
raise(NotImplementedError.new(
|
|
275
|
+
"defrag (misc) only available when opening db with :type => :abstract"
|
|
276
|
+
)) unless @db.respond_to?(:misc)
|
|
277
|
+
|
|
278
|
+
@db.misc('defrag', [])
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
# Returns the underlying 'native' Ruby object (of the class devised by
|
|
282
|
+
# Hirabayashi-san)
|
|
283
|
+
#
|
|
284
|
+
def original
|
|
285
|
+
|
|
286
|
+
@db
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
# This is rather low-level, you'd better use #transaction like in
|
|
290
|
+
#
|
|
291
|
+
# db.transaction do
|
|
292
|
+
# db['a'] = 'alpha'
|
|
293
|
+
# db['b'] = 'bravo'
|
|
294
|
+
# db.abort if something_went_wrong?
|
|
295
|
+
# end
|
|
296
|
+
#
|
|
297
|
+
# Note that fixed-length dbs do not support transactions. It will result
|
|
298
|
+
# in a NoMethodError.
|
|
299
|
+
#
|
|
300
|
+
def tranbegin
|
|
301
|
+
@db.tranbegin
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
# This is rather low-level use #transaction and a block for a higher-level
|
|
305
|
+
# technique.
|
|
306
|
+
#
|
|
307
|
+
# Note that fixed-length dbs do not support transactions. It will result
|
|
308
|
+
# in a NoMethodError.
|
|
309
|
+
#
|
|
310
|
+
def trancommit
|
|
311
|
+
@db.trancommit
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
# This is rather low-level use #transaction and a block for a higher-level
|
|
315
|
+
# technique.
|
|
316
|
+
#
|
|
317
|
+
# Note that fixed-length dbs do not support transactions. It will result
|
|
318
|
+
# in a NoMethodError.
|
|
319
|
+
#
|
|
320
|
+
def tranabort
|
|
321
|
+
@db.tranabort
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
protected
|
|
325
|
+
|
|
326
|
+
def raise_error
|
|
327
|
+
code = @db.ecode
|
|
328
|
+
message = @db.errmsg(code)
|
|
329
|
+
raise EdoError.new("(err #{code}) #{message}")
|
|
330
|
+
end
|
|
331
|
+
end
|
|
332
|
+
end
|
|
333
|
+
|