mack 0.8.2 → 0.8.3
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 +17 -1
- data/bin/env_handler.rb +1 -1
- data/bin/mack +2 -2
- data/bin/mackery-server +1 -1
- data/lib/gems.rb +6 -1
- data/lib/gems/builder-2.1.2/lib/blankslate.rb +2 -2
- data/lib/gems/builder-2.1.2/lib/builder/xchar.rb +3 -3
- data/lib/gems/builder-2.1.2/lib/builder/xmlbase.rb +9 -9
- data/lib/gems/builder-2.1.2/lib/builder/xmlmarkup.rb +15 -15
- data/lib/gems/configatron-2.2.2/lib/configatron.rb +9 -0
- data/lib/gems/{configatron-2.1.5 → configatron-2.2.2}/lib/configatron/configatron.rb +8 -6
- data/lib/gems/configatron-2.2.2/lib/configatron/core_ext/class.rb +26 -0
- data/lib/gems/{configatron-2.1.5/lib/configatron → configatron-2.2.2/lib/configatron/core_ext}/kernel.rb +0 -0
- data/lib/gems/configatron-2.2.2/lib/configatron/core_ext/object.rb +9 -0
- data/lib/gems/configatron-2.2.2/lib/configatron/core_ext/string.rb +84 -0
- data/lib/gems/configatron-2.2.2/lib/configatron/errors.rb +13 -0
- data/lib/gems/{configatron-2.1.5 → configatron-2.2.2}/lib/configatron/store.rb +37 -6
- data/lib/gems/cucumber-0.1.15/lib/autotest/cucumber.rb +6 -0
- data/lib/gems/cucumber-0.1.15/lib/autotest/cucumber_mixin.rb +130 -0
- data/lib/gems/cucumber-0.1.15/lib/autotest/cucumber_rails.rb +6 -0
- data/lib/gems/cucumber-0.1.15/lib/autotest/cucumber_rails_rspec.rb +6 -0
- data/lib/gems/cucumber-0.1.15/lib/autotest/cucumber_rspec.rb +6 -0
- data/lib/gems/cucumber-0.1.15/lib/autotest/discover.rb +9 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber.rb +19 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/broadcaster.rb +20 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/cli.rb +360 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/core_ext/exception.rb +20 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/core_ext/proc.rb +69 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/core_ext/string.rb +29 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/executor.rb +205 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters.rb +1 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/ansicolor.rb +105 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/autotest_formatter.rb +23 -0
- data/lib/gems/{rspec-1.1.11/story_server/prototype/stylesheets/rspec.css → cucumber-0.1.15/lib/cucumber/formatters/cucumber.css} +33 -37
- data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/cucumber.js +11 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/html_formatter.rb +151 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/jquery.js +32 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/pretty_formatter.rb +285 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/profile_formatter.rb +92 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/progress_formatter.rb +61 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/formatters/unicode.rb +35 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/languages.yml +271 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/model.rb +1 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/model/table.rb +28 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/platform.rb +32 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/rails/rspec.rb +12 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/rails/world.rb +73 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/rake/task.rb +101 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/step_methods.rb +49 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/step_mother.rb +98 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/tree.rb +16 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/feature.rb +89 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/features.rb +21 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/given_scenario.rb +13 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/scenario.rb +236 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/step.rb +173 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/table.rb +26 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/tree/top_down_visitor.rb +23 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature.treetop.erb +254 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_ar.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_cy.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_da.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_de.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_en-lol.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_en-tx.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_en.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_es.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_et.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_fr.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_id.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_it.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_ja.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_ko.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_lt.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_nl.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_no.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_parser.rb +36 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_pl.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_pt.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_ro.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_ro2.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_ru.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_se.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/treetop_parser/feature_zh-CN.rb +1951 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/version.rb +10 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/world.rb +1 -0
- data/lib/gems/cucumber-0.1.15/lib/cucumber/world/pending.rb +22 -0
- data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs.rb +1105 -0
- data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/array.rb +21 -0
- data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/block.rb +51 -0
- data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/callbacks.rb +322 -0
- data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/change.rb +169 -0
- data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/hunk.rb +257 -0
- data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/ldiff.rb +226 -0
- data/lib/gems/diff-lcs-1.1.2/lib/diff/lcs/string.rb +19 -0
- data/lib/gems/polyglot-0.2.3/lib/polyglot.rb +62 -0
- data/lib/gems/polyglot-0.2.3/lib/polyglot/version.rb +9 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack.rb +7 -2
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/adapter/camping.rb +1 -1
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/abstract/handler.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/abstract/request.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/basic.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/digest/md5.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/digest/nonce.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/digest/params.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/digest/request.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/auth/openid.rb +4 -3
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/builder.rb +12 -1
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/cascade.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/commonlogger.rb +0 -0
- data/lib/gems/rack-0.9.1/lib/rack/conditionalget.rb +43 -0
- data/lib/gems/rack-0.9.1/lib/rack/content_length.rb +25 -0
- data/lib/gems/rack-0.9.1/lib/rack/deflater.rb +87 -0
- data/lib/gems/rack-0.9.1/lib/rack/directory.rb +150 -0
- data/lib/gems/rack-0.9.1/lib/rack/file.rb +85 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler.rb +4 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/cgi.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/evented_mongrel.rb +1 -1
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/fastcgi.rb +2 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/lsws.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/mongrel.rb +6 -2
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/scgi.rb +0 -0
- data/lib/gems/rack-0.9.1/lib/rack/handler/swiftiplied_mongrel.rb +8 -0
- data/lib/gems/rack-0.9.1/lib/rack/handler/thin.rb +15 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/handler/webrick.rb +8 -4
- data/lib/gems/rack-0.9.1/lib/rack/head.rb +19 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/lint.rb +74 -10
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/lobster.rb +13 -13
- data/lib/gems/rack-0.9.1/lib/rack/methodoverride.rb +27 -0
- data/lib/gems/rack-0.9.1/lib/rack/mime.rb +204 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/mock.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/recursive.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/reloader.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/request.rb +10 -1
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/response.rb +7 -2
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/session/abstract/id.rb +14 -1
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/session/cookie.rb +19 -1
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/session/memcache.rb +1 -1
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/session/pool.rb +1 -1
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/showexceptions.rb +5 -1
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/showstatus.rb +3 -2
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/static.rb +0 -0
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/urlmap.rb +1 -1
- data/lib/gems/{rack-0.4.0 → rack-0.9.1}/lib/rack/utils.rb +42 -13
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/bin/autospec +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/bin/spec +0 -0
- data/lib/gems/{rspec-1.1.11/plugins → rspec-1.1.12/lib/adapters}/mock_frameworks/flexmock.rb +1 -1
- data/lib/gems/{rspec-1.1.11/plugins → rspec-1.1.12/lib/adapters}/mock_frameworks/mocha.rb +1 -1
- data/lib/gems/{rspec-1.1.11/plugins → rspec-1.1.12/lib/adapters}/mock_frameworks/rr.rb +1 -1
- data/lib/gems/{rspec-1.1.11/plugins → rspec-1.1.12/lib/adapters}/mock_frameworks/rspec.rb +2 -2
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/autotest/discover.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/autotest/rspec.rb +4 -3
- data/lib/gems/rspec-1.1.12/lib/spec.rb +7 -0
- data/lib/gems/rspec-1.1.12/lib/spec/dsl.rb +1 -0
- data/lib/gems/{rspec-1.1.11/lib/spec/extensions → rspec-1.1.12/lib/spec/dsl}/main.rb +10 -10
- data/lib/gems/rspec-1.1.12/lib/spec/example.rb +186 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/before_and_after_hooks.rb +30 -24
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/errors.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/example_group.rb +1 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/example_group_factory.rb +26 -9
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/example_group_methods.rb +138 -113
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/example_matcher.rb +0 -0
- data/lib/gems/rspec-1.1.12/lib/spec/example/example_methods.rb +168 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/module_reopening_fix.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/example/pending.rb +0 -0
- data/lib/gems/rspec-1.1.12/lib/spec/example/shared_example_group.rb +59 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/expectations.rb +22 -18
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/expectations/differs/default.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/expectations/errors.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/expectations/extensions.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/expectations/extensions/object.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/expectations/extensions/string_and_symbol.rb +0 -0
- data/lib/gems/rspec-1.1.12/lib/spec/expectations/handler.rb +32 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/interop/test.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/interop/test/unit/autorunner.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/interop/test/unit/testcase.rb +19 -17
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/interop/test/unit/testresult.rb +1 -1
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/interop/test/unit/testsuite_adapter.rb +1 -1
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/interop/test/unit/ui/console/testrunner.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers.rb +7 -28
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/be.rb +208 -0
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/be_close.rb +21 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers/change.rb +0 -0
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/eql.rb +25 -0
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/equal.rb +25 -0
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/errors.rb +5 -0
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/exist.rb +16 -0
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/generated_descriptions.rb +48 -0
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/has.rb +18 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers/have.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers/include.rb +12 -9
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/match.rb +22 -0
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/match_array.rb +79 -0
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/method_missing.rb +9 -0
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/operator_matcher.rb +70 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers/raise_error.rb +4 -8
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/respond_to.rb +71 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers/satisfy.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/matchers/simple_matcher.rb +0 -0
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/throw_symbol.rb +106 -0
- data/lib/gems/rspec-1.1.12/lib/spec/matchers/wrap_expectation.rb +55 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/argument_constraints.rb +77 -5
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/argument_expectation.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/error_generator.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/errors.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/extensions.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/extensions/object.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/framework.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/message_expectation.rb +7 -7
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/methods.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/mock.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/order_group.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/proxy.rb +14 -12
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/space.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/mocks/spec_methods.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/rake/spectask.rb +4 -6
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/rake/verify_rcov.rb +0 -0
- data/lib/gems/rspec-1.1.12/lib/spec/ruby.rb +9 -0
- data/lib/gems/rspec-1.1.12/lib/spec/runner.rb +88 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/backtrace_tweaker.rb +5 -3
- data/lib/gems/rspec-1.1.12/lib/spec/runner/class_and_arguments_parser.rb +14 -0
- data/lib/gems/rspec-1.1.12/lib/spec/runner/command_line.rb +15 -0
- data/lib/gems/{rspec-1.1.11/lib/spec/example → rspec-1.1.12/lib/spec/runner}/configuration.rb +46 -47
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/drb_command_line.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/example_group_runner.rb +15 -4
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/base_formatter.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/base_text_formatter.rb +4 -3
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/failing_example_groups_formatter.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/failing_examples_formatter.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/html_formatter.rb +14 -11
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/nested_text_formatter.rb +2 -2
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/profile_formatter.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/snippet_extractor.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/specdoc_formatter.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/story/html_formatter.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/story/plain_text_formatter.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/story/progress_bar_formatter.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/formatter/text_mate_formatter.rb +0 -0
- data/lib/gems/rspec-1.1.12/lib/spec/runner/heckle_runner.rb +74 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/heckle_runner_unsupported.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/option_parser.rb +8 -4
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/options.rb +29 -14
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/reporter.rb +1 -1
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/runner/spec_parser.rb +11 -9
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/extensions.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/extensions/main.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/extensions/regexp.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/extensions/string.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/given_scenario.rb +0 -0
- data/lib/gems/rspec-1.1.12/lib/spec/story/runner.rb +57 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/runner/plain_text_story_runner.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/runner/scenario_collector.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/runner/scenario_runner.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/runner/story_mediator.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/runner/story_parser.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/runner/story_runner.rb +10 -6
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/scenario.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/step.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/step_group.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/step_mother.rb +0 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/story/story.rb +0 -0
- data/lib/gems/rspec-1.1.12/lib/spec/story/world.rb +124 -0
- data/lib/gems/{rspec-1.1.11 → rspec-1.1.12}/lib/spec/version.rb +4 -2
- data/lib/gems/rubyforge-1.0.1/lib/rubyforge.rb +475 -0
- data/lib/gems/rubyforge-1.0.1/lib/rubyforge/client.rb +134 -0
- data/lib/gems/rubyforge-1.0.1/lib/rubyforge/cookie_manager.rb +51 -0
- data/lib/gems/term-ansicolor-1.0.3/VERSION +1 -0
- data/lib/gems/term-ansicolor-1.0.3/lib/term/ansicolor.rb +220 -0
- data/lib/gems/{rspec-1.1.11/spec/spec/runner/empty_file.txt → treetop-1.2.4/lib/metagrammar.rb} +0 -0
- data/lib/gems/treetop-1.2.4/lib/treetop.rb +11 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/bootstrap_gen_1_metagrammar.rb +45 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler.rb +6 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/grammar_compiler.rb +40 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/lexical_address_space.rb +17 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/metagrammar.rb +2887 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/metagrammar.treetop +404 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes.rb +19 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/anything_symbol.rb +18 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/atomic_expression.rb +14 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/character_class.rb +19 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/choice.rb +31 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/declaration_sequence.rb +24 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/grammar.rb +28 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/inline_module.rb +27 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/nonterminal.rb +13 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/optional.rb +19 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/parenthesized_expression.rb +9 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/parsing_expression.rb +138 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/parsing_rule.rb +55 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/predicate.rb +45 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/repetition.rb +55 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/sequence.rb +68 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/terminal.rb +20 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/transient_prefix.rb +9 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/node_classes/treetop_file.rb +9 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/compiler/ruby_builder.rb +113 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/ruby_extensions.rb +2 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/ruby_extensions/string.rb +42 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/runtime.rb +5 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/runtime/compiled_parser.rb +87 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/runtime/interval_skip_list.rb +4 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/runtime/interval_skip_list/head_node.rb +15 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/runtime/interval_skip_list/interval_skip_list.rb +200 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/runtime/interval_skip_list/node.rb +164 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/runtime/syntax_node.rb +72 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/runtime/terminal_parse_failure.rb +16 -0
- data/lib/gems/treetop-1.2.4/lib/treetop/runtime/terminal_syntax_node.rb +17 -0
- data/lib/mack/application.rb +5 -5
- data/lib/mack/boot/configuration.rb +3 -1
- data/lib/mack/boot/console.rb +2 -2
- data/lib/mack/boot/core.rb +3 -3
- data/lib/mack/boot/environment.rb +1 -1
- data/lib/mack/boot/logging.rb +1 -1
- data/lib/mack/boot/logging/filter.rb +1 -1
- data/lib/mack/boot/paths.rb +34 -30
- data/lib/mack/boot/plugins.rb +2 -2
- data/lib/mack/controller/controller.rb +2 -2
- data/lib/mack/controller/request.rb +32 -32
- data/lib/mack/core_extensions/kernel.rb +1 -1
- data/lib/mack/generators/controller_generator/controller_generator.rb +14 -4
- data/lib/mack/generators/controller_generator/manifest.yml +7 -7
- data/lib/mack/generators/controller_generator/templates/test/controllers/rspec.rb.template +1 -1
- data/lib/mack/generators/controller_generator/templates/test/controllers/test_case.rb.template +1 -1
- data/lib/mack/generators/controller_helper_generator/manifest.yml +6 -6
- data/lib/mack/generators/mack_application_generator/mack_application_generator.rb +2 -2
- data/lib/mack/generators/mack_application_generator/manifest.yml +57 -54
- data/lib/mack/generators/mack_application_generator/templates/config/configatron/default.rb.template +1 -1
- data/lib/mack/generators/mack_application_generator/templates/config/database.yml.template +15 -15
- data/lib/mack/generators/mack_application_generator/templates/config/initializers/gems.rb.template +4 -1
- data/lib/mack/generators/mack_application_generator/templates/test/controllers/default_controller_spec.rb.template +1 -1
- data/lib/mack/generators/mack_application_generator/templates/test/controllers/default_controller_test.rb.template +1 -1
- data/lib/mack/generators/mack_application_generator/templates/test/spec_helper.rb.template +3 -3
- data/lib/mack/generators/mack_application_generator/templates/test/test_helper.rb.template +3 -3
- data/lib/mack/generators/passenger_generator/templates/config.ru.template +1 -1
- data/lib/mack/generators/view_helper_generator/manifest.yml +6 -6
- data/lib/mack/rendering/engine/builder.rb +1 -1
- data/lib/mack/routing/route_map.rb +1 -15
- data/lib/mack/routing/urls.rb +16 -2
- data/lib/mack/runner_helpers/request_logger.rb +1 -1
- data/lib/mack/tasks/mack_update_tasks.rake +5 -5
- data/lib/mack/tasks/rake_rules.rake +1 -1
- data/lib/mack/tasks/test_tasks.rake +2 -2
- data/lib/mack/testing/helpers.rb +24 -24
- data/lib/mack/testing/rspec.rb +5 -23
- data/lib/mack/testing/test_assertions.rb +0 -1
- data/lib/mack/utils/ansi/ansi_color.rb +1 -1
- data/lib/mack/version.rb +1 -1
- data/lib/mack/view/default_form_builder.rb +9 -0
- data/lib/mack/view/form_builder.rb +151 -0
- data/lib/mack/view_helpers/form_helpers.rb +7 -6
- data/lib/mack_core.rb +3 -3
- data/lib/mack_tasks.rb +1 -1
- metadata +381 -477
- data/lib/gems/builder-2.1.2/lib/builder/css.rb +0 -250
- data/lib/gems/configatron-2.1.5/lib/configatron.rb +0 -6
- data/lib/gems/configatron-2.1.5/lib/configatron/errors.rb +0 -7
- data/lib/gems/lockfile-1.4.3/bin/rlock +0 -360
- data/lib/gems/lockfile-1.4.3/bin/rlock-1.4.3 +0 -360
- data/lib/gems/logging-0.9.4/data/bad_logging_1.rb +0 -13
- data/lib/gems/logging-0.9.4/data/bad_logging_2.rb +0 -21
- data/lib/gems/logging-0.9.4/data/logging.rb +0 -42
- data/lib/gems/logging-0.9.4/data/logging.yaml +0 -63
- data/lib/gems/logging-0.9.4/data/simple_logging.rb +0 -13
- data/lib/gems/rack-0.4.0/bin/rackup +0 -172
- data/lib/gems/rack-0.4.0/lib/rack/deflater.rb +0 -63
- data/lib/gems/rack-0.4.0/lib/rack/directory.rb +0 -158
- data/lib/gems/rack-0.4.0/lib/rack/file.rb +0 -116
- data/lib/gems/rcov-0.8.1.2.0/ext/rcovrt/callsite.c +0 -242
- data/lib/gems/rcov-0.8.1.2.0/ext/rcovrt/extconf.rb +0 -11
- data/lib/gems/rcov-0.8.1.2.0/ext/rcovrt/rcovrt.c +0 -329
- data/lib/gems/rspec-1.1.11/lib/spec.rb +0 -32
- data/lib/gems/rspec-1.1.11/lib/spec/adapters.rb +0 -1
- data/lib/gems/rspec-1.1.11/lib/spec/adapters/ruby_engine.rb +0 -26
- data/lib/gems/rspec-1.1.11/lib/spec/adapters/ruby_engine/mri.rb +0 -8
- data/lib/gems/rspec-1.1.11/lib/spec/adapters/ruby_engine/rubinius.rb +0 -8
- data/lib/gems/rspec-1.1.11/lib/spec/example.rb +0 -12
- data/lib/gems/rspec-1.1.11/lib/spec/example/example_methods.rb +0 -105
- data/lib/gems/rspec-1.1.11/lib/spec/example/shared_example_group.rb +0 -52
- data/lib/gems/rspec-1.1.11/lib/spec/expectations/handler.rb +0 -52
- data/lib/gems/rspec-1.1.11/lib/spec/extensions.rb +0 -4
- data/lib/gems/rspec-1.1.11/lib/spec/extensions/class.rb +0 -24
- data/lib/gems/rspec-1.1.11/lib/spec/extensions/metaclass.rb +0 -7
- data/lib/gems/rspec-1.1.11/lib/spec/extensions/object.rb +0 -6
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/be.rb +0 -221
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/be_close.rb +0 -37
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/eql.rb +0 -43
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/equal.rb +0 -43
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/exist.rb +0 -22
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/has.rb +0 -34
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/match.rb +0 -41
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/operator_matcher.rb +0 -79
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/respond_to.rb +0 -46
- data/lib/gems/rspec-1.1.11/lib/spec/matchers/throw_symbol.rb +0 -74
- data/lib/gems/rspec-1.1.11/lib/spec/runner.rb +0 -213
- data/lib/gems/rspec-1.1.11/lib/spec/runner/class_and_arguments_parser.rb +0 -16
- data/lib/gems/rspec-1.1.11/lib/spec/runner/command_line.rb +0 -17
- data/lib/gems/rspec-1.1.11/lib/spec/runner/heckle_runner.rb +0 -72
- data/lib/gems/rspec-1.1.11/lib/spec/story/runner.rb +0 -59
- data/lib/gems/rspec-1.1.11/lib/spec/story/world.rb +0 -128
- data/lib/gems/rspec-1.1.11/rake_tasks/examples.rake +0 -7
- data/lib/gems/rspec-1.1.11/rake_tasks/examples_with_rcov.rake +0 -9
- data/lib/gems/rspec-1.1.11/rake_tasks/failing_examples_with_html.rake +0 -9
- data/lib/gems/rspec-1.1.11/rake_tasks/verify_rcov.rake +0 -7
- data/lib/gems/rspec-1.1.11/spec/README.jruby +0 -15
- data/lib/gems/rspec-1.1.11/spec/autotest/autotest_helper.rb +0 -6
- data/lib/gems/rspec-1.1.11/spec/autotest/autotest_matchers.rb +0 -47
- data/lib/gems/rspec-1.1.11/spec/autotest/discover_spec.rb +0 -19
- data/lib/gems/rspec-1.1.11/spec/autotest/rspec_spec.rb +0 -150
- data/lib/gems/rspec-1.1.11/spec/rspec_suite.rb +0 -6
- data/lib/gems/rspec-1.1.11/spec/ruby_forker.rb +0 -13
- data/lib/gems/rspec-1.1.11/spec/spec.opts +0 -6
- data/lib/gems/rspec-1.1.11/spec/spec/adapters/ruby_engine_spec.rb +0 -16
- data/lib/gems/rspec-1.1.11/spec/spec/example/configuration_spec.rb +0 -296
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_class_definition_spec.rb +0 -48
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_factory_spec.rb +0 -165
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_methods_spec.rb +0 -584
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_group_spec.rb +0 -683
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_matcher_spec.rb +0 -96
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_methods_spec.rb +0 -169
- data/lib/gems/rspec-1.1.11/spec/spec/example/example_runner_spec.rb +0 -194
- data/lib/gems/rspec-1.1.11/spec/spec/example/nested_example_group_spec.rb +0 -71
- data/lib/gems/rspec-1.1.11/spec/spec/example/pending_module_spec.rb +0 -145
- data/lib/gems/rspec-1.1.11/spec/spec/example/predicate_matcher_spec.rb +0 -21
- data/lib/gems/rspec-1.1.11/spec/spec/example/shared_example_group_spec.rb +0 -281
- data/lib/gems/rspec-1.1.11/spec/spec/example/subclassing_example_group_spec.rb +0 -25
- data/lib/gems/rspec-1.1.11/spec/spec/expectations/differs/default_spec.rb +0 -127
- data/lib/gems/rspec-1.1.11/spec/spec/expectations/extensions/object_spec.rb +0 -95
- data/lib/gems/rspec-1.1.11/spec/spec/expectations/fail_with_spec.rb +0 -71
- data/lib/gems/rspec-1.1.11/spec/spec/extensions/main_spec.rb +0 -71
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_that_fails.rb +0 -10
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_that_passes.rb +0 -10
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_with_errors.rb +0 -10
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +0 -13
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +0 -10
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +0 -10
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +0 -10
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +0 -38
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/spec_spec.rb +0 -52
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/test_unit_spec_helper.rb +0 -14
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/testcase_spec.rb +0 -49
- data/lib/gems/rspec-1.1.11/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +0 -9
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/be_close_spec.rb +0 -39
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/be_spec.rb +0 -248
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/change_spec.rb +0 -329
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/description_generation_spec.rb +0 -153
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/eql_spec.rb +0 -28
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/equal_spec.rb +0 -28
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/exist_spec.rb +0 -57
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/handler_spec.rb +0 -150
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/has_spec.rb +0 -63
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/have_spec.rb +0 -394
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/include_spec.rb +0 -64
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/match_spec.rb +0 -37
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/matcher_methods_spec.rb +0 -78
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/mock_constraint_matchers_spec.rb +0 -24
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/operator_matcher_spec.rb +0 -191
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/raise_error_spec.rb +0 -315
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/respond_to_spec.rb +0 -54
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/satisfy_spec.rb +0 -36
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/simple_matcher_spec.rb +0 -93
- data/lib/gems/rspec-1.1.11/spec/spec/matchers/throw_symbol_spec.rb +0 -54
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/any_number_of_times_spec.rb +0 -36
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/argument_expectation_spec.rb +0 -23
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/at_least_spec.rb +0 -97
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/at_most_spec.rb +0 -93
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_10260_spec.rb +0 -8
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_10263_spec.rb +0 -24
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_11545_spec.rb +0 -33
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_15719_spec.rb +0 -30
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_496.rb +0 -17
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_7611_spec.rb +0 -19
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_7805_spec.rb +0 -22
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_8165_spec.rb +0 -31
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/bug_report_8302_spec.rb +0 -26
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -95
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/hash_including_matcher_spec.rb +0 -53
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/mock_ordering_spec.rb +0 -84
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/mock_space_spec.rb +0 -54
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/mock_spec.rb +0 -555
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/multiple_return_value_spec.rb +0 -113
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/nil_expectation_warning_spec.rb +0 -53
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/null_object_mock_spec.rb +0 -54
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/once_counts_spec.rb +0 -53
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/options_hash_spec.rb +0 -35
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/partial_mock_spec.rb +0 -149
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +0 -66
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -130
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/precise_counts_spec.rb +0 -52
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/record_messages_spec.rb +0 -26
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/stub_spec.rb +0 -188
- data/lib/gems/rspec-1.1.11/spec/spec/mocks/twice_counts_spec.rb +0 -67
- data/lib/gems/rspec-1.1.11/spec/spec/package/bin_spec_spec.rb +0 -22
- data/lib/gems/rspec-1.1.11/spec/spec/runner/class_and_argument_parser_spec.rb +0 -23
- data/lib/gems/rspec-1.1.11/spec/spec/runner/command_line_spec.rb +0 -141
- data/lib/gems/rspec-1.1.11/spec/spec/runner/drb_command_line_spec.rb +0 -97
- data/lib/gems/rspec-1.1.11/spec/spec/runner/examples.txt +0 -2
- data/lib/gems/rspec-1.1.11/spec/spec/runner/failed.txt +0 -3
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/base_formatter_spec.rb +0 -112
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +0 -45
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +0 -33
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.4.html +0 -365
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +0 -387
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.5.html +0 -371
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +0 -381
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatted-1.8.6.html +0 -370
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/html_formatter_spec.rb +0 -61
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/nested_text_formatter_spec.rb +0 -318
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/profile_formatter_spec.rb +0 -65
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +0 -155
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/snippet_extractor_spec.rb +0 -18
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +0 -103
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/specdoc_formatter_spec.rb +0 -159
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/story/html_formatter_spec.rb +0 -135
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +0 -600
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb +0 -82
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +0 -365
- data/lib/gems/rspec-1.1.11/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +0 -370
- data/lib/gems/rspec-1.1.11/spec/spec/runner/heckle_runner_spec.rb +0 -78
- data/lib/gems/rspec-1.1.11/spec/spec/runner/heckler_spec.rb +0 -13
- data/lib/gems/rspec-1.1.11/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +0 -45
- data/lib/gems/rspec-1.1.11/spec/spec/runner/option_parser_spec.rb +0 -421
- data/lib/gems/rspec-1.1.11/spec/spec/runner/options_spec.rb +0 -450
- data/lib/gems/rspec-1.1.11/spec/spec/runner/output_one_time_fixture.rb +0 -7
- data/lib/gems/rspec-1.1.11/spec/spec/runner/output_one_time_fixture_runner.rb +0 -8
- data/lib/gems/rspec-1.1.11/spec/spec/runner/output_one_time_spec.rb +0 -16
- data/lib/gems/rspec-1.1.11/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +0 -62
- data/lib/gems/rspec-1.1.11/spec/spec/runner/reporter_spec.rb +0 -238
- 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 +0 -1
- data/lib/gems/rspec-1.1.11/spec/spec/runner/spec.opts +0 -2
- data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_drb.opts +0 -1
- data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_parser/spec_parser_fixture.rb +0 -70
- data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_parser_spec.rb +0 -85
- data/lib/gems/rspec-1.1.11/spec/spec/runner/spec_spaced.opts +0 -2
- data/lib/gems/rspec-1.1.11/spec/spec/runner_spec.rb +0 -11
- data/lib/gems/rspec-1.1.11/spec/spec/spec_classes.rb +0 -133
- data/lib/gems/rspec-1.1.11/spec/spec/story/builders.rb +0 -46
- data/lib/gems/rspec-1.1.11/spec/spec/story/extensions/main_spec.rb +0 -161
- data/lib/gems/rspec-1.1.11/spec/spec/story/extensions_spec.rb +0 -14
- data/lib/gems/rspec-1.1.11/spec/spec/story/given_scenario_spec.rb +0 -27
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner/plain_text_story_runner_spec.rb +0 -90
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner/scenario_collector_spec.rb +0 -27
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner/scenario_runner_spec.rb +0 -214
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner/story_mediator_spec.rb +0 -143
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner/story_parser_spec.rb +0 -401
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner/story_runner_spec.rb +0 -294
- data/lib/gems/rspec-1.1.11/spec/spec/story/runner_spec.rb +0 -93
- data/lib/gems/rspec-1.1.11/spec/spec/story/scenario_spec.rb +0 -18
- data/lib/gems/rspec-1.1.11/spec/spec/story/step_group_spec.rb +0 -157
- data/lib/gems/rspec-1.1.11/spec/spec/story/step_mother_spec.rb +0 -84
- data/lib/gems/rspec-1.1.11/spec/spec/story/step_spec.rb +0 -272
- data/lib/gems/rspec-1.1.11/spec/spec/story/story_helper.rb +0 -2
- data/lib/gems/rspec-1.1.11/spec/spec/story/story_spec.rb +0 -84
- data/lib/gems/rspec-1.1.11/spec/spec/story/world_spec.rb +0 -423
- data/lib/gems/rspec-1.1.11/spec/spec_helper.rb +0 -77
- data/lib/gems/rspec-1.1.11/stories/all.rb +0 -5
- data/lib/gems/rspec-1.1.11/stories/configuration/before_blocks.story +0 -21
- data/lib/gems/rspec-1.1.11/stories/configuration/stories.rb +0 -7
- data/lib/gems/rspec-1.1.11/stories/example_groups/autogenerated_docstrings +0 -45
- data/lib/gems/rspec-1.1.11/stories/example_groups/example_group_with_should_methods +0 -17
- data/lib/gems/rspec-1.1.11/stories/example_groups/nested_groups +0 -17
- data/lib/gems/rspec-1.1.11/stories/example_groups/output +0 -25
- data/lib/gems/rspec-1.1.11/stories/example_groups/stories.rb +0 -7
- data/lib/gems/rspec-1.1.11/stories/helper.rb +0 -6
- data/lib/gems/rspec-1.1.11/stories/interop/examples_and_tests_together +0 -30
- data/lib/gems/rspec-1.1.11/stories/interop/stories.rb +0 -7
- data/lib/gems/rspec-1.1.11/stories/interop/test_case_with_should_methods +0 -17
- data/lib/gems/rspec-1.1.11/stories/mock_framework_integration/stories.rb +0 -7
- data/lib/gems/rspec-1.1.11/stories/mock_framework_integration/use_flexmock.story +0 -9
- data/lib/gems/rspec-1.1.11/stories/pending_stories/README +0 -3
- data/lib/gems/rspec-1.1.11/stories/resources/helpers/cmdline.rb +0 -9
- data/lib/gems/rspec-1.1.11/stories/resources/helpers/story_helper.rb +0 -16
- data/lib/gems/rspec-1.1.11/stories/resources/matchers/smart_match.rb +0 -37
- data/lib/gems/rspec-1.1.11/stories/resources/spec/before_blocks_example.rb +0 -32
- data/lib/gems/rspec-1.1.11/stories/resources/spec/example_group_with_should_methods.rb +0 -12
- data/lib/gems/rspec-1.1.11/stories/resources/spec/simple_spec.rb +0 -8
- data/lib/gems/rspec-1.1.11/stories/resources/spec/spec_with_flexmock.rb +0 -18
- data/lib/gems/rspec-1.1.11/stories/resources/steps/running_rspec.rb +0 -50
- data/lib/gems/rspec-1.1.11/stories/resources/stories/failing_story.rb +0 -15
- data/lib/gems/rspec-1.1.11/stories/resources/test/spec_and_test_together.rb +0 -57
- data/lib/gems/rspec-1.1.11/stories/resources/test/test_case_with_should_methods.rb +0 -30
- data/lib/gems/rspec-1.1.11/stories/stories/multiline_steps.story +0 -23
- data/lib/gems/rspec-1.1.11/stories/stories/steps/multiline_steps.rb +0 -13
- data/lib/gems/rspec-1.1.11/stories/stories/stories.rb +0 -6
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/builder.js +0 -136
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/controls.js +0 -972
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/dragdrop.js +0 -976
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/effects.js +0 -1117
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/prototype.js +0 -4140
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/rspec.js +0 -149
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/scriptaculous.js +0 -58
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/slider.js +0 -276
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/sound.js +0 -55
- data/lib/gems/rspec-1.1.11/story_server/prototype/javascripts/unittest.js +0 -568
- data/lib/gems/rspec-1.1.11/story_server/prototype/lib/server.rb +0 -24
- data/lib/gems/rspec-1.1.11/story_server/prototype/stories.html +0 -176
- data/lib/gems/rspec-1.1.11/story_server/prototype/stylesheets/test.css +0 -90
- data/lib/mack/testing/test_case.rb +0 -52
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
require 'time'
|
|
2
|
+
require 'rack/mime'
|
|
3
|
+
|
|
4
|
+
module Rack
|
|
5
|
+
# Rack::File serves files below the +root+ given, according to the
|
|
6
|
+
# path info of the Rack request.
|
|
7
|
+
#
|
|
8
|
+
# Handlers can detect if bodies are a Rack::File, and use mechanisms
|
|
9
|
+
# like sendfile on the +path+.
|
|
10
|
+
|
|
11
|
+
class File
|
|
12
|
+
attr_accessor :root
|
|
13
|
+
attr_accessor :path
|
|
14
|
+
|
|
15
|
+
def initialize(root)
|
|
16
|
+
@root = root
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def call(env)
|
|
20
|
+
dup._call(env)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
F = ::File
|
|
24
|
+
|
|
25
|
+
def _call(env)
|
|
26
|
+
@path_info = Utils.unescape(env["PATH_INFO"])
|
|
27
|
+
return forbidden if @path_info.include? ".."
|
|
28
|
+
|
|
29
|
+
@path = F.join(@root, @path_info)
|
|
30
|
+
|
|
31
|
+
begin
|
|
32
|
+
if F.file?(@path) && F.readable?(@path)
|
|
33
|
+
serving
|
|
34
|
+
else
|
|
35
|
+
raise Errno::EPERM
|
|
36
|
+
end
|
|
37
|
+
rescue SystemCallError
|
|
38
|
+
not_found
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def forbidden
|
|
43
|
+
body = "Forbidden\n"
|
|
44
|
+
[403, {"Content-Type" => "text/plain",
|
|
45
|
+
"Content-Length" => body.size.to_s},
|
|
46
|
+
[body]]
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# NOTE:
|
|
50
|
+
# We check via File::size? whether this file provides size info
|
|
51
|
+
# via stat (e.g. /proc files often don't), otherwise we have to
|
|
52
|
+
# figure it out by reading the whole file into memory. And while
|
|
53
|
+
# we're at it we also use this as body then.
|
|
54
|
+
|
|
55
|
+
def serving
|
|
56
|
+
if size = F.size?(@path)
|
|
57
|
+
body = self
|
|
58
|
+
else
|
|
59
|
+
body = [F.read(@path)]
|
|
60
|
+
size = body.first.size
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
[200, {
|
|
64
|
+
"Last-Modified" => F.mtime(@path).httpdate,
|
|
65
|
+
"Content-Type" => Mime.mime_type(F.extname(@path), 'text/plain'),
|
|
66
|
+
"Content-Length" => size.to_s
|
|
67
|
+
}, body]
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def not_found
|
|
71
|
+
body = "File not found: #{@path_info}\n"
|
|
72
|
+
[404, {"Content-Type" => "text/plain",
|
|
73
|
+
"Content-Length" => body.size.to_s},
|
|
74
|
+
[body]]
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def each
|
|
78
|
+
F.open(@path, "rb") { |file|
|
|
79
|
+
while part = file.read(8192)
|
|
80
|
+
yield part
|
|
81
|
+
end
|
|
82
|
+
}
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -29,16 +29,20 @@ module Rack
|
|
|
29
29
|
autoload :FastCGI, "rack/handler/fastcgi"
|
|
30
30
|
autoload :Mongrel, "rack/handler/mongrel"
|
|
31
31
|
autoload :EventedMongrel, "rack/handler/evented_mongrel"
|
|
32
|
+
autoload :SwiftipliedMongrel, "rack/handler/swiftiplied_mongrel"
|
|
32
33
|
autoload :WEBrick, "rack/handler/webrick"
|
|
33
34
|
autoload :LSWS, "rack/handler/lsws"
|
|
34
35
|
autoload :SCGI, "rack/handler/scgi"
|
|
36
|
+
autoload :Thin, "rack/handler/thin"
|
|
35
37
|
|
|
36
38
|
register 'cgi', 'Rack::Handler::CGI'
|
|
37
39
|
register 'fastcgi', 'Rack::Handler::FastCGI'
|
|
38
40
|
register 'mongrel', 'Rack::Handler::Mongrel'
|
|
39
41
|
register 'emongrel', 'Rack::Handler::EventedMongrel'
|
|
42
|
+
register 'smongrel', 'Rack::Handler::SwiftipliedMongrel'
|
|
40
43
|
register 'webrick', 'Rack::Handler::WEBrick'
|
|
41
44
|
register 'lsws', 'Rack::Handler::LSWS'
|
|
42
45
|
register 'scgi', 'Rack::Handler::SCGI'
|
|
46
|
+
register 'thin', 'Rack::Handler::Thin'
|
|
43
47
|
end
|
|
44
48
|
end
|
|
File without changes
|
|
@@ -51,6 +51,8 @@ module Rack
|
|
|
51
51
|
env["HTTP_VERSION"] ||= env["SERVER_PROTOCOL"]
|
|
52
52
|
env["REQUEST_PATH"] ||= "/"
|
|
53
53
|
env.delete "PATH_INFO" if env["PATH_INFO"] == ""
|
|
54
|
+
env.delete "CONTENT_TYPE" if env["CONTENT_TYPE"] == ""
|
|
55
|
+
env.delete "CONTENT_LENGTH" if env["CONTENT_LENGTH"] == ""
|
|
54
56
|
|
|
55
57
|
status, headers, body = app.call(env)
|
|
56
58
|
begin
|
|
File without changes
|
|
@@ -60,15 +60,19 @@ module Rack
|
|
|
60
60
|
|
|
61
61
|
begin
|
|
62
62
|
response.status = status.to_i
|
|
63
|
+
response.send_status(nil)
|
|
64
|
+
|
|
63
65
|
headers.each { |k, vs|
|
|
64
66
|
vs.each { |v|
|
|
65
67
|
response.header[k] = v
|
|
66
68
|
}
|
|
67
69
|
}
|
|
70
|
+
response.send_header
|
|
71
|
+
|
|
68
72
|
body.each { |part|
|
|
69
|
-
response.
|
|
73
|
+
response.write part
|
|
74
|
+
response.socket.flush
|
|
70
75
|
}
|
|
71
|
-
response.finished
|
|
72
76
|
ensure
|
|
73
77
|
body.close if body.respond_to? :close
|
|
74
78
|
end
|
|
File without changes
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require "thin"
|
|
2
|
+
|
|
3
|
+
module Rack
|
|
4
|
+
module Handler
|
|
5
|
+
class Thin
|
|
6
|
+
def self.run(app, options={})
|
|
7
|
+
server = ::Thin::Server.new(options[:Host] || '0.0.0.0',
|
|
8
|
+
options[:Port] || 8080,
|
|
9
|
+
app)
|
|
10
|
+
yield server if block_given?
|
|
11
|
+
server.start
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -3,7 +3,7 @@ require 'stringio'
|
|
|
3
3
|
|
|
4
4
|
module Rack
|
|
5
5
|
module Handler
|
|
6
|
-
class WEBrick < WEBrick::HTTPServlet::AbstractServlet
|
|
6
|
+
class WEBrick < ::WEBrick::HTTPServlet::AbstractServlet
|
|
7
7
|
def self.run(app, options={})
|
|
8
8
|
server = ::WEBrick::HTTPServer.new(options)
|
|
9
9
|
server.mount "/", Rack::Handler::WEBrick, app
|
|
@@ -41,9 +41,13 @@ module Rack
|
|
|
41
41
|
begin
|
|
42
42
|
res.status = status.to_i
|
|
43
43
|
headers.each { |k, vs|
|
|
44
|
-
|
|
45
|
-
res
|
|
46
|
-
|
|
44
|
+
if k.downcase == "set-cookie"
|
|
45
|
+
res.cookies.concat vs.to_a
|
|
46
|
+
else
|
|
47
|
+
vs.each { |v|
|
|
48
|
+
res[k] = v
|
|
49
|
+
}
|
|
50
|
+
end
|
|
47
51
|
}
|
|
48
52
|
body.each { |part|
|
|
49
53
|
res.body << part
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Rack
|
|
2
|
+
|
|
3
|
+
class Head
|
|
4
|
+
def initialize(app)
|
|
5
|
+
@app = app
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def call(env)
|
|
9
|
+
status, headers, body = @app.call(env)
|
|
10
|
+
|
|
11
|
+
if env["REQUEST_METHOD"] == "HEAD"
|
|
12
|
+
[status, headers, []]
|
|
13
|
+
else
|
|
14
|
+
[status, headers, body]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
@@ -29,8 +29,8 @@ module Rack
|
|
|
29
29
|
|
|
30
30
|
## A Rack application is an Ruby object (not a class) that
|
|
31
31
|
## responds to +call+.
|
|
32
|
-
def call(env=nil)
|
|
33
|
-
dup._call(env)
|
|
32
|
+
def call(env=nil)
|
|
33
|
+
dup._call(env)
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def _call(env)
|
|
@@ -49,6 +49,7 @@ module Rack
|
|
|
49
49
|
check_headers headers
|
|
50
50
|
## and the *body*.
|
|
51
51
|
check_content_type status, headers
|
|
52
|
+
check_content_length status, headers, env
|
|
52
53
|
[status, headers, self]
|
|
53
54
|
end
|
|
54
55
|
|
|
@@ -162,11 +163,9 @@ module Rack
|
|
|
162
163
|
## * There must be a valid error stream in <tt>rack.errors</tt>.
|
|
163
164
|
check_error env["rack.errors"]
|
|
164
165
|
|
|
165
|
-
## * The <tt>REQUEST_METHOD</tt> must be
|
|
166
|
-
## +DELETE+, +HEAD+, +OPTIONS+, +TRACE+.
|
|
166
|
+
## * The <tt>REQUEST_METHOD</tt> must be a valid token.
|
|
167
167
|
assert("REQUEST_METHOD unknown: #{env["REQUEST_METHOD"]}") {
|
|
168
|
-
|
|
169
|
-
HEAD OPTIONS TRACE].include?(env["REQUEST_METHOD"])
|
|
168
|
+
env["REQUEST_METHOD"] =~ /\A[0-9A-Za-z!\#$%&'*+.^_`|~-]+\z/
|
|
170
169
|
}
|
|
171
170
|
|
|
172
171
|
## * The <tt>SCRIPT_NAME</tt>, if non-empty, must start with <tt>/</tt>
|
|
@@ -215,6 +214,14 @@ module Rack
|
|
|
215
214
|
@input = input
|
|
216
215
|
end
|
|
217
216
|
|
|
217
|
+
def size
|
|
218
|
+
@input.size
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
def rewind
|
|
222
|
+
@input.rewind
|
|
223
|
+
end
|
|
224
|
+
|
|
218
225
|
## * +gets+ must be called without arguments and return a string,
|
|
219
226
|
## or +nil+ on EOF.
|
|
220
227
|
def gets(*args)
|
|
@@ -350,18 +357,75 @@ module Rack
|
|
|
350
357
|
def check_content_type(status, headers)
|
|
351
358
|
headers.each { |key, value|
|
|
352
359
|
## There must be a <tt>Content-Type</tt>, except when the
|
|
353
|
-
## +Status+ is 204 or 304, in which case there must be none
|
|
360
|
+
## +Status+ is 1xx, 204 or 304, in which case there must be none
|
|
354
361
|
## given.
|
|
355
362
|
if key.downcase == "content-type"
|
|
356
|
-
assert("Content-Type header found in #{status} response, not allowed"){
|
|
357
|
-
not
|
|
363
|
+
assert("Content-Type header found in #{status} response, not allowed") {
|
|
364
|
+
not Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include? status.to_i
|
|
358
365
|
}
|
|
359
366
|
return
|
|
360
367
|
end
|
|
361
368
|
}
|
|
362
369
|
assert("No Content-Type header found") {
|
|
363
|
-
|
|
370
|
+
Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include? status.to_i
|
|
371
|
+
}
|
|
372
|
+
end
|
|
373
|
+
|
|
374
|
+
## === The Content-Length
|
|
375
|
+
def check_content_length(status, headers, env)
|
|
376
|
+
chunked_response = false
|
|
377
|
+
headers.each { |key, value|
|
|
378
|
+
if key.downcase == 'transfer-encoding'
|
|
379
|
+
chunked_response = value.downcase != 'identity'
|
|
380
|
+
end
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
headers.each { |key, value|
|
|
384
|
+
if key.downcase == 'content-length'
|
|
385
|
+
## There must be a <tt>Content-Length</tt>, except when the
|
|
386
|
+
## +Status+ is 1xx, 204 or 304, in which case there must be none
|
|
387
|
+
## given.
|
|
388
|
+
assert("Content-Length header found in #{status} response, not allowed") {
|
|
389
|
+
not Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include? status.to_i
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
assert('Content-Length header should not be used if body is chunked') {
|
|
393
|
+
not chunked_response
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
bytes = 0
|
|
397
|
+
string_body = true
|
|
398
|
+
|
|
399
|
+
@body.each { |part|
|
|
400
|
+
unless part.kind_of?(String)
|
|
401
|
+
string_body = false
|
|
402
|
+
break
|
|
403
|
+
end
|
|
404
|
+
|
|
405
|
+
bytes += (part.respond_to?(:bytesize) ? part.bytesize : part.size)
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
if env["REQUEST_METHOD"] == "HEAD"
|
|
409
|
+
assert("Response body was given for HEAD request, but should be empty") {
|
|
410
|
+
bytes == 0
|
|
411
|
+
}
|
|
412
|
+
else
|
|
413
|
+
if string_body
|
|
414
|
+
assert("Content-Length header was #{value}, but should be #{bytes}") {
|
|
415
|
+
value == bytes.to_s
|
|
416
|
+
}
|
|
417
|
+
end
|
|
418
|
+
end
|
|
419
|
+
|
|
420
|
+
return
|
|
421
|
+
end
|
|
364
422
|
}
|
|
423
|
+
|
|
424
|
+
if [ String, Array ].include?(@body.class) && !chunked_response
|
|
425
|
+
assert('No Content-Length header found') {
|
|
426
|
+
Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include? status.to_i
|
|
427
|
+
}
|
|
428
|
+
end
|
|
365
429
|
end
|
|
366
430
|
|
|
367
431
|
## === The Body
|
|
@@ -22,11 +22,11 @@ module Rack
|
|
|
22
22
|
href = "?flip"
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
]
|
|
25
|
+
content = ["<title>Lobstericious!</title>",
|
|
26
|
+
"<pre>", lobster, "</pre>",
|
|
27
|
+
"<a href='#{href}'>flip!</a>"]
|
|
28
|
+
length = content.inject(0) { |a,e| a+e.size }.to_s
|
|
29
|
+
[200, {"Content-Type" => "text/html", "Content-Length" => length}, content]
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
def call(env)
|
|
@@ -43,14 +43,14 @@ module Rack
|
|
|
43
43
|
href = "?flip=left"
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
Response.new
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
res = Response.new
|
|
47
|
+
res.write "<title>Lobstericious!</title>"
|
|
48
|
+
res.write "<pre>"
|
|
49
|
+
res.write lobster
|
|
50
|
+
res.write "</pre>"
|
|
51
|
+
res.write "<p><a href='#{href}'>flip!</a></p>"
|
|
52
|
+
res.write "<p><a href='?flip=crash'>crash!</a></p>"
|
|
53
|
+
res.finish
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Rack
|
|
2
|
+
class MethodOverride
|
|
3
|
+
HTTP_METHODS = %w(GET HEAD PUT POST DELETE OPTIONS)
|
|
4
|
+
|
|
5
|
+
METHOD_OVERRIDE_PARAM_KEY = "_method".freeze
|
|
6
|
+
HTTP_METHOD_OVERRIDE_HEADER = "HTTP_X_HTTP_METHOD_OVERRIDE".freeze
|
|
7
|
+
|
|
8
|
+
def initialize(app)
|
|
9
|
+
@app = app
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def call(env)
|
|
13
|
+
if env["REQUEST_METHOD"] == "POST"
|
|
14
|
+
req = Request.new(env)
|
|
15
|
+
method = req.POST[METHOD_OVERRIDE_PARAM_KEY] ||
|
|
16
|
+
env[HTTP_METHOD_OVERRIDE_HEADER]
|
|
17
|
+
method = method.to_s.upcase
|
|
18
|
+
if HTTP_METHODS.include?(method)
|
|
19
|
+
env["rack.methodoverride.original_method"] = env["REQUEST_METHOD"]
|
|
20
|
+
env["REQUEST_METHOD"] = method
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
@app.call(env)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
module Rack
|
|
2
|
+
module Mime
|
|
3
|
+
# Returns String with mime type if found, otherwise use +fallback+.
|
|
4
|
+
# +ext+ should be filename extension in the '.ext' format that
|
|
5
|
+
# File.extname(file) returns.
|
|
6
|
+
# +fallback+ may be any object
|
|
7
|
+
#
|
|
8
|
+
# Also see the documentation for MIME_TYPES
|
|
9
|
+
#
|
|
10
|
+
# Usage:
|
|
11
|
+
# Rack::Utils.mime_type('.foo')
|
|
12
|
+
#
|
|
13
|
+
# This is a shortcut for:
|
|
14
|
+
# Rack::Utils::MIME_TYPES.fetch('.foo', 'application/octet-stream')
|
|
15
|
+
|
|
16
|
+
def mime_type(ext, fallback='application/octet-stream')
|
|
17
|
+
MIME_TYPES.fetch(ext, fallback)
|
|
18
|
+
end
|
|
19
|
+
module_function :mime_type
|
|
20
|
+
|
|
21
|
+
# List of most common mime-types, selected various sources
|
|
22
|
+
# according to their usefulness in a webserving scope for Ruby
|
|
23
|
+
# users.
|
|
24
|
+
#
|
|
25
|
+
# To amend this list with your local mime.types list you can use:
|
|
26
|
+
#
|
|
27
|
+
# require 'webrick/httputils'
|
|
28
|
+
# list = WEBrick::HTTPUtils.load_mime_types('/etc/mime.types')
|
|
29
|
+
# Rack::Utils::MIME_TYPES.merge!(list)
|
|
30
|
+
#
|
|
31
|
+
# To add the list mongrel provides, use:
|
|
32
|
+
#
|
|
33
|
+
# require 'mongrel/handlers'
|
|
34
|
+
# Rack::Utils::MIME_TYPES.merge!(Mongrel::DirHandler::MIME_TYPES)
|
|
35
|
+
|
|
36
|
+
MIME_TYPES = {
|
|
37
|
+
".3gp" => "video/3gpp",
|
|
38
|
+
".a" => "application/octet-stream",
|
|
39
|
+
".ai" => "application/postscript",
|
|
40
|
+
".aif" => "audio/x-aiff",
|
|
41
|
+
".aiff" => "audio/x-aiff",
|
|
42
|
+
".asc" => "application/pgp-signature",
|
|
43
|
+
".asf" => "video/x-ms-asf",
|
|
44
|
+
".asm" => "text/x-asm",
|
|
45
|
+
".asx" => "video/x-ms-asf",
|
|
46
|
+
".atom" => "application/atom+xml",
|
|
47
|
+
".au" => "audio/basic",
|
|
48
|
+
".avi" => "video/x-msvideo",
|
|
49
|
+
".bat" => "application/x-msdownload",
|
|
50
|
+
".bin" => "application/octet-stream",
|
|
51
|
+
".bmp" => "image/bmp",
|
|
52
|
+
".bz2" => "application/x-bzip2",
|
|
53
|
+
".c" => "text/x-c",
|
|
54
|
+
".cab" => "application/vnd.ms-cab-compressed",
|
|
55
|
+
".cc" => "text/x-c",
|
|
56
|
+
".chm" => "application/vnd.ms-htmlhelp",
|
|
57
|
+
".class" => "application/octet-stream",
|
|
58
|
+
".com" => "application/x-msdownload",
|
|
59
|
+
".conf" => "text/plain",
|
|
60
|
+
".cpp" => "text/x-c",
|
|
61
|
+
".crt" => "application/x-x509-ca-cert",
|
|
62
|
+
".css" => "text/css",
|
|
63
|
+
".csv" => "text/csv",
|
|
64
|
+
".cxx" => "text/x-c",
|
|
65
|
+
".deb" => "application/x-debian-package",
|
|
66
|
+
".der" => "application/x-x509-ca-cert",
|
|
67
|
+
".diff" => "text/x-diff",
|
|
68
|
+
".djv" => "image/vnd.djvu",
|
|
69
|
+
".djvu" => "image/vnd.djvu",
|
|
70
|
+
".dll" => "application/x-msdownload",
|
|
71
|
+
".dmg" => "application/octet-stream",
|
|
72
|
+
".doc" => "application/msword",
|
|
73
|
+
".dot" => "application/msword",
|
|
74
|
+
".dtd" => "application/xml-dtd",
|
|
75
|
+
".dvi" => "application/x-dvi",
|
|
76
|
+
".ear" => "application/java-archive",
|
|
77
|
+
".eml" => "message/rfc822",
|
|
78
|
+
".eps" => "application/postscript",
|
|
79
|
+
".exe" => "application/x-msdownload",
|
|
80
|
+
".f" => "text/x-fortran",
|
|
81
|
+
".f77" => "text/x-fortran",
|
|
82
|
+
".f90" => "text/x-fortran",
|
|
83
|
+
".flv" => "video/x-flv",
|
|
84
|
+
".for" => "text/x-fortran",
|
|
85
|
+
".gem" => "application/octet-stream",
|
|
86
|
+
".gemspec" => "text/x-script.ruby",
|
|
87
|
+
".gif" => "image/gif",
|
|
88
|
+
".gz" => "application/x-gzip",
|
|
89
|
+
".h" => "text/x-c",
|
|
90
|
+
".hh" => "text/x-c",
|
|
91
|
+
".htm" => "text/html",
|
|
92
|
+
".html" => "text/html",
|
|
93
|
+
".ico" => "image/vnd.microsoft.icon",
|
|
94
|
+
".ics" => "text/calendar",
|
|
95
|
+
".ifb" => "text/calendar",
|
|
96
|
+
".iso" => "application/octet-stream",
|
|
97
|
+
".jar" => "application/java-archive",
|
|
98
|
+
".java" => "text/x-java-source",
|
|
99
|
+
".jnlp" => "application/x-java-jnlp-file",
|
|
100
|
+
".jpeg" => "image/jpeg",
|
|
101
|
+
".jpg" => "image/jpeg",
|
|
102
|
+
".js" => "application/javascript",
|
|
103
|
+
".json" => "application/json",
|
|
104
|
+
".log" => "text/plain",
|
|
105
|
+
".m3u" => "audio/x-mpegurl",
|
|
106
|
+
".m4v" => "video/mp4",
|
|
107
|
+
".man" => "text/troff",
|
|
108
|
+
".mathml" => "application/mathml+xml",
|
|
109
|
+
".mbox" => "application/mbox",
|
|
110
|
+
".mdoc" => "text/troff",
|
|
111
|
+
".me" => "text/troff",
|
|
112
|
+
".mid" => "audio/midi",
|
|
113
|
+
".midi" => "audio/midi",
|
|
114
|
+
".mime" => "message/rfc822",
|
|
115
|
+
".mml" => "application/mathml+xml",
|
|
116
|
+
".mng" => "video/x-mng",
|
|
117
|
+
".mov" => "video/quicktime",
|
|
118
|
+
".mp3" => "audio/mpeg",
|
|
119
|
+
".mp4" => "video/mp4",
|
|
120
|
+
".mp4v" => "video/mp4",
|
|
121
|
+
".mpeg" => "video/mpeg",
|
|
122
|
+
".mpg" => "video/mpeg",
|
|
123
|
+
".ms" => "text/troff",
|
|
124
|
+
".msi" => "application/x-msdownload",
|
|
125
|
+
".odp" => "application/vnd.oasis.opendocument.presentation",
|
|
126
|
+
".ods" => "application/vnd.oasis.opendocument.spreadsheet",
|
|
127
|
+
".odt" => "application/vnd.oasis.opendocument.text",
|
|
128
|
+
".ogg" => "application/ogg",
|
|
129
|
+
".p" => "text/x-pascal",
|
|
130
|
+
".pas" => "text/x-pascal",
|
|
131
|
+
".pbm" => "image/x-portable-bitmap",
|
|
132
|
+
".pdf" => "application/pdf",
|
|
133
|
+
".pem" => "application/x-x509-ca-cert",
|
|
134
|
+
".pgm" => "image/x-portable-graymap",
|
|
135
|
+
".pgp" => "application/pgp-encrypted",
|
|
136
|
+
".pkg" => "application/octet-stream",
|
|
137
|
+
".pl" => "text/x-script.perl",
|
|
138
|
+
".pm" => "text/x-script.perl-module",
|
|
139
|
+
".png" => "image/png",
|
|
140
|
+
".pnm" => "image/x-portable-anymap",
|
|
141
|
+
".ppm" => "image/x-portable-pixmap",
|
|
142
|
+
".pps" => "application/vnd.ms-powerpoint",
|
|
143
|
+
".ppt" => "application/vnd.ms-powerpoint",
|
|
144
|
+
".ps" => "application/postscript",
|
|
145
|
+
".psd" => "image/vnd.adobe.photoshop",
|
|
146
|
+
".py" => "text/x-script.python",
|
|
147
|
+
".qt" => "video/quicktime",
|
|
148
|
+
".ra" => "audio/x-pn-realaudio",
|
|
149
|
+
".rake" => "text/x-script.ruby",
|
|
150
|
+
".ram" => "audio/x-pn-realaudio",
|
|
151
|
+
".rar" => "application/x-rar-compressed",
|
|
152
|
+
".rb" => "text/x-script.ruby",
|
|
153
|
+
".rdf" => "application/rdf+xml",
|
|
154
|
+
".roff" => "text/troff",
|
|
155
|
+
".rpm" => "application/x-redhat-package-manager",
|
|
156
|
+
".rss" => "application/rss+xml",
|
|
157
|
+
".rtf" => "application/rtf",
|
|
158
|
+
".ru" => "text/x-script.ruby",
|
|
159
|
+
".s" => "text/x-asm",
|
|
160
|
+
".sgm" => "text/sgml",
|
|
161
|
+
".sgml" => "text/sgml",
|
|
162
|
+
".sh" => "application/x-sh",
|
|
163
|
+
".sig" => "application/pgp-signature",
|
|
164
|
+
".snd" => "audio/basic",
|
|
165
|
+
".so" => "application/octet-stream",
|
|
166
|
+
".svg" => "image/svg+xml",
|
|
167
|
+
".svgz" => "image/svg+xml",
|
|
168
|
+
".swf" => "application/x-shockwave-flash",
|
|
169
|
+
".t" => "text/troff",
|
|
170
|
+
".tar" => "application/x-tar",
|
|
171
|
+
".tbz" => "application/x-bzip-compressed-tar",
|
|
172
|
+
".tcl" => "application/x-tcl",
|
|
173
|
+
".tex" => "application/x-tex",
|
|
174
|
+
".texi" => "application/x-texinfo",
|
|
175
|
+
".texinfo" => "application/x-texinfo",
|
|
176
|
+
".text" => "text/plain",
|
|
177
|
+
".tif" => "image/tiff",
|
|
178
|
+
".tiff" => "image/tiff",
|
|
179
|
+
".torrent" => "application/x-bittorrent",
|
|
180
|
+
".tr" => "text/troff",
|
|
181
|
+
".txt" => "text/plain",
|
|
182
|
+
".vcf" => "text/x-vcard",
|
|
183
|
+
".vcs" => "text/x-vcalendar",
|
|
184
|
+
".vrml" => "model/vrml",
|
|
185
|
+
".war" => "application/java-archive",
|
|
186
|
+
".wav" => "audio/x-wav",
|
|
187
|
+
".wma" => "audio/x-ms-wma",
|
|
188
|
+
".wmv" => "video/x-ms-wmv",
|
|
189
|
+
".wmx" => "video/x-ms-wmx",
|
|
190
|
+
".wrl" => "model/vrml",
|
|
191
|
+
".wsdl" => "application/wsdl+xml",
|
|
192
|
+
".xbm" => "image/x-xbitmap",
|
|
193
|
+
".xhtml" => "application/xhtml+xml",
|
|
194
|
+
".xls" => "application/vnd.ms-excel",
|
|
195
|
+
".xml" => "application/xml",
|
|
196
|
+
".xpm" => "image/x-xpixmap",
|
|
197
|
+
".xsl" => "application/xml",
|
|
198
|
+
".xslt" => "application/xslt+xml",
|
|
199
|
+
".yaml" => "text/yaml",
|
|
200
|
+
".yml" => "text/yaml",
|
|
201
|
+
".zip" => "application/zip",
|
|
202
|
+
}
|
|
203
|
+
end
|
|
204
|
+
end
|