has_finder 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/License.txt +20 -0
- data/Manifest.txt +431 -0
- data/README.txt +1 -0
- data/Rakefile +4 -0
- data/config/hoe.rb +70 -0
- data/config/requirements.rb +17 -0
- data/lib/has_finder.rb +1 -0
- data/lib/has_finder/has_finder.rb +84 -0
- data/lib/has_finder/metaid.rb +15 -0
- data/lib/has_finder/version.rb +9 -0
- data/log/debug.log +0 -0
- data/nbproject/private/private.xml +4 -0
- data/nbproject/private/rake-t.txt +1 -0
- data/nbproject/project.properties +4 -0
- data/nbproject/project.xml +15 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/setup.rb +1585 -0
- data/spec/rails/README +182 -0
- data/spec/rails/Rakefile +10 -0
- data/spec/rails/app/controllers/application.rb +7 -0
- data/spec/rails/app/helpers/application_helper.rb +3 -0
- data/spec/rails/app/models/being.rb +3 -0
- data/spec/rails/config/boot.rb +45 -0
- data/spec/rails/config/database.yml +36 -0
- data/spec/rails/config/environment.rb +62 -0
- data/spec/rails/config/environments/development.rb +21 -0
- data/spec/rails/config/environments/production.rb +18 -0
- data/spec/rails/config/environments/test.rb +19 -0
- data/spec/rails/config/routes.rb +23 -0
- data/spec/rails/db/migrate/001_create_beings.rb +12 -0
- data/spec/rails/db/schema.rb +17 -0
- data/spec/rails/doc/README_FOR_APP +2 -0
- data/spec/rails/log/development.log +432 -0
- data/spec/rails/log/production.log +0 -0
- data/spec/rails/log/server.log +0 -0
- data/spec/rails/log/test.log +5820 -0
- data/spec/rails/nbproject/private/config.properties +0 -0
- data/spec/rails/nbproject/private/private.properties +1 -0
- data/spec/rails/nbproject/private/rake-t.txt +54 -0
- data/spec/rails/nbproject/project.properties +4 -0
- data/spec/rails/nbproject/project.xml +9 -0
- data/spec/rails/previous_failures.txt +0 -0
- data/spec/rails/public/404.html +30 -0
- data/spec/rails/public/500.html +30 -0
- data/spec/rails/public/dispatch.cgi +10 -0
- data/spec/rails/public/dispatch.fcgi +24 -0
- data/spec/rails/public/dispatch.rb +10 -0
- data/spec/rails/public/favicon.ico +0 -0
- data/spec/rails/public/images/rails.png +0 -0
- data/spec/rails/public/index.html +277 -0
- data/spec/rails/public/javascripts/application.js +2 -0
- data/spec/rails/public/javascripts/controls.js +833 -0
- data/spec/rails/public/javascripts/dragdrop.js +942 -0
- data/spec/rails/public/javascripts/effects.js +1088 -0
- data/spec/rails/public/javascripts/prototype.js +2515 -0
- data/spec/rails/public/robots.txt +1 -0
- data/spec/rails/script/about +3 -0
- data/spec/rails/script/breakpointer +3 -0
- data/spec/rails/script/console +3 -0
- data/spec/rails/script/destroy +3 -0
- data/spec/rails/script/generate +3 -0
- data/spec/rails/script/performance/benchmarker +3 -0
- data/spec/rails/script/performance/profiler +3 -0
- data/spec/rails/script/plugin +3 -0
- data/spec/rails/script/process/inspector +3 -0
- data/spec/rails/script/process/reaper +3 -0
- data/spec/rails/script/process/spawner +3 -0
- data/spec/rails/script/runner +3 -0
- data/spec/rails/script/server +3 -0
- data/spec/rails/script/spec +4 -0
- data/spec/rails/script/spec_server +45 -0
- data/spec/rails/spec/fixtures/beings.yml +12 -0
- data/spec/rails/spec/models/being_spec.rb +98 -0
- data/spec/rails/spec/spec.opts +6 -0
- data/spec/rails/spec/spec_helper.rb +15 -0
- data/spec/rails/test/test_helper.rb +28 -0
- data/spec/rails/tmp/sessions/ruby_sess.5edc9bf3b65456d0 +0 -0
- data/spec/rails/vendor/plugins/rspec/CHANGES +797 -0
- data/spec/rails/vendor/plugins/rspec/MIT-LICENSE +20 -0
- data/spec/rails/vendor/plugins/rspec/README +70 -0
- data/spec/rails/vendor/plugins/rspec/Rakefile +304 -0
- data/spec/rails/vendor/plugins/rspec/UPGRADE +31 -0
- data/spec/rails/vendor/plugins/rspec/bin/spec +3 -0
- data/spec/rails/vendor/plugins/rspec/bin/spec_translator +8 -0
- data/spec/rails/vendor/plugins/rspec/examples/auto_spec_description_example.rb +19 -0
- data/spec/rails/vendor/plugins/rspec/examples/before_and_after_example.rb +39 -0
- data/spec/rails/vendor/plugins/rspec/examples/behave_as_example.rb +45 -0
- data/spec/rails/vendor/plugins/rspec/examples/custom_expectation_matchers.rb +54 -0
- data/spec/rails/vendor/plugins/rspec/examples/custom_formatter.rb +11 -0
- data/spec/rails/vendor/plugins/rspec/examples/dynamic_spec.rb +9 -0
- data/spec/rails/vendor/plugins/rspec/examples/file_accessor.rb +18 -0
- data/spec/rails/vendor/plugins/rspec/examples/file_accessor_spec.rb +38 -0
- data/spec/rails/vendor/plugins/rspec/examples/greeter_spec.rb +30 -0
- data/spec/rails/vendor/plugins/rspec/examples/helper_method_example.rb +11 -0
- data/spec/rails/vendor/plugins/rspec/examples/io_processor.rb +8 -0
- data/spec/rails/vendor/plugins/rspec/examples/io_processor_spec.rb +21 -0
- data/spec/rails/vendor/plugins/rspec/examples/legacy_spec.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/examples/mocking_example.rb +27 -0
- data/spec/rails/vendor/plugins/rspec/examples/multi_threaded_behaviour_runner.rb +25 -0
- data/spec/rails/vendor/plugins/rspec/examples/not_yet_implemented_spec.rb +12 -0
- data/spec/rails/vendor/plugins/rspec/examples/partial_mock_example.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/examples/predicate_example.rb +27 -0
- data/spec/rails/vendor/plugins/rspec/examples/priority.txt +1 -0
- data/spec/rails/vendor/plugins/rspec/examples/shared_behaviours_example.rb +39 -0
- data/spec/rails/vendor/plugins/rspec/examples/spec_helper.rb +1 -0
- data/spec/rails/vendor/plugins/rspec/examples/stack.rb +36 -0
- data/spec/rails/vendor/plugins/rspec/examples/stack_spec.rb +97 -0
- data/spec/rails/vendor/plugins/rspec/examples/stubbing_example.rb +69 -0
- data/spec/rails/vendor/plugins/rspec/examples/test_case_adapter_example.rb +26 -0
- data/spec/rails/vendor/plugins/rspec/examples/test_case_spec.rb +65 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/diffing_spec.rb +36 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/failure_in_setup.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/failure_in_teardown.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/mocking_example.rb +33 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/mocking_with_flexmock.rb +26 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/mocking_with_mocha.rb +25 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/partial_mock_example.rb +20 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/predicate_example.rb +29 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/raising_example.rb +47 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/spec_helper.rb +1 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/syntax_error_example.rb +7 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/team_spec.rb +46 -0
- data/spec/rails/vendor/plugins/rspec/failing_examples/timeout_behaviour.rb +7 -0
- data/spec/rails/vendor/plugins/rspec/init.rb +3 -0
- data/spec/rails/vendor/plugins/rspec/lib/autotest/discover.rb +3 -0
- data/spec/rails/vendor/plugins/rspec/lib/autotest/rspec.rb +67 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec.rb +13 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/behaviour.rb +210 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/behaviour_callbacks.rb +78 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/behaviour_eval.rb +220 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/behaviour_factory.rb +42 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/composite_proc_builder.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/configuration.rb +119 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/description.rb +69 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/example.rb +127 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/example_matcher.rb +40 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/dsl/example_should_raise_handler.rb +74 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations.rb +56 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/differs/default.rb +61 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/errors.rb +6 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/extensions.rb +2 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/extensions/object.rb +66 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/expectations/handler.rb +43 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/extensions.rb +1 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/extensions/object.rb +6 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers.rb +166 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/be.rb +206 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/be_close.rb +37 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/change.rb +120 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/eql.rb +43 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/equal.rb +43 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/has.rb +44 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/have.rb +145 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/include.rb +70 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/match.rb +41 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/operator_matcher.rb +72 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/raise_error.rb +100 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/respond_to.rb +45 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/satisfy.rb +47 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/matchers/throw_symbol.rb +72 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks.rb +208 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/argument_constraint_matchers.rb +27 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/argument_expectation.rb +183 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/error_generator.rb +84 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/errors.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/extensions/object.rb +3 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb +231 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/methods.rb +35 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/mock.rb +29 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/order_group.rb +29 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/proxy.rb +163 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/space.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/mocks/spec_methods.rb +30 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/rake/spectask.rb +175 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/rake/verify_rcov.rb +52 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner.rb +165 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/backtrace_tweaker.rb +56 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb +102 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/command_line.rb +22 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/drb_command_line.rb +21 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/extensions/kernel.rb +50 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/extensions/object.rb +32 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter.rb +9 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/base_formatter.rb +68 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/base_text_formatter.rb +102 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/failing_behaviours_formatter.rb +25 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/failing_examples_formatter.rb +22 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/html_formatter.rb +316 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +30 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/rdoc_formatter.rb +24 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/heckle_runner.rb +72 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/option_parser.rb +226 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/options.rb +158 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/reporter.rb +114 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/runner/spec_parser.rb +50 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/test_case_adapter.rb +10 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/translator.rb +106 -0
- data/spec/rails/vendor/plugins/rspec/lib/spec/version.rb +22 -0
- data/spec/rails/vendor/plugins/rspec/plugins/mock_frameworks/flexmock.rb +27 -0
- data/spec/rails/vendor/plugins/rspec/plugins/mock_frameworks/mocha.rb +21 -0
- data/spec/rails/vendor/plugins/rspec/plugins/mock_frameworks/rspec.rb +18 -0
- data/spec/rails/vendor/plugins/rspec/rake_tasks/examples.rake +7 -0
- data/spec/rails/vendor/plugins/rspec/rake_tasks/examples_specdoc.rake +9 -0
- data/spec/rails/vendor/plugins/rspec/rake_tasks/examples_with_rcov.rake +9 -0
- data/spec/rails/vendor/plugins/rspec/rake_tasks/failing_examples_with_html.rake +9 -0
- data/spec/rails/vendor/plugins/rspec/rake_tasks/verify_rcov.rake +7 -0
- data/spec/rails/vendor/plugins/rspec/spec.opts +13 -0
- data/spec/rails/vendor/plugins/rspec/spec/README.jruby +14 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/behaviour_eval_spec.rb +49 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/behaviour_factory_spec.rb +30 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/behaviour_spec.rb +624 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/composite_proc_builder_spec.rb +57 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/configuration_spec.rb +50 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/description_spec.rb +81 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/example_class_spec.rb +24 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/example_instance_spec.rb +162 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/example_should_raise_spec.rb +137 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/predicate_matcher_spec.rb +21 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/dsl/shared_behaviour_spec.rb +228 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb +107 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb +46 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/expectations/fail_with_spec.rb +71 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/be_close_spec.rb +39 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb +209 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb +232 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb +159 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/eql_spec.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/equal_spec.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/exist_spec.rb +48 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb +88 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/has_spec.rb +37 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb +272 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/include_spec.rb +45 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/match_spec.rb +37 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/matcher_methods_spec.rb +78 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/mock_constraint_matchers_spec.rb +24 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb +158 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/raise_error_spec.rb +147 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/respond_to_spec.rb +54 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/satisfy_spec.rb +36 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb +51 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/any_number_of_times_spec.rb +29 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/argument_expectation_spec.rb +19 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/at_least_spec.rb +97 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/at_most_spec.rb +93 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +114 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/mock_ordering_spec.rb +84 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/mock_space_spec.rb +54 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb +377 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/null_object_mock_spec.rb +40 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/once_counts_spec.rb +53 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb +33 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb +52 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +148 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/precise_counts_spec.rb +52 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/record_messages_spec.rb +26 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb +159 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/mocks/twice_counts_spec.rb +67 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb +12 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/behaviour_runner_spec.rb +206 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb +33 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/context_matching_spec.rb +27 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb +81 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/empty_file.txt +0 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/example_matcher_spec.rb +127 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/examples.txt +2 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/execution_context_spec.rb +31 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/extensions/kernel_spec.rb +36 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/failed.txt +3 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +27 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +28 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.4.html +333 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +344 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5.html +338 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +338 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +56 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +21 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +36 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +78 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +19 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_spec.rb +46 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb +11 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +21 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +56 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb +63 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/heckler_spec.rb +14 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/object_ext_spec.rb +11 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb +348 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/options_spec.rb +142 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +56 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb +153 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/spec.opts +2 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb +93 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/runner/spec_spaced.opts +2 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/spec_classes.rb +111 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec/translator_spec.rb +216 -0
- data/spec/rails/vendor/plugins/rspec/spec/spec_helper.rb +43 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/MIT-LICENSE +31 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/README +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/Rakefile +9 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/CHANGES +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/rspec_generator.rb +31 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/previous_failures.txt +0 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec +4 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec_server +45 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec.opts +6 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec_helper.rb +26 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/USAGE +33 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/rspec_controller_generator.rb +42 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/controller_spec.rb +23 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/helper_spec.rb +11 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/view_spec.rb +12 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_model/USAGE +18 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_model/rspec_model_generator.rb +30 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_model/templates/model_spec.rb +11 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/rspec_scaffold_generator.rb +161 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/controller_spec.rb +303 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/edit_erb_spec.rb +25 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/helper_spec.rb +4 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/index_erb_spec.rb +22 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/new_erb_spec.rb +26 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/show_erb_spec.rb +22 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/init.rb +9 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/autotest/rails_rspec.rb +81 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/dsl.rb +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/dsl/configuration.rb +23 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/matchers.rb +3 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/matchers/have.rb +12 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails.rb +57 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl.rb +40 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/assigns_hash_proxy.rb +42 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour.rb +8 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/base.rb +82 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/controller.rb +246 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/functional.rb +90 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/helper.rb +100 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/model.rb +21 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/view.rb +185 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/ivar_proxy.rb +62 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions.rb +7 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/base.rb +11 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/rescue.rb +10 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/test_response.rb +5 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_view/base.rb +26 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/active_record/base.rb +29 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/object.rb +5 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers.rb +29 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/assert_select.rb +131 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/have_text.rb +55 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb +106 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/render_template.rb +63 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/lib/spec/rails/version.rb +26 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/assigns_hash_proxy_spec.rb +55 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/behaviour_factory_spec.rb +53 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/controller_isolation_spec.rb +43 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/controller_spec_spec.rb +124 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/helper_spec_spec.rb +62 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/ivar_proxy_spec.rb +64 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/model_spec_spec.rb +14 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/shared_behaviour_spec.rb +16 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/test_unit_assertion_accessibility_spec.rb +28 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/dsl/view_spec_spec.rb +165 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/extensions/active_record_spec.rb +17 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/matchers/assert_select_spec.rb +718 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/matchers/description_generation_spec.rb +42 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/matchers/redirect_to_spec.rb +183 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/rails/matchers/render_spec.rb +112 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec/spec_helper.rb +40 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/controllers/controller_spec_controller.rb +36 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/controllers/redirect_spec_controller.rb +59 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/controllers/render_spec_controller.rb +18 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/controllers/rjs_spec_controller.rb +58 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/helpers/explicit_helper.rb +10 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/helpers/more_explicit_helper.rb +5 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/helpers/plugin_application_helper.rb +6 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/helpers/view_spec_helper.rb +13 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/_a_partial.rhtml +0 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_the_assigns_hash.rhtml +0 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_errors_in_template.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_template.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/_a_partial.rhtml +0 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.js.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rhtml +0 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/_replacement_partial.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_div.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_page_element.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/insert_html.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html_with_partial.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_effect.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_toggle_effect.rjs +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/no_tags.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_no_attributes.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_one_attribute.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_included_partial.rhtml +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_included_partial_collection_with_spacer_template.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_local_variable.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_spacer.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/accessor.rhtml +3 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/entry_form.rhtml +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/explicit_helper.rhtml +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/multiple_helpers.rhtml +3 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/partial_collection_including_template.rhtml +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/partial_including_template.rhtml +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/partial_with_array.rhtml +1 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/show.rhtml +2 -0
- data/spec/rails/vendor/plugins/rspec_on_rails/tasks/rspec.rake +90 -0
- data/tasks/deployment.rake +27 -0
- data/tasks/environment.rake +7 -0
- data/tasks/website.rake +9 -0
- data/test/test_has_finder.rb +11 -0
- data/test/test_helper.rb +2 -0
- metadata +490 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
module Spec
|
2
|
+
module Runner
|
3
|
+
module Formatter
|
4
|
+
class ProgressBarFormatter < BaseTextFormatter
|
5
|
+
def add_behaviour(name)
|
6
|
+
end
|
7
|
+
|
8
|
+
def example_failed(name, counter, failure)
|
9
|
+
@output.print failure.expectation_not_met? ? red('F') : magenta('F')
|
10
|
+
@output.flush
|
11
|
+
end
|
12
|
+
|
13
|
+
def example_passed(name)
|
14
|
+
@output.print green('.')
|
15
|
+
@output.flush
|
16
|
+
end
|
17
|
+
|
18
|
+
def example_not_implemented(name)
|
19
|
+
@output.print yellow('*')
|
20
|
+
@output.flush
|
21
|
+
end
|
22
|
+
|
23
|
+
def start_dump
|
24
|
+
@output.puts
|
25
|
+
@output.flush
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Spec
|
2
|
+
module Runner
|
3
|
+
module Formatter
|
4
|
+
class RdocFormatter < BaseTextFormatter
|
5
|
+
def add_behaviour(name)
|
6
|
+
@output.puts "# #{name}"
|
7
|
+
end
|
8
|
+
|
9
|
+
def example_passed(name)
|
10
|
+
@output.puts "# * #{name}"
|
11
|
+
@output.flush
|
12
|
+
end
|
13
|
+
|
14
|
+
def example_failed(name, counter, failure)
|
15
|
+
@output.puts "# * #{name} [#{counter} - FAILED]"
|
16
|
+
end
|
17
|
+
|
18
|
+
def example_not_implemented(name)
|
19
|
+
@output.puts "# * #{name} [NOT IMPLEMENTED]"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Spec
|
2
|
+
module Runner
|
3
|
+
module Formatter
|
4
|
+
# This class extracts code snippets by looking at the backtrace of the passed error
|
5
|
+
class SnippetExtractor #:nodoc:
|
6
|
+
class NullConverter; def convert(code, pre); code; end; end #:nodoc:
|
7
|
+
begin; require 'rubygems'; require 'syntax/convertors/html'; @@converter = Syntax::Convertors::HTML.for_syntax "ruby"; rescue LoadError => e; @@converter = NullConverter.new; end
|
8
|
+
|
9
|
+
def snippet(error)
|
10
|
+
raw_code, line = snippet_for(error.backtrace[0])
|
11
|
+
highlighted = @@converter.convert(raw_code, false)
|
12
|
+
highlighted << "\n<span class=\"comment\"># gem install syntax to get syntax highlighting</span>" if @@converter.is_a?(NullConverter)
|
13
|
+
post_process(highlighted, line)
|
14
|
+
end
|
15
|
+
|
16
|
+
def snippet_for(error_line)
|
17
|
+
if error_line =~ /(.*):(\d+)/
|
18
|
+
file = $1
|
19
|
+
line = $2.to_i
|
20
|
+
[lines_around(file, line), line]
|
21
|
+
else
|
22
|
+
["# Couldn't get snippet for #{error_line}", 1]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def lines_around(file, line)
|
27
|
+
if File.file?(file)
|
28
|
+
lines = File.open(file).read.split("\n")
|
29
|
+
min = [0, line-3].max
|
30
|
+
max = [line+1, lines.length-1].min
|
31
|
+
selected_lines = []
|
32
|
+
selected_lines.join("\n")
|
33
|
+
lines[min..max].join("\n")
|
34
|
+
else
|
35
|
+
"# Couldn't get snippet for #{file}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def post_process(highlighted, offending_line)
|
40
|
+
new_lines = []
|
41
|
+
highlighted.split("\n").each_with_index do |line, i|
|
42
|
+
new_line = "<span class=\"linenum\">#{offending_line+i-2}</span>#{line}"
|
43
|
+
new_line = "<span class=\"offending\">#{new_line}</span>" if i == 2
|
44
|
+
new_lines << new_line
|
45
|
+
end
|
46
|
+
new_lines.join("\n")
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Spec
|
2
|
+
module Runner
|
3
|
+
module Formatter
|
4
|
+
class SpecdocFormatter < BaseTextFormatter
|
5
|
+
def add_behaviour(name)
|
6
|
+
@output.puts
|
7
|
+
@output.puts name
|
8
|
+
@output.flush
|
9
|
+
end
|
10
|
+
|
11
|
+
def example_failed(name, counter, failure)
|
12
|
+
@output.puts failure.expectation_not_met? ? red("- #{name} (FAILED - #{counter})") : magenta("- #{name} (ERROR - #{counter})")
|
13
|
+
@output.flush
|
14
|
+
end
|
15
|
+
|
16
|
+
def example_passed(name)
|
17
|
+
@output.puts green("- #{name}")
|
18
|
+
@output.flush
|
19
|
+
end
|
20
|
+
|
21
|
+
def example_not_implemented(name)
|
22
|
+
@output.puts yellow("- #{name} (NOT IMPLEMENTED)")
|
23
|
+
@output.flush
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
begin
|
2
|
+
require 'rubygems'
|
3
|
+
require 'heckle'
|
4
|
+
rescue LoadError ; raise "You must gem install heckle to use --heckle" ; end
|
5
|
+
|
6
|
+
module Spec
|
7
|
+
module Runner
|
8
|
+
# Creates a new Heckler configured to heckle all methods in the classes
|
9
|
+
# whose name matches +filter+
|
10
|
+
class HeckleRunner
|
11
|
+
def initialize(filter, heckle_class=Heckler)
|
12
|
+
@filter = filter
|
13
|
+
@heckle_class = heckle_class
|
14
|
+
end
|
15
|
+
|
16
|
+
# Runs all the contexts held by +behaviour_runner+ once for each of the
|
17
|
+
# methods in the matched classes.
|
18
|
+
def heckle_with(behaviour_runner)
|
19
|
+
if @filter =~ /(.*)[#\.](.*)/
|
20
|
+
heckle_method($1, $2)
|
21
|
+
else
|
22
|
+
heckle_class_or_module(@filter)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def heckle_method(class_name, method_name)
|
27
|
+
verify_constant(class_name)
|
28
|
+
heckle = @heckle_class.new(class_name, method_name, behaviour_runner)
|
29
|
+
heckle.validate
|
30
|
+
end
|
31
|
+
|
32
|
+
def heckle_class_or_module(class_or_module_name)
|
33
|
+
verify_constant(class_or_module_name)
|
34
|
+
pattern = /^#{class_or_module_name}/
|
35
|
+
classes = []
|
36
|
+
ObjectSpace.each_object(Class) do |klass|
|
37
|
+
classes << klass if klass.name =~ pattern
|
38
|
+
end
|
39
|
+
|
40
|
+
classes.each do |klass|
|
41
|
+
klass.instance_methods(false).each do |method_name|
|
42
|
+
heckle = @heckle_class.new(klass.name, method_name, behaviour_runner)
|
43
|
+
heckle.validate
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def verify_constant(name)
|
49
|
+
begin
|
50
|
+
# This is defined in Heckle
|
51
|
+
name.to_class
|
52
|
+
rescue
|
53
|
+
raise "Heckling failed - \"#{name}\" is not a known class or module"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
#Supports Heckle 1.2 and prior (earlier versions used Heckle::Base)
|
59
|
+
class Heckler < (Heckle.const_defined?(:Base) ? Heckle::Base : Heckle)
|
60
|
+
def initialize(klass_name, method_name, behaviour_runner)
|
61
|
+
super(klass_name, method_name)
|
62
|
+
@behaviour_runner = behaviour_runner
|
63
|
+
end
|
64
|
+
|
65
|
+
def tests_pass?
|
66
|
+
paths = [] # We can pass an empty array of paths - our specs are already loaded.
|
67
|
+
failure_count = @behaviour_runner.run(paths, false)
|
68
|
+
failure_count == 0
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,226 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
require 'stringio'
|
3
|
+
|
4
|
+
module Spec
|
5
|
+
module Runner
|
6
|
+
class OptionParser
|
7
|
+
BUILT_IN_FORMATTERS = {
|
8
|
+
'specdoc' => Formatter::SpecdocFormatter,
|
9
|
+
's' => Formatter::SpecdocFormatter,
|
10
|
+
'html' => Formatter::HtmlFormatter,
|
11
|
+
'h' => Formatter::HtmlFormatter,
|
12
|
+
'rdoc' => Formatter::RdocFormatter,
|
13
|
+
'r' => Formatter::RdocFormatter,
|
14
|
+
'progress' => Formatter::ProgressBarFormatter,
|
15
|
+
'p' => Formatter::ProgressBarFormatter,
|
16
|
+
'failing_examples' => Formatter::FailingExamplesFormatter,
|
17
|
+
'e' => Formatter::FailingExamplesFormatter,
|
18
|
+
'failing_behaviours' => Formatter::FailingBehavioursFormatter,
|
19
|
+
'b' => Formatter::FailingBehavioursFormatter
|
20
|
+
}
|
21
|
+
|
22
|
+
COMMAND_LINE = {
|
23
|
+
:diff => ["-D", "--diff [FORMAT]", "Show diff of objects that are expected to be equal when they are not",
|
24
|
+
"Builtin formats: unified|u|context|c",
|
25
|
+
"You can also specify a custom differ class",
|
26
|
+
"(in which case you should also specify --require)"],
|
27
|
+
:colour => ["-c", "--colour", "--color", "Show coloured (red/green) output"],
|
28
|
+
:example => ["-e", "--example [NAME|FILE_NAME]", "Execute example(s) with matching name(s). If the argument is",
|
29
|
+
"the path to an existing file (typically generated by a previous",
|
30
|
+
"run using --format failing_examples:file.txt), then the examples",
|
31
|
+
"on each line of thatfile will be executed. If the file is empty,",
|
32
|
+
"all examples will be run (as if --example was not specified).",
|
33
|
+
" ",
|
34
|
+
"If the argument is not an existing file, then it is treated as",
|
35
|
+
"an example name directly, causing RSpec to run just the example",
|
36
|
+
"matching that name"],
|
37
|
+
:specification => ["-s", "--specification [NAME]", "DEPRECATED - use -e instead", "(This will be removed when autotest works with -e)"],
|
38
|
+
:line => ["-l", "--line LINE_NUMBER", Integer, "Execute behaviout or specification at given line.",
|
39
|
+
"(does not work for dynamically generated specs)"],
|
40
|
+
:format => ["-f", "--format FORMAT[:WHERE]", "Specifies what format to use for output. Specify WHERE to tell",
|
41
|
+
"the formatter where to write the output. All built-in formats",
|
42
|
+
"expect WHERE to be a file name, and will write to STDOUT if it's",
|
43
|
+
"not specified. The --format option may be specified several times",
|
44
|
+
"if you want several outputs",
|
45
|
+
" ",
|
46
|
+
"Builtin formats: ",
|
47
|
+
"progress|p : Text progress",
|
48
|
+
"specdoc|s : Behaviour doc as text",
|
49
|
+
"rdoc|r : Behaviour doc as RDoc",
|
50
|
+
"html|h : A nice HTML report",
|
51
|
+
"failing_examples|e : Write all failing examples - input for --example",
|
52
|
+
"failing_behaviours|b : Write all failing behaviours - input for --example",
|
53
|
+
" ",
|
54
|
+
"FORMAT can also be the name of a custom formatter class",
|
55
|
+
"(in which case you should also specify --require to load it)"],
|
56
|
+
:require => ["-r", "--require FILE", "Require FILE before running specs",
|
57
|
+
"Useful for loading custom formatters or other extensions.",
|
58
|
+
"If this option is used it must come before the others"],
|
59
|
+
:backtrace => ["-b", "--backtrace", "Output full backtrace"],
|
60
|
+
:loadby => ["-L", "--loadby STRATEGY", "Specify the strategy by which spec files should be loaded.",
|
61
|
+
"STRATEGY can currently only be 'mtime' (File modification time)",
|
62
|
+
"By default, spec files are loaded in alphabetical order if --loadby",
|
63
|
+
"is not specified."],
|
64
|
+
:reverse => ["-R", "--reverse", "Run examples in reverse order"],
|
65
|
+
:timeout => ["-t", "--timeout FLOAT", "Interrupt and fail each example that doesn't complete in the",
|
66
|
+
"specified time"],
|
67
|
+
:heckle => ["-H", "--heckle CODE", "If all examples pass, this will mutate the classes and methods",
|
68
|
+
"identified by CODE little by little and run all the examples again",
|
69
|
+
"for each mutation. The intent is that for each mutation, at least",
|
70
|
+
"one example *should* fail, and RSpec will tell you if this is not the",
|
71
|
+
"case. CODE should be either Some::Module, Some::Class or",
|
72
|
+
"Some::Fabulous#method}"],
|
73
|
+
:dry_run => ["-d", "--dry-run", "Invokes formatters without executing the examples."],
|
74
|
+
:options_file => ["-O", "--options PATH", "Read options from a file"],
|
75
|
+
:generate_options => ["-G", "--generate-options PATH", "Generate an options file for --options"],
|
76
|
+
:runner => ["-U", "--runner RUNNER", "Use a custom BehaviourRunner."],
|
77
|
+
:drb => ["-X", "--drb", "Run examples via DRb. (For example against script/spec_server)"],
|
78
|
+
:version => ["-v", "--version", "Show version"],
|
79
|
+
:help => ["-h", "--help", "You're looking at it"]
|
80
|
+
}
|
81
|
+
|
82
|
+
def initialize
|
83
|
+
@spec_parser = SpecParser.new
|
84
|
+
@file_factory = File
|
85
|
+
end
|
86
|
+
|
87
|
+
def create_behaviour_runner(args, err, out, warn_if_no_files)
|
88
|
+
options = parse(args, err, out, warn_if_no_files)
|
89
|
+
# Some exit points in parse (--generate-options, --drb) don't return the options,
|
90
|
+
# but hand over control. In that case we don't want to continue.
|
91
|
+
return nil unless options.is_a?(Options)
|
92
|
+
options.create_behaviour_runner
|
93
|
+
end
|
94
|
+
|
95
|
+
def parse(args, err, out, warn_if_no_files)
|
96
|
+
options_file = nil
|
97
|
+
args_copy = args.dup
|
98
|
+
options = Options.new
|
99
|
+
|
100
|
+
opts = ::OptionParser.new do |opts|
|
101
|
+
opts.banner = "Usage: spec (FILE|DIRECTORY|GLOB)+ [options]"
|
102
|
+
opts.separator ""
|
103
|
+
|
104
|
+
def opts.rspec_on(name, &block)
|
105
|
+
on(*COMMAND_LINE[name], &block)
|
106
|
+
end
|
107
|
+
|
108
|
+
opts.rspec_on(:diff) {|diff| options.parse_diff(diff, out, err)}
|
109
|
+
|
110
|
+
opts.rspec_on(:colour) {options.colour = true}
|
111
|
+
|
112
|
+
opts.rspec_on(:example) {|example| options.parse_example(example)}
|
113
|
+
|
114
|
+
opts.rspec_on(:specification) {|example| options.parse_example(example)}
|
115
|
+
|
116
|
+
opts.rspec_on(:line) {|line_number| options.line_number = line_number.to_i}
|
117
|
+
|
118
|
+
opts.rspec_on(:format) {|format| options.parse_format(format, out, err)}
|
119
|
+
|
120
|
+
opts.rspec_on(:require) {|req| options.parse_require(req)}
|
121
|
+
|
122
|
+
opts.rspec_on(:backtrace) {options.backtrace_tweaker = NoisyBacktraceTweaker.new}
|
123
|
+
|
124
|
+
opts.rspec_on(:loadby) {|loadby| options.loadby = loadby}
|
125
|
+
|
126
|
+
opts.rspec_on(:reverse) {options.reverse = true}
|
127
|
+
|
128
|
+
opts.rspec_on(:timeout) {|timeout| options.timeout = timeout.to_f}
|
129
|
+
|
130
|
+
opts.rspec_on(:heckle) {|heckle| options.parse_heckle(heckle)}
|
131
|
+
|
132
|
+
opts.rspec_on(:dry_run) {options.dry_run = true}
|
133
|
+
|
134
|
+
opts.rspec_on(:options_file) do |options_file|
|
135
|
+
return parse_options_file(options_file, out, err, args_copy, warn_if_no_files)
|
136
|
+
end
|
137
|
+
|
138
|
+
opts.rspec_on(:generate_options) do |options_file|
|
139
|
+
options.parse_generate_options(options_file, args_copy, out)
|
140
|
+
end
|
141
|
+
|
142
|
+
opts.rspec_on(:runner) do |runner|
|
143
|
+
options.parse_runner(runner, out, err)
|
144
|
+
end
|
145
|
+
|
146
|
+
opts.rspec_on(:drb) do
|
147
|
+
return parse_drb(args_copy, out, err, warn_if_no_files)
|
148
|
+
end
|
149
|
+
|
150
|
+
opts.rspec_on(:version) {parse_version(out)}
|
151
|
+
|
152
|
+
opts.on_tail(*COMMAND_LINE[:help]) {parse_help(opts, out)}
|
153
|
+
end
|
154
|
+
opts.parse!(args)
|
155
|
+
|
156
|
+
if args.empty? && warn_if_no_files
|
157
|
+
err.puts "No files specified."
|
158
|
+
err.puts opts
|
159
|
+
exit(6) if err == $stderr
|
160
|
+
end
|
161
|
+
|
162
|
+
if options.line_number
|
163
|
+
set_spec_from_line_number(options, args, err)
|
164
|
+
end
|
165
|
+
|
166
|
+
if options.formatters.empty?
|
167
|
+
options.formatters << Formatter::ProgressBarFormatter.new(out)
|
168
|
+
end
|
169
|
+
|
170
|
+
options
|
171
|
+
end
|
172
|
+
|
173
|
+
def parse_options_file(options_file, out_stream, error_stream, args_copy, warn_if_no_files)
|
174
|
+
# Remove the --options option and the argument before writing to file
|
175
|
+
index = args_copy.index("-O") || args_copy.index("--options")
|
176
|
+
args_copy.delete_at(index)
|
177
|
+
args_copy.delete_at(index)
|
178
|
+
|
179
|
+
new_args = args_copy + IO.readlines(options_file).map {|l| l.chomp.split " "}.flatten
|
180
|
+
return CommandLine.run(new_args, error_stream, out_stream, true, warn_if_no_files)
|
181
|
+
end
|
182
|
+
|
183
|
+
def parse_drb(args_copy, out_stream, error_stream, warn_if_no_files)
|
184
|
+
# Remove the --drb option
|
185
|
+
index = args_copy.index("-X") || args_copy.index("--drb")
|
186
|
+
args_copy.delete_at(index)
|
187
|
+
|
188
|
+
return DrbCommandLine.run(args_copy, error_stream, out_stream, true, warn_if_no_files)
|
189
|
+
end
|
190
|
+
|
191
|
+
def parse_version(out_stream)
|
192
|
+
out_stream.puts ::Spec::VERSION::DESCRIPTION
|
193
|
+
exit if out_stream == $stdout
|
194
|
+
end
|
195
|
+
|
196
|
+
def parse_help(opts, out_stream)
|
197
|
+
out_stream.puts opts
|
198
|
+
exit if out_stream == $stdout
|
199
|
+
end
|
200
|
+
|
201
|
+
def set_spec_from_line_number(options, args, err)
|
202
|
+
if options.examples.empty?
|
203
|
+
if args.length == 1
|
204
|
+
if @file_factory.file?(args[0])
|
205
|
+
source = @file_factory.open(args[0])
|
206
|
+
example = @spec_parser.spec_name_for(source, options.line_number)
|
207
|
+
options.parse_example(example)
|
208
|
+
elsif @file_factory.directory?(args[0])
|
209
|
+
err.puts "You must specify one file, not a directory when using the --line option"
|
210
|
+
exit(1) if err == $stderr
|
211
|
+
else
|
212
|
+
err.puts "#{args[0]} does not exist"
|
213
|
+
exit(2) if err == $stderr
|
214
|
+
end
|
215
|
+
else
|
216
|
+
err.puts "Only one file can be specified when using the --line option: #{args.inspect}"
|
217
|
+
exit(3) if err == $stderr
|
218
|
+
end
|
219
|
+
else
|
220
|
+
err.puts "You cannot use both --line and --example"
|
221
|
+
exit(4) if err == $stderr
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
end
|
226
|
+
end
|