mack 0.8.1 → 0.8.2
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/CHANGELOG +22 -1
- data/bin/mack +3 -0
- data/bin/mackery-console +4 -0
- data/bin/mackery-server +21 -4
- data/lib/gems.rb +15 -0
- data/lib/gems/abstract-1.0.0/lib/abstract.rb +75 -0
- data/lib/gems/builder-2.1.2/lib/blankslate.rb +113 -0
- data/lib/gems/builder-2.1.2/lib/builder.rb +13 -0
- data/lib/gems/builder-2.1.2/lib/builder/blankslate.rb +20 -0
- data/lib/gems/builder-2.1.2/lib/builder/css.rb +250 -0
- data/lib/gems/builder-2.1.2/lib/builder/xchar.rb +115 -0
- data/lib/gems/builder-2.1.2/lib/builder/xmlbase.rb +139 -0
- data/lib/gems/builder-2.1.2/lib/builder/xmlevents.rb +63 -0
- data/lib/gems/builder-2.1.2/lib/builder/xmlmarkup.rb +328 -0
- data/lib/gems/configatron-2.1.5/lib/configatron.rb +6 -0
- data/lib/gems/configatron-2.1.5/lib/configatron/configatron.rb +52 -0
- data/lib/gems/configatron-2.1.5/lib/configatron/errors.rb +7 -0
- data/lib/gems/configatron-2.1.5/lib/configatron/kernel.rb +8 -0
- data/lib/gems/configatron-2.1.5/lib/configatron/store.rb +224 -0
- data/lib/gems/daemons-1.0.10/lib/daemons.rb +283 -0
- data/lib/gems/daemons-1.0.10/lib/daemons/application.rb +372 -0
- data/lib/gems/daemons-1.0.10/lib/daemons/application_group.rb +152 -0
- data/lib/gems/daemons-1.0.10/lib/daemons/cmdline.rb +117 -0
- data/lib/gems/daemons-1.0.10/lib/daemons/controller.rb +134 -0
- data/lib/gems/daemons-1.0.10/lib/daemons/daemonize.rb +263 -0
- data/lib/gems/daemons-1.0.10/lib/daemons/exceptions.rb +28 -0
- data/lib/gems/daemons-1.0.10/lib/daemons/monitor.rb +127 -0
- data/lib/gems/daemons-1.0.10/lib/daemons/pid.rb +101 -0
- data/lib/gems/daemons-1.0.10/lib/daemons/pidfile.rb +111 -0
- data/lib/gems/daemons-1.0.10/lib/daemons/pidmem.rb +10 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock.rb +13 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/argument_matchers.rb +57 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/argument_types.rb +42 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/base.rb +24 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/composite.rb +10 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/core.rb +218 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/core_class_methods.rb +83 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/default_framework_adapter.rb +31 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/deprecated_methods.rb +62 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/errors.rb +23 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/expectation.rb +476 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/expectation_director.rb +87 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/mock_container.rb +321 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/noop.rb +13 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/ordering.rb +51 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/partial_mock.rb +291 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/rails.rb +15 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/rails/view_mocking.rb +102 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/recorder.rb +71 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/rspec.rb +34 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/test_unit.rb +32 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/test_unit_integration.rb +53 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/undefined.rb +50 -0
- data/lib/gems/flexmock-0.8.3/lib/flexmock/validators.rb +77 -0
- data/lib/gems/genosaurus-1.2.4/lib/genosaurus.rb +233 -0
- data/lib/gems/lockfile-1.4.3/bin/rlock +360 -0
- data/lib/gems/lockfile-1.4.3/bin/rlock-1.4.3 +360 -0
- data/lib/gems/lockfile-1.4.3/lib/lockfile-1.4.3.rb +564 -0
- data/lib/gems/lockfile-1.4.3/lib/lockfile.rb +564 -0
- data/lib/gems/logging-0.9.4/data/bad_logging_1.rb +13 -0
- data/lib/gems/logging-0.9.4/data/bad_logging_2.rb +21 -0
- data/lib/gems/logging-0.9.4/data/logging.rb +42 -0
- data/lib/gems/logging-0.9.4/data/logging.yaml +63 -0
- data/lib/gems/logging-0.9.4/data/simple_logging.rb +13 -0
- data/lib/gems/logging-0.9.4/lib/logging.rb +404 -0
- data/lib/gems/logging-0.9.4/lib/logging/appender.rb +300 -0
- data/lib/gems/logging-0.9.4/lib/logging/appenders/console.rb +62 -0
- data/lib/gems/logging-0.9.4/lib/logging/appenders/email.rb +130 -0
- data/lib/gems/logging-0.9.4/lib/logging/appenders/file.rb +54 -0
- data/lib/gems/logging-0.9.4/lib/logging/appenders/growl.rb +197 -0
- data/lib/gems/logging-0.9.4/lib/logging/appenders/io.rb +80 -0
- data/lib/gems/logging-0.9.4/lib/logging/appenders/rolling_file.rb +291 -0
- data/lib/gems/logging-0.9.4/lib/logging/appenders/syslog.rb +201 -0
- data/lib/gems/logging-0.9.4/lib/logging/config/configurator.rb +190 -0
- data/lib/gems/logging-0.9.4/lib/logging/config/yaml_configurator.rb +195 -0
- data/lib/gems/logging-0.9.4/lib/logging/layout.rb +110 -0
- data/lib/gems/logging-0.9.4/lib/logging/layouts/basic.rb +34 -0
- data/lib/gems/logging-0.9.4/lib/logging/layouts/pattern.rb +291 -0
- data/lib/gems/logging-0.9.4/lib/logging/log_event.rb +49 -0
- data/lib/gems/logging-0.9.4/lib/logging/logger.rb +490 -0
- data/lib/gems/logging-0.9.4/lib/logging/repository.rb +172 -0
- data/lib/gems/logging-0.9.4/lib/logging/root_logger.rb +61 -0
- data/lib/gems/logging-0.9.4/lib/logging/stats.rb +278 -0
- data/lib/gems/logging-0.9.4/lib/logging/utils.rb +130 -0
- data/lib/gems/rack-0.4.0/bin/rackup +172 -0
- data/lib/gems/rack-0.4.0/lib/rack.rb +81 -0
- data/lib/gems/rack-0.4.0/lib/rack/adapter/camping.rb +22 -0
- data/lib/gems/rack-0.4.0/lib/rack/auth/abstract/handler.rb +28 -0
- data/lib/gems/rack-0.4.0/lib/rack/auth/abstract/request.rb +37 -0
- data/lib/gems/rack-0.4.0/lib/rack/auth/basic.rb +58 -0
- data/lib/gems/rack-0.4.0/lib/rack/auth/digest/md5.rb +124 -0
- data/lib/gems/rack-0.4.0/lib/rack/auth/digest/nonce.rb +51 -0
- data/lib/gems/rack-0.4.0/lib/rack/auth/digest/params.rb +55 -0
- data/lib/gems/rack-0.4.0/lib/rack/auth/digest/request.rb +40 -0
- data/lib/gems/rack-0.4.0/lib/rack/auth/openid.rb +437 -0
- data/lib/gems/rack-0.4.0/lib/rack/builder.rb +56 -0
- data/lib/gems/rack-0.4.0/lib/rack/cascade.rb +36 -0
- data/lib/gems/rack-0.4.0/lib/rack/commonlogger.rb +61 -0
- data/lib/gems/rack-0.4.0/lib/rack/deflater.rb +63 -0
- data/lib/gems/rack-0.4.0/lib/rack/directory.rb +158 -0
- data/lib/gems/rack-0.4.0/lib/rack/file.rb +116 -0
- data/lib/gems/rack-0.4.0/lib/rack/handler.rb +44 -0
- data/lib/gems/rack-0.4.0/lib/rack/handler/cgi.rb +57 -0
- data/lib/gems/rack-0.4.0/lib/rack/handler/evented_mongrel.rb +8 -0
- data/lib/gems/rack-0.4.0/lib/rack/handler/fastcgi.rb +84 -0
- data/lib/gems/rack-0.4.0/lib/rack/handler/lsws.rb +52 -0
- data/lib/gems/rack-0.4.0/lib/rack/handler/mongrel.rb +78 -0
- data/lib/gems/rack-0.4.0/lib/rack/handler/scgi.rb +57 -0
- data/lib/gems/rack-0.4.0/lib/rack/handler/webrick.rb +57 -0
- data/lib/gems/rack-0.4.0/lib/rack/lint.rb +401 -0
- data/lib/gems/rack-0.4.0/lib/rack/lobster.rb +65 -0
- data/lib/gems/rack-0.4.0/lib/rack/mock.rb +160 -0
- data/lib/gems/rack-0.4.0/lib/rack/recursive.rb +57 -0
- data/lib/gems/rack-0.4.0/lib/rack/reloader.rb +64 -0
- data/lib/gems/rack-0.4.0/lib/rack/request.rb +209 -0
- data/lib/gems/rack-0.4.0/lib/rack/response.rb +166 -0
- data/lib/gems/rack-0.4.0/lib/rack/session/abstract/id.rb +140 -0
- data/lib/gems/rack-0.4.0/lib/rack/session/cookie.rb +71 -0
- data/lib/gems/rack-0.4.0/lib/rack/session/memcache.rb +97 -0
- data/lib/gems/rack-0.4.0/lib/rack/session/pool.rb +73 -0
- data/lib/gems/rack-0.4.0/lib/rack/showexceptions.rb +344 -0
- data/lib/gems/rack-0.4.0/lib/rack/showstatus.rb +105 -0
- data/lib/gems/rack-0.4.0/lib/rack/static.rb +38 -0
- data/lib/gems/rack-0.4.0/lib/rack/urlmap.rb +48 -0
- data/lib/gems/rack-0.4.0/lib/rack/utils.rb +318 -0
- data/lib/gems/rcov-0.8.1.2.0/bin/rcov +1327 -0
- data/lib/gems/rcov-0.8.1.2.0/ext/rcovrt/callsite.c +242 -0
- data/lib/gems/rcov-0.8.1.2.0/ext/rcovrt/extconf.rb +11 -0
- data/lib/gems/rcov-0.8.1.2.0/ext/rcovrt/rcovrt.c +329 -0
- data/lib/gems/rcov-0.8.1.2.0/lib/rcov.rb +988 -0
- data/lib/gems/rcov-0.8.1.2.0/lib/rcov/lowlevel.rb +147 -0
- data/lib/gems/rcov-0.8.1.2.0/lib/rcov/rant.rb +87 -0
- data/lib/gems/rcov-0.8.1.2.0/lib/rcov/rcovtask.rb +156 -0
- data/lib/gems/rcov-0.8.1.2.0/lib/rcov/report.rb +1236 -0
- data/lib/gems/rcov-0.8.1.2.0/lib/rcov/version.rb +13 -0
- data/lib/gems/rspec-1.1.11/bin/autospec +4 -0
- data/lib/gems/rspec-1.1.11/bin/spec +4 -0
- data/lib/gems/rspec-1.1.11/lib/autotest/discover.rb +3 -0
- data/lib/gems/rspec-1.1.11/lib/autotest/rspec.rb +46 -0
- data/lib/gems/rspec-1.1.11/lib/spec.rb +32 -0
- data/lib/gems/rspec-1.1.11/lib/spec/adapters.rb +1 -0
- data/lib/gems/rspec-1.1.11/lib/spec/adapters/ruby_engine.rb +26 -0
- data/lib/gems/rspec-1.1.11/lib/spec/adapters/ruby_engine/mri.rb +8 -0
- data/lib/gems/rspec-1.1.11/lib/spec/adapters/ruby_engine/rubinius.rb +8 -0
- data/lib/gems/rspec-1.1.11/lib/spec/example.rb +12 -0
- data/lib/gems/rspec-1.1.11/lib/spec/example/before_and_after_hooks.rb +93 -0
- data/lib/gems/rspec-1.1.11/lib/spec/example/configuration.rb +167 -0
- data/lib/gems/rspec-1.1.11/lib/spec/example/errors.rb +30 -0
- data/lib/gems/rspec-1.1.11/lib/spec/example/example_group.rb +25 -0
- data/lib/gems/rspec-1.1.11/lib/spec/example/example_group_factory.rb +81 -0
- data/lib/gems/rspec-1.1.11/lib/spec/example/example_group_methods.rb +368 -0
- data/lib/gems/rspec-1.1.11/lib/spec/example/example_matcher.rb +44 -0
- data/lib/gems/rspec-1.1.11/lib/spec/example/example_methods.rb +105 -0
- data/lib/gems/rspec-1.1.11/lib/spec/example/module_reopening_fix.rb +21 -0
- data/lib/gems/rspec-1.1.11/lib/spec/example/pending.rb +18 -0
- data/lib/gems/rspec-1.1.11/lib/spec/example/shared_example_group.rb +52 -0
- data/lib/gems/rspec-1.1.11/lib/spec/expectations.rb +56 -0
- data/lib/gems/rspec-1.1.11/lib/spec/expectations/differs/default.rb +66 -0
- data/lib/gems/rspec-1.1.11/lib/spec/expectations/errors.rb +12 -0
- data/lib/gems/rspec-1.1.11/lib/spec/expectations/extensions.rb +2 -0
- data/lib/gems/rspec-1.1.11/lib/spec/expectations/extensions/object.rb +63 -0
- data/lib/gems/rspec-1.1.11/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
- data/lib/gems/rspec-1.1.11/lib/spec/expectations/handler.rb +52 -0
- data/lib/gems/rspec-1.1.11/lib/spec/extensions.rb +4 -0
- data/lib/gems/rspec-1.1.11/lib/spec/extensions/class.rb +24 -0
- data/lib/gems/rspec-1.1.11/lib/spec/extensions/main.rb +87 -0
- data/lib/gems/rspec-1.1.11/lib/spec/extensions/metaclass.rb +7 -0
- data/lib/gems/rspec-1.1.11/lib/spec/extensions/object.rb +6 -0
- data/lib/gems/rspec-1.1.11/lib/spec/interop/test.rb +12 -0
- data/lib/gems/rspec-1.1.11/lib/spec/interop/test/unit/autorunner.rb +6 -0
- data/lib/gems/rspec-1.1.11/lib/spec/interop/test/unit/testcase.rb +71 -0
- data/lib/gems/rspec-1.1.11/lib/spec/interop/test/unit/testresult.rb +6 -0
- data/lib/gems/rspec-1.1.11/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
- data/lib/gems/rspec-1.1.11/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers.rb +162 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/be.rb +221 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/be_close.rb +37 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/change.rb +148 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/eql.rb +43 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/equal.rb +43 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/exist.rb +22 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/has.rb +34 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/have.rb +150 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/include.rb +77 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/match.rb +41 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/operator_matcher.rb +79 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/raise_error.rb +132 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/respond_to.rb +46 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/satisfy.rb +47 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/simple_matcher.rb +132 -0
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/throw_symbol.rb +74 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks.rb +200 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/argument_constraints.rb +165 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/argument_expectation.rb +49 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/error_generator.rb +84 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/errors.rb +10 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/extensions.rb +1 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/extensions/object.rb +3 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/framework.rb +15 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/message_expectation.rb +331 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/methods.rb +51 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/mock.rb +56 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/order_group.rb +29 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/proxy.rb +224 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/space.rb +28 -0
- data/lib/gems/rspec-1.1.11/lib/spec/mocks/spec_methods.rb +46 -0
- data/lib/gems/rspec-1.1.11/lib/spec/rake/spectask.rb +227 -0
- data/lib/gems/rspec-1.1.11/lib/spec/rake/verify_rcov.rb +52 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner.rb +213 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/backtrace_tweaker.rb +56 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/class_and_arguments_parser.rb +16 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/command_line.rb +17 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/drb_command_line.rb +20 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/example_group_runner.rb +59 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/base_formatter.rb +79 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/base_text_formatter.rb +126 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/failing_example_groups_formatter.rb +27 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/html_formatter.rb +337 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/nested_text_formatter.rb +65 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/profile_formatter.rb +51 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/progress_bar_formatter.rb +34 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/specdoc_formatter.rb +39 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/story/html_formatter.rb +174 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/story/plain_text_formatter.rb +194 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/story/progress_bar_formatter.rb +42 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/heckle_runner.rb +72 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/option_parser.rb +205 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/options.rb +320 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/reporter.rb +167 -0
- data/lib/gems/rspec-1.1.11/lib/spec/runner/spec_parser.rb +71 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story.rb +10 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/extensions.rb +3 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/extensions/main.rb +86 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/extensions/regexp.rb +9 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/extensions/string.rb +9 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/given_scenario.rb +14 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/runner.rb +59 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/runner/plain_text_story_runner.rb +48 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/runner/scenario_collector.rb +18 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/runner/scenario_runner.rb +54 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/runner/story_mediator.rb +137 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/runner/story_parser.rb +247 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/runner/story_runner.rb +70 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/scenario.rb +14 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/step.rb +70 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/step_group.rb +89 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/step_mother.rb +38 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/story.rb +39 -0
- data/lib/gems/rspec-1.1.11/lib/spec/story/world.rb +128 -0
- data/lib/gems/rspec-1.1.11/lib/spec/version.rb +13 -0
- data/lib/gems/rspec-1.1.11/plugins/mock_frameworks/flexmock.rb +23 -0
- data/lib/gems/rspec-1.1.11/plugins/mock_frameworks/mocha.rb +19 -0
- data/lib/gems/rspec-1.1.11/plugins/mock_frameworks/rr.rb +21 -0
- data/lib/gems/rspec-1.1.11/plugins/mock_frameworks/rspec.rb +20 -0
- data/lib/gems/rspec-1.1.11/rake_tasks/examples.rake +7 -0
- data/lib/gems/rspec-1.1.11/rake_tasks/examples_with_rcov.rake +9 -0
- data/lib/gems/rspec-1.1.11/rake_tasks/failing_examples_with_html.rake +9 -0
- data/lib/gems/rspec-1.1.11/rake_tasks/verify_rcov.rake +7 -0
- data/lib/gems/rspec-1.1.11/spec/README.jruby +15 -0
- data/lib/gems/rspec-1.1.11/spec/autotest/autotest_helper.rb +6 -0
- data/lib/gems/rspec-1.1.11/spec/autotest/autotest_matchers.rb +47 -0
- data/lib/gems/rspec-1.1.11/spec/autotest/discover_spec.rb +19 -0
- data/lib/gems/rspec-1.1.11/spec/autotest/rspec_spec.rb +150 -0
- data/lib/gems/rspec-1.1.11/spec/rspec_suite.rb +6 -0
- data/lib/gems/rspec-1.1.11/spec/ruby_forker.rb +13 -0
- data/lib/gems/rspec-1.1.11/spec/spec.opts +6 -0
- data/lib/gems/rspec-1.1.11/spec/spec/adapters/ruby_engine_spec.rb +16 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/configuration_spec.rb +296 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_class_definition_spec.rb +48 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_factory_spec.rb +165 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_methods_spec.rb +584 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_spec.rb +683 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_matcher_spec.rb +96 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_methods_spec.rb +169 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_runner_spec.rb +194 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/nested_example_group_spec.rb +71 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/pending_module_spec.rb +145 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/predicate_matcher_spec.rb +21 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/shared_example_group_spec.rb +281 -0
- data/lib/gems/rspec-1.1.11/spec/spec/example/subclassing_example_group_spec.rb +25 -0
- data/lib/gems/rspec-1.1.11/spec/spec/expectations/differs/default_spec.rb +127 -0
- data/lib/gems/rspec-1.1.11/spec/spec/expectations/extensions/object_spec.rb +95 -0
- data/lib/gems/rspec-1.1.11/spec/spec/expectations/fail_with_spec.rb +71 -0
- data/lib/gems/rspec-1.1.11/spec/spec/extensions/main_spec.rb +71 -0
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/spec_spec.rb +52 -0
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/test_unit_spec_helper.rb +14 -0
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/testcase_spec.rb +49 -0
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/be_close_spec.rb +39 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/be_spec.rb +248 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/change_spec.rb +329 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/description_generation_spec.rb +153 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/eql_spec.rb +28 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/equal_spec.rb +28 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/exist_spec.rb +57 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/handler_spec.rb +150 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/has_spec.rb +63 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/have_spec.rb +394 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/include_spec.rb +64 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/match_spec.rb +37 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/matcher_methods_spec.rb +78 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/mock_constraint_matchers_spec.rb +24 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/operator_matcher_spec.rb +191 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/raise_error_spec.rb +315 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/respond_to_spec.rb +54 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/satisfy_spec.rb +36 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/simple_matcher_spec.rb +93 -0
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/throw_symbol_spec.rb +54 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/argument_expectation_spec.rb +23 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/at_least_spec.rb +97 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/at_most_spec.rb +93 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_10263_spec.rb +24 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_11545_spec.rb +33 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_496.rb +17 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +95 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/hash_including_matcher_spec.rb +53 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/mock_ordering_spec.rb +84 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/mock_space_spec.rb +54 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/mock_spec.rb +555 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/null_object_mock_spec.rb +54 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/once_counts_spec.rb +53 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/options_hash_spec.rb +35 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/partial_mock_spec.rb +149 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +130 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/precise_counts_spec.rb +52 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/record_messages_spec.rb +26 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/stub_spec.rb +188 -0
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/twice_counts_spec.rb +67 -0
- data/lib/gems/rspec-1.1.11/spec/spec/package/bin_spec_spec.rb +22 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/command_line_spec.rb +141 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/drb_command_line_spec.rb +97 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/empty_file.txt +0 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/examples.txt +2 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/failed.txt +3 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/base_formatter_spec.rb +112 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.4.html +365 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +387 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.5.html +371 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +381 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.6.html +370 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatter_spec.rb +61 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/nested_text_formatter_spec.rb +318 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/profile_formatter_spec.rb +65 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +155 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +103 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/story/html_formatter_spec.rb +135 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +600 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb +82 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +365 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +370 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/heckle_runner_spec.rb +78 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/heckler_spec.rb +13 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/option_parser_spec.rb +421 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/options_spec.rb +450 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/output_one_time_fixture.rb +7 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/output_one_time_fixture_runner.rb +8 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/output_one_time_spec.rb +16 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +62 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/reporter_spec.rb +238 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/resources/a_bar.rb +0 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/resources/a_foo.rb +0 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/resources/a_spec.rb +1 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/spec.opts +2 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_drb.opts +1 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_parser/spec_parser_fixture.rb +70 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_parser_spec.rb +85 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_spaced.opts +2 -0
- data/lib/gems/rspec-1.1.11/spec/spec/runner_spec.rb +11 -0
- data/lib/gems/rspec-1.1.11/spec/spec/spec_classes.rb +133 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/builders.rb +46 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/extensions/main_spec.rb +161 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/extensions_spec.rb +14 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/given_scenario_spec.rb +27 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner/plain_text_story_runner_spec.rb +90 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner/scenario_collector_spec.rb +27 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner/scenario_runner_spec.rb +214 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner/story_mediator_spec.rb +143 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner/story_parser_spec.rb +401 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner/story_runner_spec.rb +294 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner_spec.rb +93 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/scenario_spec.rb +18 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/step_group_spec.rb +157 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/step_mother_spec.rb +84 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/step_spec.rb +272 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/story_helper.rb +2 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/story_spec.rb +84 -0
- data/lib/gems/rspec-1.1.11/spec/spec/story/world_spec.rb +423 -0
- data/lib/gems/rspec-1.1.11/spec/spec_helper.rb +77 -0
- data/lib/gems/rspec-1.1.11/stories/all.rb +5 -0
- data/lib/gems/rspec-1.1.11/stories/configuration/before_blocks.story +21 -0
- data/lib/gems/rspec-1.1.11/stories/configuration/stories.rb +7 -0
- data/lib/gems/rspec-1.1.11/stories/example_groups/autogenerated_docstrings +45 -0
- data/lib/gems/rspec-1.1.11/stories/example_groups/example_group_with_should_methods +17 -0
- data/lib/gems/rspec-1.1.11/stories/example_groups/nested_groups +17 -0
- data/lib/gems/rspec-1.1.11/stories/example_groups/output +25 -0
- data/lib/gems/rspec-1.1.11/stories/example_groups/stories.rb +7 -0
- data/lib/gems/rspec-1.1.11/stories/helper.rb +6 -0
- data/lib/gems/rspec-1.1.11/stories/interop/examples_and_tests_together +30 -0
- data/lib/gems/rspec-1.1.11/stories/interop/stories.rb +7 -0
- data/lib/gems/rspec-1.1.11/stories/interop/test_case_with_should_methods +17 -0
- data/lib/gems/rspec-1.1.11/stories/mock_framework_integration/stories.rb +7 -0
- data/lib/gems/rspec-1.1.11/stories/mock_framework_integration/use_flexmock.story +9 -0
- data/lib/gems/rspec-1.1.11/stories/pending_stories/README +3 -0
- data/lib/gems/rspec-1.1.11/stories/resources/helpers/cmdline.rb +9 -0
- data/lib/gems/rspec-1.1.11/stories/resources/helpers/story_helper.rb +16 -0
- data/lib/gems/rspec-1.1.11/stories/resources/matchers/smart_match.rb +37 -0
- data/lib/gems/rspec-1.1.11/stories/resources/spec/before_blocks_example.rb +32 -0
- data/lib/gems/rspec-1.1.11/stories/resources/spec/example_group_with_should_methods.rb +12 -0
- data/lib/gems/rspec-1.1.11/stories/resources/spec/simple_spec.rb +8 -0
- data/lib/gems/rspec-1.1.11/stories/resources/spec/spec_with_flexmock.rb +18 -0
- data/lib/gems/rspec-1.1.11/stories/resources/steps/running_rspec.rb +50 -0
- data/lib/gems/rspec-1.1.11/stories/resources/stories/failing_story.rb +15 -0
- data/lib/gems/rspec-1.1.11/stories/resources/test/spec_and_test_together.rb +57 -0
- data/lib/gems/rspec-1.1.11/stories/resources/test/test_case_with_should_methods.rb +30 -0
- data/lib/gems/rspec-1.1.11/stories/stories/multiline_steps.story +23 -0
- data/lib/gems/rspec-1.1.11/stories/stories/steps/multiline_steps.rb +13 -0
- data/lib/gems/rspec-1.1.11/stories/stories/stories.rb +6 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/builder.js +136 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/controls.js +972 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/dragdrop.js +976 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/effects.js +1117 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/prototype.js +4140 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/rspec.js +149 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/scriptaculous.js +58 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/slider.js +276 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/sound.js +55 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/unittest.js +568 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/lib/server.rb +24 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/stories.html +176 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/stylesheets/rspec.css +136 -0
- data/lib/gems/rspec-1.1.11/story_server/prototype/stylesheets/test.css +90 -0
- data/lib/mack/boot/configuration.rb +2 -0
- data/lib/mack/boot/console.rb +2 -0
- data/lib/mack/boot/gems.rb +6 -1
- data/lib/mack/boot/logging.rb +1 -1
- data/lib/mack/controller/request.rb +2 -55
- data/lib/mack/controller/request/date_time_parameter.rb +37 -0
- data/lib/mack/controller/request/parameters.rb +31 -0
- data/lib/mack/core_extensions/gem_kernel.rb +30 -0
- data/lib/mack/core_extensions/kernel.rb +31 -14
- data/lib/mack/routing/route_map.rb +19 -18
- data/lib/mack/routing/route_object.rb +14 -3
- data/lib/mack/routing/routes.rb +4 -0
- data/lib/mack/runner.rb +11 -0
- data/lib/mack/version.rb +1 -1
- data/lib/mack_app.rb +1 -26
- data/lib/mack_core.rb +2 -50
- data/lib/mack_tasks.rb +1 -32
- metadata +669 -90
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
#---
|
|
4
|
+
# Copyright 2003, 2004, 2005, 2006, 2007 by Jim Weirich (jim@weirichhouse.org).
|
|
5
|
+
# All rights reserved.
|
|
6
|
+
#
|
|
7
|
+
# Permission is granted for use, copying, modification, distribution,
|
|
8
|
+
# and distribution of modified versions of this work as long as the
|
|
9
|
+
# above copyright notice is included.
|
|
10
|
+
#+++
|
|
11
|
+
|
|
12
|
+
require 'flexmock/noop'
|
|
13
|
+
|
|
14
|
+
class FlexMock
|
|
15
|
+
|
|
16
|
+
# Error raised when flexmock is used incorrectly.
|
|
17
|
+
class UsageError < ::RuntimeError
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class MockError < ::RuntimeError
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
#---
|
|
4
|
+
# Copyright 2003, 2004, 2005, 2006, 2007 by Jim Weirich (jim@weirichhouse.org).
|
|
5
|
+
# All rights reserved.
|
|
6
|
+
|
|
7
|
+
# Permission is granted for use, copying, modification, distribution,
|
|
8
|
+
# and distribution of modified versions of this work as long as the
|
|
9
|
+
# above copyright notice is included.
|
|
10
|
+
#+++
|
|
11
|
+
|
|
12
|
+
require 'flexmock/noop'
|
|
13
|
+
|
|
14
|
+
class FlexMock
|
|
15
|
+
|
|
16
|
+
####################################################################
|
|
17
|
+
# An Expectation is returned from each +should_receive+ message sent
|
|
18
|
+
# to mock object. Each expectation records how a message matching
|
|
19
|
+
# the message name (argument to +should_receive+) and the argument
|
|
20
|
+
# list (given by +with+) should behave. Mock expectations can be
|
|
21
|
+
# recorded by chaining the declaration methods defined in this
|
|
22
|
+
# class.
|
|
23
|
+
#
|
|
24
|
+
# For example:
|
|
25
|
+
#
|
|
26
|
+
# mock.should_receive(:meth).with(args).and_returns(result)
|
|
27
|
+
#
|
|
28
|
+
class Expectation
|
|
29
|
+
|
|
30
|
+
attr_reader :expected_args, :order_number
|
|
31
|
+
attr_accessor :mock
|
|
32
|
+
|
|
33
|
+
# Create an expectation for a method named +sym+.
|
|
34
|
+
def initialize(mock, sym)
|
|
35
|
+
@mock = mock
|
|
36
|
+
@sym = sym
|
|
37
|
+
@expected_args = nil
|
|
38
|
+
@count_validators = []
|
|
39
|
+
@count_validator_class = ExactCountValidator
|
|
40
|
+
@actual_count = 0
|
|
41
|
+
@return_value = nil
|
|
42
|
+
@return_queue = []
|
|
43
|
+
@yield_queue = []
|
|
44
|
+
@order_number = nil
|
|
45
|
+
@global_order_number = nil
|
|
46
|
+
@globally = nil
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def to_s
|
|
50
|
+
FlexMock.format_args(@sym, @expected_args)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Verify the current call with the given arguments matches the
|
|
54
|
+
# expectations recorded in this object.
|
|
55
|
+
def verify_call(*args)
|
|
56
|
+
validate_order
|
|
57
|
+
@actual_count += 1
|
|
58
|
+
perform_yielding(args)
|
|
59
|
+
return_value(args)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Public return value (odd name to avoid accidental use as a
|
|
63
|
+
# constraint).
|
|
64
|
+
def _return_value(args) # :nodoc:
|
|
65
|
+
return_value(args)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# Find the return value for this expectation. (private version)
|
|
69
|
+
def return_value(args)
|
|
70
|
+
case @return_queue.size
|
|
71
|
+
when 0
|
|
72
|
+
block = lambda { |*args| @return_value }
|
|
73
|
+
when 1
|
|
74
|
+
block = @return_queue.first
|
|
75
|
+
else
|
|
76
|
+
block = @return_queue.shift
|
|
77
|
+
end
|
|
78
|
+
block.call(*args)
|
|
79
|
+
end
|
|
80
|
+
private :return_value
|
|
81
|
+
|
|
82
|
+
# Yield stored values to any blocks given.
|
|
83
|
+
def perform_yielding(args)
|
|
84
|
+
@return_value = nil
|
|
85
|
+
unless @yield_queue.empty?
|
|
86
|
+
block = args.last
|
|
87
|
+
values = (@yield_queue.size == 1) ? @yield_queue.first : @yield_queue.shift
|
|
88
|
+
if block && block.respond_to?(:call)
|
|
89
|
+
@return_value = block.call(*values)
|
|
90
|
+
else
|
|
91
|
+
fail MockError, "No Block given to mock with 'and_yield' expectation"
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
private :perform_yielding
|
|
96
|
+
|
|
97
|
+
# Is this expectation eligible to be called again? It is eligible
|
|
98
|
+
# only if all of its count validators agree that it is eligible.
|
|
99
|
+
def eligible?
|
|
100
|
+
@count_validators.all? { |v| v.eligible?(@actual_count) }
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# Is this expectation constrained by any call counts?
|
|
104
|
+
def call_count_constrained?
|
|
105
|
+
! @count_validators.empty?
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# Validate that the order
|
|
109
|
+
def validate_order
|
|
110
|
+
if @order_number
|
|
111
|
+
@mock.flexmock_validate_order(to_s, @order_number)
|
|
112
|
+
end
|
|
113
|
+
if @global_order_number
|
|
114
|
+
@mock.flexmock_container.flexmock_validate_order(to_s, @global_order_number)
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
private :validate_order
|
|
118
|
+
|
|
119
|
+
# Validate the correct number of calls have been made. Called by
|
|
120
|
+
# the teardown process.
|
|
121
|
+
def flexmock_verify
|
|
122
|
+
@count_validators.each do |v|
|
|
123
|
+
v.validate(@actual_count)
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# Does the argument list match this expectation's argument
|
|
128
|
+
# specification.
|
|
129
|
+
def match_args(args)
|
|
130
|
+
# TODO: Rethink this:
|
|
131
|
+
# return false if @expected_args.nil?
|
|
132
|
+
return true if @expected_args.nil?
|
|
133
|
+
return false if args.size != @expected_args.size
|
|
134
|
+
(0...args.size).all? { |i| match_arg(@expected_args[i], args[i]) }
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
# Does the expected argument match the corresponding actual value.
|
|
138
|
+
def match_arg(expected, actual)
|
|
139
|
+
expected === actual ||
|
|
140
|
+
expected == actual ||
|
|
141
|
+
( Regexp === expected && expected === actual.to_s )
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# Declare that the method should expect the given argument list.
|
|
145
|
+
def with(*args)
|
|
146
|
+
@expected_args = args
|
|
147
|
+
self
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
# Declare that the method should be called with no arguments.
|
|
151
|
+
def with_no_args
|
|
152
|
+
with
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# Declare that the method can be called with any number of
|
|
156
|
+
# arguments of any type.
|
|
157
|
+
def with_any_args
|
|
158
|
+
@expected_args = nil
|
|
159
|
+
self
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
# :call-seq:
|
|
163
|
+
# and_return(value)
|
|
164
|
+
# and_return(value, value, ...)
|
|
165
|
+
# and_return { |*args| code }
|
|
166
|
+
#
|
|
167
|
+
# Declare that the method returns a particular value (when the
|
|
168
|
+
# argument list is matched).
|
|
169
|
+
#
|
|
170
|
+
# * If a single value is given, it will be returned for all matching
|
|
171
|
+
# calls.
|
|
172
|
+
# * If multiple values are given, each value will be returned in turn for
|
|
173
|
+
# each successive call. If the number of matching calls is greater
|
|
174
|
+
# than the number of values, the last value will be returned for
|
|
175
|
+
# the extra matching calls.
|
|
176
|
+
# * If a block is given, it is evaluated on each call and its
|
|
177
|
+
# value is returned.
|
|
178
|
+
#
|
|
179
|
+
# For example:
|
|
180
|
+
#
|
|
181
|
+
# mock.should_receive(:f).returns(12) # returns 12
|
|
182
|
+
#
|
|
183
|
+
# mock.should_receive(:f).with(String). # returns an
|
|
184
|
+
# returns { |str| str.upcase } # upcased string
|
|
185
|
+
#
|
|
186
|
+
# +returns+ is an alias for +and_return+.
|
|
187
|
+
#
|
|
188
|
+
def and_return(*args, &block)
|
|
189
|
+
if block_given?
|
|
190
|
+
@return_queue << block
|
|
191
|
+
else
|
|
192
|
+
args.each do |arg|
|
|
193
|
+
@return_queue << lambda { |*a| arg }
|
|
194
|
+
end
|
|
195
|
+
end
|
|
196
|
+
self
|
|
197
|
+
end
|
|
198
|
+
alias :returns :and_return # :nodoc:
|
|
199
|
+
|
|
200
|
+
# Declare that the method returns and undefined object
|
|
201
|
+
# (FlexMock.undefined). Since the undefined object will always
|
|
202
|
+
# return itself for any message sent to it, it is a good "I don't
|
|
203
|
+
# care" value to return for methods that are commonly used in
|
|
204
|
+
# method chains.
|
|
205
|
+
#
|
|
206
|
+
# For example, if m.foo returns the undefined object, then:
|
|
207
|
+
#
|
|
208
|
+
# m.foo.bar.baz
|
|
209
|
+
#
|
|
210
|
+
# returns the undefined object without throwing an exception.
|
|
211
|
+
#
|
|
212
|
+
def and_return_undefined
|
|
213
|
+
and_return(FlexMock.undefined)
|
|
214
|
+
end
|
|
215
|
+
alias :returns_undefined :and_return_undefined
|
|
216
|
+
|
|
217
|
+
# :call-seq:
|
|
218
|
+
# and_yield(value1, value2, ...)
|
|
219
|
+
#
|
|
220
|
+
# Declare that the mocked method is expected to be given a block
|
|
221
|
+
# and that the block will be called with the values supplied to
|
|
222
|
+
# yield. If the mock is called multiple times, mulitple
|
|
223
|
+
# <tt>and_yield</tt> declarations can be used to supply different
|
|
224
|
+
# values on each call.
|
|
225
|
+
#
|
|
226
|
+
# An error is raised if the mocked method is not called with a
|
|
227
|
+
# block.
|
|
228
|
+
def and_yield(*yield_values)
|
|
229
|
+
@yield_queue << yield_values
|
|
230
|
+
end
|
|
231
|
+
alias :yields :and_yield
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
# :call-seq:
|
|
235
|
+
# and_raise(an_exception)
|
|
236
|
+
# and_raise(SomeException)
|
|
237
|
+
# and_raise(SomeException, args, ...)
|
|
238
|
+
#
|
|
239
|
+
# Declares that the method will raise the given exception (with
|
|
240
|
+
# an optional message) when executed.
|
|
241
|
+
#
|
|
242
|
+
# * If an exception instance is given, then that instance will be
|
|
243
|
+
# raised.
|
|
244
|
+
#
|
|
245
|
+
# * If an exception class is given, the exception raised with be
|
|
246
|
+
# an instance of that class constructed with +new+. Any
|
|
247
|
+
# additional arguments in the argument list will be passed to
|
|
248
|
+
# the +new+ constructor when it is invoked.
|
|
249
|
+
#
|
|
250
|
+
# +raises+ is an alias for +and_raise+.
|
|
251
|
+
#
|
|
252
|
+
def and_raise(exception, *args)
|
|
253
|
+
and_return { raise exception, *args }
|
|
254
|
+
end
|
|
255
|
+
alias :raises :and_raise
|
|
256
|
+
|
|
257
|
+
# :call-seq:
|
|
258
|
+
# and_throw(a_symbol)
|
|
259
|
+
# and_throw(a_symbol, value)
|
|
260
|
+
#
|
|
261
|
+
# Declares that the method will throw the given symbol (with an
|
|
262
|
+
# optional value) when executed.
|
|
263
|
+
#
|
|
264
|
+
# +throws+ is an alias for +and_throw+.
|
|
265
|
+
#
|
|
266
|
+
def and_throw(sym, value=nil)
|
|
267
|
+
and_return { throw sym, value }
|
|
268
|
+
end
|
|
269
|
+
alias :throws :and_throw
|
|
270
|
+
|
|
271
|
+
# Declare that the method may be called any number of times.
|
|
272
|
+
def zero_or_more_times
|
|
273
|
+
at_least.never
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
# Declare that the method is called +limit+ times with the
|
|
277
|
+
# declared argument list. This may be modified by the +at_least+
|
|
278
|
+
# and +at_most+ declarators.
|
|
279
|
+
def times(limit)
|
|
280
|
+
@count_validators << @count_validator_class.new(self, limit) unless limit.nil?
|
|
281
|
+
@count_validator_class = ExactCountValidator
|
|
282
|
+
self
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
# Declare that the method is never expected to be called with the
|
|
286
|
+
# given argument list. This may be modified by the +at_least+ and
|
|
287
|
+
# +at_most+ declarators.
|
|
288
|
+
def never
|
|
289
|
+
times(0)
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
# Declare that the method is expected to be called exactly once
|
|
293
|
+
# with the given argument list. This may be modified by the
|
|
294
|
+
# +at_least+ and +at_most+ declarators.
|
|
295
|
+
def once
|
|
296
|
+
times(1)
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
# Declare that the method is expected to be called exactly twice
|
|
300
|
+
# with the given argument list. This may be modified by the
|
|
301
|
+
# +at_least+ and +at_most+ declarators.
|
|
302
|
+
def twice
|
|
303
|
+
times(2)
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
# Modifies the next call count declarator (+times+, +never+,
|
|
307
|
+
# +once+ or +twice+) so that the declarator means the method is
|
|
308
|
+
# called at least that many times.
|
|
309
|
+
#
|
|
310
|
+
# E.g. method f must be called at least twice:
|
|
311
|
+
#
|
|
312
|
+
# mock.should_receive(:f).at_least.twice
|
|
313
|
+
#
|
|
314
|
+
def at_least
|
|
315
|
+
@count_validator_class = AtLeastCountValidator
|
|
316
|
+
self
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
# Modifies the next call count declarator (+times+, +never+,
|
|
320
|
+
# +once+ or +twice+) so that the declarator means the method is
|
|
321
|
+
# called at most that many times.
|
|
322
|
+
#
|
|
323
|
+
# E.g. method f must be called no more than twice
|
|
324
|
+
#
|
|
325
|
+
# mock.should_receive(:f).at_most.twice
|
|
326
|
+
#
|
|
327
|
+
def at_most
|
|
328
|
+
@count_validator_class = AtMostCountValidator
|
|
329
|
+
self
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
# Declare that the given method must be called in order. All
|
|
333
|
+
# ordered method calls must be received in the order specified by
|
|
334
|
+
# the ordering of the +should_receive+ messages. Receiving a
|
|
335
|
+
# methods out of the specified order will cause a test failure.
|
|
336
|
+
#
|
|
337
|
+
# If the user needs more fine control over ordering
|
|
338
|
+
# (e.g. specifying that a group of messages may be received in any
|
|
339
|
+
# order as long as they all come after another group of messages),
|
|
340
|
+
# a _group_ _name_ may be specified in the +ordered+ calls. All
|
|
341
|
+
# messages within the same group may be received in any order.
|
|
342
|
+
#
|
|
343
|
+
# For example, in the following, messages +flip+ and +flop+ may be
|
|
344
|
+
# received in any order (because they are in the same group), but
|
|
345
|
+
# must occur strictly after +start+ but before +end+. The message
|
|
346
|
+
# +any_time+ may be received at any time because it is not
|
|
347
|
+
# ordered.
|
|
348
|
+
#
|
|
349
|
+
# m = FlexMock.new
|
|
350
|
+
# m.should_receive(:any_time)
|
|
351
|
+
# m.should_receive(:start).ordered
|
|
352
|
+
# m.should_receive(:flip).ordered(:flip_flop_group)
|
|
353
|
+
# m.should_receive(:flop).ordered(:flip_flop_group)
|
|
354
|
+
# m.should_receive(:end).ordered
|
|
355
|
+
#
|
|
356
|
+
def ordered(group_name=nil)
|
|
357
|
+
if @globally
|
|
358
|
+
@global_order_number = define_ordered(group_name, @mock.flexmock_container)
|
|
359
|
+
else
|
|
360
|
+
@order_number = define_ordered(group_name, @mock)
|
|
361
|
+
end
|
|
362
|
+
@globally = false
|
|
363
|
+
self
|
|
364
|
+
end
|
|
365
|
+
|
|
366
|
+
# Modifier that changes the next ordered constraint to apply
|
|
367
|
+
# globally across all mock objects in the container.
|
|
368
|
+
def globally
|
|
369
|
+
@globally = true
|
|
370
|
+
self
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
# Helper method for defining ordered expectations.
|
|
374
|
+
def define_ordered(group_name, ordering)
|
|
375
|
+
fail UsageError, "Mock #{@mock.flexmock_name} is not in a container and cannot be globally ordered." if ordering.nil?
|
|
376
|
+
if group_name.nil?
|
|
377
|
+
result = ordering.flexmock_allocate_order
|
|
378
|
+
elsif (num = ordering.flexmock_groups[group_name])
|
|
379
|
+
result = num
|
|
380
|
+
else
|
|
381
|
+
result = ordering.flexmock_allocate_order
|
|
382
|
+
ordering.flexmock_groups[group_name] = result
|
|
383
|
+
end
|
|
384
|
+
result
|
|
385
|
+
end
|
|
386
|
+
private :define_ordered
|
|
387
|
+
|
|
388
|
+
def by_default
|
|
389
|
+
expectations = mock.flexmock_expectations_for(@sym)
|
|
390
|
+
expectations.defaultify_expectation(self) if expectations
|
|
391
|
+
end
|
|
392
|
+
|
|
393
|
+
end
|
|
394
|
+
|
|
395
|
+
##########################################################################
|
|
396
|
+
# A composite expectation allows several expectations to be grouped into a
|
|
397
|
+
# single composite and then apply the same constraints to all expectations
|
|
398
|
+
# in the group.
|
|
399
|
+
class CompositeExpectation
|
|
400
|
+
|
|
401
|
+
# Initialize the composite expectation.
|
|
402
|
+
def initialize
|
|
403
|
+
@expectations = []
|
|
404
|
+
end
|
|
405
|
+
|
|
406
|
+
# Add an expectation to the composite.
|
|
407
|
+
def add(expectation)
|
|
408
|
+
@expectations << expectation
|
|
409
|
+
end
|
|
410
|
+
|
|
411
|
+
# Apply the constraint method to all expectations in the composite.
|
|
412
|
+
def method_missing(sym, *args, &block)
|
|
413
|
+
@expectations.each do |expectation|
|
|
414
|
+
expectation.send(sym, *args, &block)
|
|
415
|
+
end
|
|
416
|
+
self
|
|
417
|
+
end
|
|
418
|
+
|
|
419
|
+
# The following methods return a value, so we make an arbitrary choice
|
|
420
|
+
# and return the value for the first expectation in the composite.
|
|
421
|
+
|
|
422
|
+
# Return the order number of the first expectation in the list.
|
|
423
|
+
def order_number
|
|
424
|
+
@expectations.first.order_number
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
# Return the associated mock object.
|
|
428
|
+
def mock
|
|
429
|
+
@expectations.first.mock
|
|
430
|
+
end
|
|
431
|
+
|
|
432
|
+
# Start a new method expectation. The following constraints will be
|
|
433
|
+
# applied to the new expectation.
|
|
434
|
+
def should_receive(*args, &block)
|
|
435
|
+
@expectations.first.mock.should_receive(*args, &block)
|
|
436
|
+
end
|
|
437
|
+
|
|
438
|
+
# Return a string representations
|
|
439
|
+
def to_s
|
|
440
|
+
if @expectations.size > 1
|
|
441
|
+
"[" + @expectations.collect { |e| e.to_s }.join(', ') + "]"
|
|
442
|
+
else
|
|
443
|
+
@expectations.first.to_s
|
|
444
|
+
end
|
|
445
|
+
end
|
|
446
|
+
end
|
|
447
|
+
|
|
448
|
+
##########################################################################
|
|
449
|
+
# An expectation recorder records any expectations received and plays them
|
|
450
|
+
# back on demand. This is used to collect the expectations in the blockless
|
|
451
|
+
# version of the new_instances call.
|
|
452
|
+
#
|
|
453
|
+
class ExpectationRecorder
|
|
454
|
+
|
|
455
|
+
# Initialize the recorder.
|
|
456
|
+
def initialize
|
|
457
|
+
@expectations = []
|
|
458
|
+
end
|
|
459
|
+
|
|
460
|
+
# Save any incoming messages to be played back later.
|
|
461
|
+
def method_missing(sym, *args, &block)
|
|
462
|
+
@expectations << [sym, args, block]
|
|
463
|
+
self
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
# Apply the recorded messages to the given object in a chaining fashion
|
|
467
|
+
# (i.e. the result of the previous call is used as the target of the next
|
|
468
|
+
# call).
|
|
469
|
+
def apply(mock)
|
|
470
|
+
obj = mock
|
|
471
|
+
@expectations.each do |sym, args, block|
|
|
472
|
+
obj = obj.send(sym, *args, &block)
|
|
473
|
+
end
|
|
474
|
+
end
|
|
475
|
+
end
|
|
476
|
+
end
|