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,291 @@
|
|
|
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
|
+
# PartialMockProxy is used to mate the mock framework to an existing
|
|
18
|
+
# object. The object is "enhanced" with a reference to a mock
|
|
19
|
+
# object (stored in <tt>@flexmock_mock</tt>). When the
|
|
20
|
+
# +should_receive+ method is sent to the proxy, it overrides the
|
|
21
|
+
# existing object's method by creating singleton method that
|
|
22
|
+
# forwards to the mock. When testing is complete, PartialMockProxy
|
|
23
|
+
# will erase the mocking infrastructure from the object being mocked
|
|
24
|
+
# (e.g. remove instance variables and mock singleton methods).
|
|
25
|
+
#
|
|
26
|
+
class PartialMockProxy
|
|
27
|
+
include Ordering
|
|
28
|
+
|
|
29
|
+
attr_reader :mock
|
|
30
|
+
|
|
31
|
+
# The following methods are added to partial mocks so that they
|
|
32
|
+
# can act like a mock.
|
|
33
|
+
|
|
34
|
+
MOCK_METHODS = [
|
|
35
|
+
:should_receive, :new_instances,
|
|
36
|
+
:flexmock_get, :flexmock_teardown, :flexmock_verify
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
# Initialize a PartialMockProxy object.
|
|
40
|
+
def initialize(obj, mock, safe_mode)
|
|
41
|
+
@obj = obj
|
|
42
|
+
@mock = mock
|
|
43
|
+
@method_definitions = {}
|
|
44
|
+
@methods_proxied = []
|
|
45
|
+
unless safe_mode
|
|
46
|
+
add_mock_method(@obj, :should_receive)
|
|
47
|
+
MOCK_METHODS.each do |sym|
|
|
48
|
+
unless @obj.respond_to?(sym)
|
|
49
|
+
add_mock_method(@obj, sym)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Get the mock object for the partial mock.
|
|
56
|
+
def flexmock_get
|
|
57
|
+
@mock
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# :call-seq:
|
|
61
|
+
# should_receive(:method_name)
|
|
62
|
+
# should_receive(:method1, method2, ...)
|
|
63
|
+
# should_receive(:meth1 => result1, :meth2 => result2, ...)
|
|
64
|
+
#
|
|
65
|
+
# Declare that the partial mock should receive a message with the given
|
|
66
|
+
# name.
|
|
67
|
+
#
|
|
68
|
+
# If more than one method name is given, then the mock object should
|
|
69
|
+
# expect to receive all the listed melthods. If a hash of method
|
|
70
|
+
# name/value pairs is given, then the each method will return the
|
|
71
|
+
# associated result. Any expectations applied to the result of
|
|
72
|
+
# +should_receive+ will be applied to all the methods defined in the
|
|
73
|
+
# argument list.
|
|
74
|
+
#
|
|
75
|
+
# An expectation object for the method name is returned as the result of
|
|
76
|
+
# this method. Further expectation constraints can be added by chaining
|
|
77
|
+
# to the result.
|
|
78
|
+
#
|
|
79
|
+
# See Expectation for a list of declarators that can be used.
|
|
80
|
+
def should_receive(*args)
|
|
81
|
+
ContainerHelper.parse_should_args(@mock, args) do |sym|
|
|
82
|
+
unless @methods_proxied.include?(sym)
|
|
83
|
+
hide_existing_method(sym)
|
|
84
|
+
end
|
|
85
|
+
ex = @mock.should_receive(sym)
|
|
86
|
+
ex.mock = self
|
|
87
|
+
ex
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def add_mock_method(obj, method_name)
|
|
92
|
+
stow_existing_definition(method_name)
|
|
93
|
+
eval_line = __LINE__ + 1
|
|
94
|
+
eval %{
|
|
95
|
+
def obj.#{method_name}(*args, &block)
|
|
96
|
+
@flexmock_proxy.#{method_name}(*args, &block)
|
|
97
|
+
end
|
|
98
|
+
}, binding, __FILE__, eval_line
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# :call-seq:
|
|
102
|
+
# new_instances.should_receive(...)
|
|
103
|
+
# new_instances { |instance| instance.should_receive(...) }
|
|
104
|
+
#
|
|
105
|
+
# new_instances is a short cut method for overriding the behavior of any
|
|
106
|
+
# new instances created via a mocked class object.
|
|
107
|
+
#
|
|
108
|
+
# By default, new_instances will mock the behaviour of the :new
|
|
109
|
+
# method. If you wish to mock a different set of class methods,
|
|
110
|
+
# just pass a list of symbols to as arguments. (previous versions
|
|
111
|
+
# also mocked :allocate by default. If you need :allocate to be
|
|
112
|
+
# mocked, just request it explicitly).
|
|
113
|
+
#
|
|
114
|
+
# For example, to stub only objects created by :make (and not
|
|
115
|
+
# :new), use:
|
|
116
|
+
#
|
|
117
|
+
# flexmock(ClassName).new_instances(:make).should_receive(...)
|
|
118
|
+
#
|
|
119
|
+
def new_instances(*allocators, &block)
|
|
120
|
+
fail ArgumentError, "new_instances requires a Class to stub" unless Class === @obj
|
|
121
|
+
allocators = [:new] if allocators.empty?
|
|
122
|
+
result = ExpectationRecorder.new
|
|
123
|
+
allocators.each do |allocate_method|
|
|
124
|
+
# HACK: Without the following lambda, Ruby 1.9 will not bind
|
|
125
|
+
# the allocate_method parameter correctly.
|
|
126
|
+
lambda { }
|
|
127
|
+
self.should_receive(allocate_method).and_return { |*args|
|
|
128
|
+
new_obj = invoke_original(allocate_method, args)
|
|
129
|
+
mock = flexmock_container.flexmock(new_obj)
|
|
130
|
+
block.call(mock) if block_given?
|
|
131
|
+
result.apply(mock)
|
|
132
|
+
new_obj
|
|
133
|
+
}
|
|
134
|
+
end
|
|
135
|
+
result
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# Invoke the original definition of method on the object supported by
|
|
139
|
+
# the stub.
|
|
140
|
+
def invoke_original(method, args)
|
|
141
|
+
method_proc = @method_definitions[method]
|
|
142
|
+
method_proc.call(*args)
|
|
143
|
+
end
|
|
144
|
+
private :invoke_original
|
|
145
|
+
|
|
146
|
+
# Verify that the mock has been properly called. After verification,
|
|
147
|
+
# detach the mocking infrastructure from the existing object.
|
|
148
|
+
def flexmock_verify
|
|
149
|
+
@mock.flexmock_verify
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# Remove all traces of the mocking framework from the existing object.
|
|
153
|
+
def flexmock_teardown
|
|
154
|
+
if ! detached?
|
|
155
|
+
@methods_proxied.each do |method_name|
|
|
156
|
+
remove_current_method(method_name)
|
|
157
|
+
restore_original_definition(method_name)
|
|
158
|
+
end
|
|
159
|
+
@obj.instance_variable_set("@flexmock_proxy", nil)
|
|
160
|
+
@obj = nil
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
# Forward to the mock's container.
|
|
165
|
+
def flexmock_container
|
|
166
|
+
@mock.flexmock_container
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# Set the proxy's mock container. This set value is ignored
|
|
170
|
+
# because the proxy always uses the container of its mock.
|
|
171
|
+
def flexmock_container=(container)
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# Forward the request for the expectation director to the mock.
|
|
175
|
+
def flexmock_expectations_for(method_name)
|
|
176
|
+
@mock.flexmock_expectations_for(method_name)
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
private
|
|
180
|
+
|
|
181
|
+
# The singleton class of the object.
|
|
182
|
+
def sclass
|
|
183
|
+
class << @obj; self; end
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
# Is the given method name a singleton method in the object we are
|
|
187
|
+
# mocking?
|
|
188
|
+
def singleton?(method_name)
|
|
189
|
+
@obj.methods(false).include?(method_name.to_s)
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
# Hide the existing method definition with a singleton defintion
|
|
193
|
+
# that proxies to our mock object. If the current definition is a
|
|
194
|
+
# singleton, we need to record the definition and remove it before
|
|
195
|
+
# creating our own singleton method. If the current definition is
|
|
196
|
+
# not a singleton, all we need to do is override it with our own
|
|
197
|
+
# singleton.
|
|
198
|
+
def hide_existing_method(method_name)
|
|
199
|
+
stow_existing_definition(method_name)
|
|
200
|
+
define_proxy_method(method_name)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
# Stow the existing method definition so that it can be recovered
|
|
204
|
+
# later.
|
|
205
|
+
def stow_existing_definition(method_name)
|
|
206
|
+
@methods_proxied << method_name
|
|
207
|
+
new_alias = create_alias_for_existing_method(method_name)
|
|
208
|
+
if new_alias
|
|
209
|
+
my_object = @obj
|
|
210
|
+
@method_definitions[method_name] = Proc.new { |*args|
|
|
211
|
+
block = nil
|
|
212
|
+
if Proc === args.last
|
|
213
|
+
block = args.last
|
|
214
|
+
args = args[0...-1]
|
|
215
|
+
end
|
|
216
|
+
my_object.send(new_alias, *args, &block)
|
|
217
|
+
}
|
|
218
|
+
end
|
|
219
|
+
remove_current_method(method_name) if singleton?(method_name)
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
# Create an alias for the existing +method_name+. Returns the new
|
|
223
|
+
# alias name. If the aliasing process fails (because the method
|
|
224
|
+
# doesn't really exist, then return nil.
|
|
225
|
+
def create_alias_for_existing_method(method_name)
|
|
226
|
+
begin
|
|
227
|
+
new_alias = new_name(method_name)
|
|
228
|
+
unless @obj.respond_to?(new_alias)
|
|
229
|
+
sclass.class_eval do
|
|
230
|
+
alias_method(new_alias, method_name)
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
new_alias
|
|
234
|
+
rescue NameError => ex
|
|
235
|
+
# Alias attempt failed
|
|
236
|
+
nil
|
|
237
|
+
end
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
# Define a proxy method that forwards to our mock object. The
|
|
241
|
+
# proxy method is defined as a singleton method on the object
|
|
242
|
+
# being mocked.
|
|
243
|
+
def define_proxy_method(method_name)
|
|
244
|
+
if method_name.to_s =~ /=$/
|
|
245
|
+
eval_line = __LINE__ + 1
|
|
246
|
+
sclass.class_eval %{
|
|
247
|
+
def #{method_name}(*args, &block)
|
|
248
|
+
@flexmock_proxy.mock.__send__(:#{method_name}, *args, &block)
|
|
249
|
+
end
|
|
250
|
+
}, __FILE__, eval_line
|
|
251
|
+
else
|
|
252
|
+
eval_line = __LINE__ + 1
|
|
253
|
+
sclass.class_eval %{
|
|
254
|
+
def #{method_name}(*args, &block)
|
|
255
|
+
@flexmock_proxy.mock.#{method_name}(*args, &block)
|
|
256
|
+
end
|
|
257
|
+
}, __FILE__, eval_line
|
|
258
|
+
make_rcov_recognize_the_above_eval_is_covered = true
|
|
259
|
+
end
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
# Restore the original singleton defintion for method_name that
|
|
263
|
+
# was saved earlier.
|
|
264
|
+
def restore_original_definition(method_name)
|
|
265
|
+
method_def = @method_definitions[method_name]
|
|
266
|
+
if method_def
|
|
267
|
+
the_alias = new_name(method_name)
|
|
268
|
+
sclass.class_eval do
|
|
269
|
+
alias_method(method_name, the_alias)
|
|
270
|
+
end
|
|
271
|
+
end
|
|
272
|
+
end
|
|
273
|
+
|
|
274
|
+
# Remove the current method if it is a singleton method of the
|
|
275
|
+
# object being mocked.
|
|
276
|
+
def remove_current_method(method_name)
|
|
277
|
+
sclass.class_eval { remove_method(method_name) }
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
# Have we been detached from the existing object?
|
|
281
|
+
def detached?
|
|
282
|
+
@obj.nil?
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
# Generate a name to be used to alias the original behavior.
|
|
286
|
+
def new_name(old_name)
|
|
287
|
+
"flexmock_original_behavior_for_#{old_name}"
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
end
|
|
291
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
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 the modules needed for rails oriented mocking.
|
|
13
|
+
|
|
14
|
+
require 'flexmock'
|
|
15
|
+
require 'flexmock/rails/view_mocking'
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
require 'flexmock'
|
|
2
|
+
|
|
3
|
+
class FlexMock
|
|
4
|
+
module MockContainer
|
|
5
|
+
|
|
6
|
+
def rails_version
|
|
7
|
+
Rails::VERSION::STRING
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Declare that the Rails controller under test should render the
|
|
11
|
+
# named view. If a view template name is given, it will be an
|
|
12
|
+
# error if the named view is not rendered during the execution of
|
|
13
|
+
# the contoller action. If no template name is given, then the
|
|
14
|
+
# any view may be rendered. If no view is actually rendered, then
|
|
15
|
+
# an assertion failure will occur.
|
|
16
|
+
#
|
|
17
|
+
# def test_my_action_does_what_it_should
|
|
18
|
+
# should_render_view 'show'
|
|
19
|
+
#
|
|
20
|
+
# get :show, :id => 1
|
|
21
|
+
#
|
|
22
|
+
# assert_response :success
|
|
23
|
+
# end
|
|
24
|
+
#
|
|
25
|
+
def should_render_view(template_name=nil)
|
|
26
|
+
if rails_version <= '1.2.4'
|
|
27
|
+
should_render_view_prior_version_124(template_name)
|
|
28
|
+
elsif rails_version <= '2.0.0'
|
|
29
|
+
should_render_view_after_version_124(template_name)
|
|
30
|
+
else
|
|
31
|
+
should_render_view_after_version_202(template_name)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
# This version of should_render_view will work for Rails 1.2.4
|
|
38
|
+
# (and prehaps some number of prior versions).
|
|
39
|
+
def should_render_view_prior_version_124(template_name) # :nodoc:
|
|
40
|
+
view = flexmock("MockView")
|
|
41
|
+
view.should_receive(
|
|
42
|
+
:assigns => {},
|
|
43
|
+
:render_file => true,
|
|
44
|
+
:first_render => "dummy_template"
|
|
45
|
+
)
|
|
46
|
+
if template_name
|
|
47
|
+
view.should_receive(:file_exists?).with(/#{template_name}$/).once.
|
|
48
|
+
and_return(true)
|
|
49
|
+
end
|
|
50
|
+
view.should_receive(:file_exists?).with(any).and_return(true)
|
|
51
|
+
view_class = flexmock("MockViewClasss")
|
|
52
|
+
view_class.should_receive(:new).and_return(view)
|
|
53
|
+
flexmock(@controller.class).should_receive(:view_class).once.
|
|
54
|
+
and_return(view_class)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# This version of should_render_view will work with versions of
|
|
58
|
+
# Rails after Version 1.2.4.
|
|
59
|
+
def should_render_view_after_version_124(template_name)
|
|
60
|
+
view = flexmock("MockView")
|
|
61
|
+
view.should_receive(
|
|
62
|
+
:assigns => {},
|
|
63
|
+
:render_file => true,
|
|
64
|
+
:template_format => :dummy_format,
|
|
65
|
+
:view_paths => :dummy_view_paths,
|
|
66
|
+
:pick_template_extension => :dummy_extension
|
|
67
|
+
)
|
|
68
|
+
if template_name
|
|
69
|
+
view.should_receive(:file_exists?).with(/#{template_name}$/).once.
|
|
70
|
+
and_return(true)
|
|
71
|
+
end
|
|
72
|
+
view.should_receive(:file_exists?).with(any).and_return(true)
|
|
73
|
+
|
|
74
|
+
# The number of times this is called changes from version 1.2.6
|
|
75
|
+
# to 2.0. The important thing is that it is checked at least once.
|
|
76
|
+
flexmock(@response).should_receive(:template).and_return(view).
|
|
77
|
+
at_least.once
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# This version of should_render_view will work with versions of
|
|
81
|
+
# Rails at Version 2.0.2 and after
|
|
82
|
+
def should_render_view_after_version_202(template_name)
|
|
83
|
+
viewmock = flexmock("ViewMock")
|
|
84
|
+
viewmock.should_receive(
|
|
85
|
+
:assigns => {},
|
|
86
|
+
:pick_template_extension => ".html",
|
|
87
|
+
:template_format =>nil,
|
|
88
|
+
:view_paths => nil,
|
|
89
|
+
:file_exists? => true,
|
|
90
|
+
:first_render => "")
|
|
91
|
+
if template_name
|
|
92
|
+
viewmock.should_receive(:render_file).with(/\/#{template_name}$/, any, any).
|
|
93
|
+
and_return(nil).once
|
|
94
|
+
viewmock.should_receive(:render_file).and_return(nil)
|
|
95
|
+
else
|
|
96
|
+
viewmock.should_receive(:render_file).at_least.once.and_return(nil)
|
|
97
|
+
end
|
|
98
|
+
flexmock(ActionView::Base).should_receive(:new).and_return(viewmock)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
end
|
|
102
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
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/argument_types'
|
|
13
|
+
|
|
14
|
+
class FlexMock
|
|
15
|
+
|
|
16
|
+
####################################################################
|
|
17
|
+
# Translate arbitrary method calls into expectations on the given
|
|
18
|
+
# mock object.
|
|
19
|
+
#
|
|
20
|
+
class Recorder
|
|
21
|
+
include FlexMock::ArgumentTypes
|
|
22
|
+
|
|
23
|
+
# Create a method recorder for the mock +mock+.
|
|
24
|
+
def initialize(mock)
|
|
25
|
+
@mock = mock
|
|
26
|
+
@strict = false
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Place the record in strict mode. While recording expectations
|
|
30
|
+
# in strict mode, the following will be true.
|
|
31
|
+
#
|
|
32
|
+
# * All expectations will be expected in the order they were
|
|
33
|
+
# recorded.
|
|
34
|
+
# * All expectations will be expected once.
|
|
35
|
+
# * All arguments will be placed in exact match mode,
|
|
36
|
+
# including regular expressions and class objects.
|
|
37
|
+
#
|
|
38
|
+
# Strict mode is usually used when giving the recorder to a known
|
|
39
|
+
# good algorithm. Strict mode captures the exact sequence of
|
|
40
|
+
# calls and validate that the code under test performs the exact
|
|
41
|
+
# same sequence of calls.
|
|
42
|
+
#
|
|
43
|
+
# The recorder may exit strict mode via a
|
|
44
|
+
# <tt>should_be_strict(false)</tt> call. Non-strict expectations
|
|
45
|
+
# may be recorded at that point, or even explicit expectations
|
|
46
|
+
# (using +should_receieve+) can be specified.
|
|
47
|
+
#
|
|
48
|
+
def should_be_strict(is_strict=true)
|
|
49
|
+
@strict = is_strict
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Is the recorder in strict mode?
|
|
53
|
+
def strict?
|
|
54
|
+
@strict
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Record an expectation for receiving the method +sym+ with the
|
|
58
|
+
# given arguments.
|
|
59
|
+
def method_missing(sym, *args, &block)
|
|
60
|
+
expectation = @mock.should_receive(sym).and_return(&block)
|
|
61
|
+
if strict?
|
|
62
|
+
args = args.collect { |arg| eq(arg) }
|
|
63
|
+
expectation.with(*args).ordered.once
|
|
64
|
+
else
|
|
65
|
+
expectation.with(*args)
|
|
66
|
+
end
|
|
67
|
+
expectation
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
end
|