thorero 0.9.4.4 → 0.9.4.5
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/LICENSE +1 -1
- data/README +21 -0
- data/Rakefile +275 -108
- data/TODO +0 -0
- data/bin/merb +12 -0
- data/bin/merb-specs +5 -0
- data/docs/bootloading.dox +58 -0
- data/docs/documentation_standards +40 -0
- data/docs/merb-core-call-stack-diagram.mmap +0 -0
- data/docs/merb-core-call-stack-diagram.pdf +0 -0
- data/docs/merb-core-call-stack-diagram.png +0 -0
- data/docs/new_render_api +51 -0
- data/lib/merb-core.rb +603 -0
- data/lib/merb-core/autoload.rb +32 -0
- data/lib/merb-core/bootloader.rb +708 -0
- data/lib/merb-core/config.rb +303 -0
- data/lib/merb-core/constants.rb +43 -0
- data/lib/merb-core/controller/abstract_controller.rb +578 -0
- data/lib/merb-core/controller/exceptions.rb +302 -0
- data/lib/merb-core/controller/merb_controller.rb +256 -0
- data/lib/merb-core/controller/mime.rb +106 -0
- data/lib/merb-core/controller/mixins/authentication.rb +87 -0
- data/lib/merb-core/controller/mixins/controller.rb +290 -0
- data/lib/merb-core/controller/mixins/render.rb +481 -0
- data/lib/merb-core/controller/mixins/responder.rb +472 -0
- data/lib/merb-core/controller/template.rb +254 -0
- data/lib/merb-core/core_ext.rb +8 -0
- data/lib/merb-core/core_ext/kernel.rb +319 -0
- data/lib/merb-core/dispatch/cookies.rb +91 -0
- data/lib/merb-core/dispatch/dispatcher.rb +278 -0
- data/lib/merb-core/dispatch/exceptions.html.erb +303 -0
- data/lib/merb-core/dispatch/request.rb +603 -0
- data/lib/merb-core/dispatch/router.rb +179 -0
- data/lib/merb-core/dispatch/router/behavior.rb +867 -0
- data/lib/merb-core/dispatch/router/cached_proc.rb +52 -0
- data/lib/merb-core/dispatch/router/route.rb +321 -0
- data/lib/merb-core/dispatch/session.rb +78 -0
- data/lib/merb-core/dispatch/session/cookie.rb +168 -0
- data/lib/merb-core/dispatch/session/memcached.rb +184 -0
- data/lib/merb-core/dispatch/session/memory.rb +241 -0
- data/lib/merb-core/dispatch/worker.rb +28 -0
- data/lib/merb-core/gem_ext/erubis.rb +77 -0
- data/lib/{extlib → merb-core}/logger.rb +2 -2
- data/lib/merb-core/plugins.rb +59 -0
- data/lib/merb-core/rack.rb +21 -0
- data/lib/merb-core/rack/adapter.rb +44 -0
- data/lib/merb-core/rack/adapter/ebb.rb +25 -0
- data/lib/merb-core/rack/adapter/evented_mongrel.rb +26 -0
- data/lib/merb-core/rack/adapter/fcgi.rb +17 -0
- data/lib/merb-core/rack/adapter/irb.rb +118 -0
- data/lib/merb-core/rack/adapter/mongrel.rb +26 -0
- data/lib/merb-core/rack/adapter/runner.rb +28 -0
- data/lib/merb-core/rack/adapter/swiftiplied_mongrel.rb +26 -0
- data/lib/merb-core/rack/adapter/thin.rb +39 -0
- data/lib/merb-core/rack/adapter/thin_turbo.rb +24 -0
- data/lib/merb-core/rack/adapter/webrick.rb +36 -0
- data/lib/merb-core/rack/application.rb +18 -0
- data/lib/merb-core/rack/handler/mongrel.rb +97 -0
- data/lib/merb-core/rack/middleware.rb +26 -0
- data/lib/merb-core/rack/middleware/path_prefix.rb +31 -0
- data/lib/merb-core/rack/middleware/profiler.rb +19 -0
- data/lib/merb-core/rack/middleware/static.rb +45 -0
- data/lib/merb-core/server.rb +252 -0
- data/lib/merb-core/tasks/audit.rake +68 -0
- data/lib/merb-core/tasks/merb.rb +1 -0
- data/lib/merb-core/tasks/merb_rake_helper.rb +12 -0
- data/lib/merb-core/test.rb +11 -0
- data/lib/merb-core/test/helpers.rb +9 -0
- data/lib/merb-core/test/helpers/controller_helper.rb +8 -0
- data/lib/merb-core/test/helpers/multipart_request_helper.rb +175 -0
- data/lib/merb-core/test/helpers/request_helper.rb +344 -0
- data/lib/merb-core/test/helpers/route_helper.rb +33 -0
- data/lib/merb-core/test/helpers/view_helper.rb +121 -0
- data/lib/merb-core/test/matchers.rb +9 -0
- data/lib/merb-core/test/matchers/controller_matchers.rb +319 -0
- data/lib/merb-core/test/matchers/route_matchers.rb +136 -0
- data/lib/merb-core/test/matchers/view_matchers.rb +335 -0
- data/lib/merb-core/test/run_specs.rb +47 -0
- data/lib/merb-core/test/tasks/spectasks.rb +68 -0
- data/lib/merb-core/test/test_ext/hpricot.rb +32 -0
- data/lib/merb-core/test/test_ext/object.rb +14 -0
- data/lib/merb-core/test/test_ext/string.rb +14 -0
- data/lib/merb-core/vendor/facets.rb +2 -0
- data/lib/merb-core/vendor/facets/dictionary.rb +433 -0
- data/lib/merb-core/vendor/facets/inflect.rb +345 -0
- data/lib/merb-core/version.rb +11 -0
- data/spec/private/config/adapter_spec.rb +32 -0
- data/spec/private/config/config_spec.rb +202 -0
- data/spec/private/config/environment_spec.rb +13 -0
- data/spec/private/config/spec_helper.rb +1 -0
- data/spec/private/core_ext/kernel_spec.rb +169 -0
- data/spec/private/dispatch/bootloader_spec.rb +24 -0
- data/spec/private/dispatch/cookies_spec.rb +107 -0
- data/spec/private/dispatch/dispatch_spec.rb +35 -0
- data/spec/private/dispatch/fixture/app/controllers/application.rb +4 -0
- data/spec/private/dispatch/fixture/app/controllers/exceptions.rb +27 -0
- data/spec/private/dispatch/fixture/app/controllers/foo.rb +21 -0
- data/spec/private/dispatch/fixture/app/helpers/global_helpers.rb +8 -0
- data/spec/private/dispatch/fixture/app/views/exeptions/client_error.html.erb +37 -0
- data/spec/private/dispatch/fixture/app/views/exeptions/internal_server_error.html.erb +216 -0
- data/spec/private/dispatch/fixture/app/views/exeptions/not_acceptable.html.erb +38 -0
- data/spec/private/dispatch/fixture/app/views/exeptions/not_found.html.erb +40 -0
- data/spec/private/dispatch/fixture/app/views/foo/bar.html.erb +0 -0
- data/spec/private/dispatch/fixture/app/views/layout/application.html.erb +11 -0
- data/spec/private/dispatch/fixture/config/black_hole.rb +12 -0
- data/spec/private/dispatch/fixture/config/environments/development.rb +6 -0
- data/spec/private/dispatch/fixture/config/environments/production.rb +5 -0
- data/spec/private/dispatch/fixture/config/environments/test.rb +6 -0
- data/spec/private/dispatch/fixture/config/init.rb +45 -0
- data/spec/private/dispatch/fixture/config/rack.rb +11 -0
- data/spec/private/dispatch/fixture/config/router.rb +35 -0
- data/spec/private/dispatch/fixture/log/merb_test.log +1874 -0
- data/spec/private/dispatch/fixture/public/images/merb.jpg +0 -0
- data/spec/private/dispatch/fixture/public/merb.fcgi +4 -0
- data/spec/private/dispatch/fixture/public/stylesheets/master.css +119 -0
- data/spec/private/dispatch/route_params_spec.rb +24 -0
- data/spec/private/dispatch/session_mixin_spec.rb +47 -0
- data/spec/private/dispatch/spec_helper.rb +1 -0
- data/spec/private/plugins/plugin_spec.rb +166 -0
- data/spec/private/rack/application_spec.rb +49 -0
- data/spec/private/router/behavior_spec.rb +60 -0
- data/spec/private/router/fixture/log/merb_test.log +139 -0
- data/spec/private/router/route_spec.rb +414 -0
- data/spec/private/router/router_spec.rb +175 -0
- data/spec/private/vendor/facets/plural_spec.rb +564 -0
- data/spec/private/vendor/facets/singular_spec.rb +489 -0
- data/spec/public/DEFINITIONS +11 -0
- data/spec/public/abstract_controller/controllers/alt_views/layout/application.erb +1 -0
- data/spec/public/abstract_controller/controllers/alt_views/layout/merb/test/fixtures/abstract/render_string_controller_layout.erb +1 -0
- data/spec/public/abstract_controller/controllers/alt_views/layout/merb/test/fixtures/abstract/render_template_controller_layout.erb +1 -0
- data/spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/display_object_with_multiple_roots/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/display_object_with_multiple_roots/show.erb +1 -0
- data/spec/public/abstract_controller/controllers/alt_views/merb/test/fixtures/abstract/render_template_multiple_roots/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/alt_views/partial/basic_partial_with_multiple_roots/_partial.erb +1 -0
- data/spec/public/abstract_controller/controllers/alt_views/render_template_multiple_roots_and_custom_location/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/alt_views/render_template_multiple_roots_inherited/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/cousins.rb +41 -0
- data/spec/public/abstract_controller/controllers/display.rb +54 -0
- data/spec/public/abstract_controller/controllers/filters.rb +193 -0
- data/spec/public/abstract_controller/controllers/helpers.rb +41 -0
- data/spec/public/abstract_controller/controllers/partial.rb +121 -0
- data/spec/public/abstract_controller/controllers/render.rb +113 -0
- data/spec/public/abstract_controller/controllers/views/helpers/capture/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/helpers/capture_eq/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/helpers/capture_with_args/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/helpers/concat/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/layout/alt.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/layout/custom.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/display_object/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/display_object_with_action/new.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_app_layout/index.erb +0 -0
- data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_custom_layout/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_multiple_roots/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_template_multiple_roots/show.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/merb/test/fixtures/abstract/render_two_throw_contents/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/another_directory/_partial.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/basic_partial/_partial.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/basic_partial/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/basic_partial_with_multiple_roots/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/nested_partial/_first.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/nested_partial/_second.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/nested_partial/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_in_another_directory/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_with_both/_collection.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_with_both/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections/_collection.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_as/_collection.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_as/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_counter/_collection.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_with_collections_and_counter/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_with_locals/_variables.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_with_locals/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_with_with_and_locals/_both.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/partial_with_with_and_locals/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/with_absolute_partial/_partial.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/with_absolute_partial/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/with_as_partial/_with_partial.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/with_as_partial/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/with_nil_partial/_with_partial.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/with_nil_partial/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/with_partial/_with_partial.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/partial/with_partial/index.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/test_display/foo.html.erb +1 -0
- data/spec/public/abstract_controller/controllers/views/test_render/foo.html.erb +0 -0
- data/spec/public/abstract_controller/controllers/views/wonderful/index.erb +1 -0
- data/spec/public/abstract_controller/display_spec.rb +33 -0
- data/spec/public/abstract_controller/filter_spec.rb +106 -0
- data/spec/public/abstract_controller/helper_spec.rb +21 -0
- data/spec/public/abstract_controller/partial_spec.rb +61 -0
- data/spec/public/abstract_controller/render_spec.rb +90 -0
- data/spec/public/abstract_controller/spec_helper.rb +31 -0
- data/spec/public/boot_loader/boot_loader_spec.rb +33 -0
- data/spec/public/boot_loader/spec_helper.rb +1 -0
- data/spec/public/controller/authentication_spec.rb +103 -0
- data/spec/public/controller/base_spec.rb +36 -0
- data/spec/public/controller/controllers/authentication.rb +45 -0
- data/spec/public/controller/controllers/base.rb +36 -0
- data/spec/public/controller/controllers/display.rb +118 -0
- data/spec/public/controller/controllers/redirect.rb +30 -0
- data/spec/public/controller/controllers/responder.rb +93 -0
- data/spec/public/controller/controllers/url.rb +7 -0
- data/spec/public/controller/controllers/views/layout/custom.html.erb +1 -0
- data/spec/public/controller/controllers/views/layout/custom_arg.html.erb +1 -0
- data/spec/public/controller/controllers/views/layout/custom_arg.json.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_and_local_provides/index.html.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_and_local_provides/index.xml.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_provides/index.html.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_provides/index.xml.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template/index.html.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template/no_layout.html.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template_argument/index.html.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/html_default/index.html.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/layout/custom.html.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/local_provides/index.html.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/local_provides/index.xml.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/multi_provides/index.html.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/multi_provides/index.js.erb +1 -0
- data/spec/public/controller/display_spec.rb +84 -0
- data/spec/public/controller/redirect_spec.rb +27 -0
- data/spec/public/controller/responder_spec.rb +163 -0
- data/spec/public/controller/spec_helper.rb +11 -0
- data/spec/public/controller/url_spec.rb +180 -0
- data/spec/public/core/merb_core_spec.rb +45 -0
- data/spec/public/core_ext/class_spec.rb +91 -0
- data/spec/public/core_ext/fixtures/core_ext_dependency.rb +2 -0
- data/spec/public/core_ext/kernel_spec.rb +9 -0
- data/spec/public/core_ext/spec_helper.rb +1 -0
- data/spec/public/directory_structure/directory/app/controllers/application.rb +3 -0
- data/spec/public/directory_structure/directory/app/controllers/base.rb +13 -0
- data/spec/public/directory_structure/directory/app/controllers/custom.rb +19 -0
- data/spec/public/directory_structure/directory/app/views/base/template.html.erb +1 -0
- data/spec/public/directory_structure/directory/app/views/wonderful/template.erb +1 -0
- data/spec/public/directory_structure/directory/config/router.rb +3 -0
- data/spec/public/directory_structure/directory/log/merb_test.log +562 -0
- data/spec/public/directory_structure/directory_spec.rb +44 -0
- data/spec/public/logger/logger_spec.rb +181 -0
- data/spec/public/logger/spec_helper.rb +1 -0
- data/spec/public/reloading/directory/app/controllers/application.rb +3 -0
- data/spec/public/reloading/directory/app/controllers/reload.rb +6 -0
- data/spec/public/reloading/directory/config/init.rb +2 -0
- data/spec/public/reloading/directory/log/merb_test.log +138 -0
- data/spec/public/reloading/reload_spec.rb +103 -0
- data/spec/public/request/multipart_spec.rb +41 -0
- data/spec/public/request/request_spec.rb +228 -0
- data/spec/public/router/default_spec.rb +21 -0
- data/spec/public/router/deferred_spec.rb +22 -0
- data/spec/public/router/fixation_spec.rb +27 -0
- data/spec/public/router/fixture/log/merb_test.log +1556 -0
- data/spec/public/router/namespace_spec.rb +113 -0
- data/spec/public/router/nested_matches_spec.rb +97 -0
- data/spec/public/router/nested_resources_spec.rb +41 -0
- data/spec/public/router/resource_spec.rb +37 -0
- data/spec/public/router/resources_spec.rb +82 -0
- data/spec/public/router/spec_helper.rb +90 -0
- data/spec/public/router/special_spec.rb +61 -0
- data/spec/public/router/string_spec.rb +61 -0
- data/spec/public/template/template_spec.rb +104 -0
- data/spec/public/template/templates/error.html.erb +2 -0
- data/spec/public/template/templates/template.html.erb +1 -0
- data/spec/public/template/templates/template.html.myt +1 -0
- data/spec/public/test/controller_matchers_spec.rb +402 -0
- data/spec/public/test/controllers/controller_assertion_mock.rb +7 -0
- data/spec/public/test/controllers/dispatch_controller.rb +11 -0
- data/spec/public/test/controllers/spec_helper_controller.rb +38 -0
- data/spec/public/test/multipart_request_helper_spec.rb +159 -0
- data/spec/public/test/multipart_upload_text_file.txt +1 -0
- data/spec/public/test/request_helper_spec.rb +221 -0
- data/spec/public/test/route_helper_spec.rb +71 -0
- data/spec/public/test/route_matchers_spec.rb +162 -0
- data/spec/public/test/view_helper_spec.rb +96 -0
- data/spec/public/test/view_matchers_spec.rb +183 -0
- data/spec/spec_helper.rb +68 -0
- metadata +493 -41
- data/README.txt +0 -3
- data/lib/extlib.rb +0 -32
- data/lib/extlib/assertions.rb +0 -8
- data/lib/extlib/blank.rb +0 -42
- data/lib/extlib/class.rb +0 -175
- data/lib/extlib/hash.rb +0 -410
- data/lib/extlib/hook.rb +0 -366
- data/lib/extlib/inflection.rb +0 -141
- data/lib/extlib/lazy_array.rb +0 -106
- data/lib/extlib/mash.rb +0 -143
- data/lib/extlib/module.rb +0 -37
- data/lib/extlib/object.rb +0 -165
- data/lib/extlib/object_space.rb +0 -13
- data/lib/extlib/pathname.rb +0 -5
- data/lib/extlib/pooling.rb +0 -233
- data/lib/extlib/rubygems.rb +0 -38
- data/lib/extlib/simple_set.rb +0 -39
- data/lib/extlib/string.rb +0 -132
- data/lib/extlib/struct.rb +0 -8
- data/lib/extlib/tasks/release.rb +0 -9
- data/lib/extlib/time.rb +0 -12
- data/lib/extlib/version.rb +0 -3
- data/lib/extlib/virtual_file.rb +0 -10
@@ -0,0 +1,139 @@
|
|
1
|
+
Thu, 15 May 2008 23:38:57 GMT ~ info ~ Logfile created
|
2
|
+
~ Not Using Sessions
|
3
|
+
~ Not Using Sessions
|
4
|
+
~ Not Using Sessions
|
5
|
+
~ Not Using Sessions
|
6
|
+
~ Not Using Sessions
|
7
|
+
~ Not Using Sessions
|
8
|
+
~ Not Using Sessions
|
9
|
+
~ Not Using Sessions
|
10
|
+
~ Not Using Sessions
|
11
|
+
~ Not Using Sessions
|
12
|
+
~ Not Using Sessions
|
13
|
+
~ Not Using Sessions
|
14
|
+
~ Not Using Sessions
|
15
|
+
~ Not Using Sessions
|
16
|
+
~ Not Using Sessions
|
17
|
+
~ Not Using Sessions
|
18
|
+
~ Not Using Sessions
|
19
|
+
~ Not Using Sessions
|
20
|
+
~ Not Using Sessions
|
21
|
+
~ Not Using Sessions
|
22
|
+
~ Not Using Sessions
|
23
|
+
~ Not Using Sessions
|
24
|
+
~ Not Using Sessions
|
25
|
+
~ Not Using Sessions
|
26
|
+
~ Not Using Sessions
|
27
|
+
~ Not Using Sessions
|
28
|
+
~ Not Using Sessions
|
29
|
+
~ Not Using Sessions
|
30
|
+
~ Not Using Sessions
|
31
|
+
~ Not Using Sessions
|
32
|
+
~ Not Using Sessions
|
33
|
+
~ Not Using Sessions
|
34
|
+
~ Not Using Sessions
|
35
|
+
~ Not Using Sessions
|
36
|
+
~ Not Using Sessions
|
37
|
+
~ Not Using Sessions
|
38
|
+
~ Not Using Sessions
|
39
|
+
~ Not Using Sessions
|
40
|
+
~ Not Using Sessions
|
41
|
+
~ Not Using Sessions
|
42
|
+
~ Not Using Sessions
|
43
|
+
~ Not Using Sessions
|
44
|
+
~ Not Using Sessions
|
45
|
+
~ Not Using Sessions
|
46
|
+
~ Not Using Sessions
|
47
|
+
~ Not Using Sessions
|
48
|
+
~ Not Using Sessions
|
49
|
+
~ Not Using Sessions
|
50
|
+
~ Not Using Sessions
|
51
|
+
~ Not Using Sessions
|
52
|
+
~ Not Using Sessions
|
53
|
+
~ Not Using Sessions
|
54
|
+
~ Not Using Sessions
|
55
|
+
~ Not Using Sessions
|
56
|
+
~ Not Using Sessions
|
57
|
+
~ Not Using Sessions
|
58
|
+
~ Not Using Sessions
|
59
|
+
~ Not Using Sessions
|
60
|
+
~ Not Using Sessions
|
61
|
+
~ Not Using Sessions
|
62
|
+
~ Not Using Sessions
|
63
|
+
~ Not Using Sessions
|
64
|
+
~ Not Using Sessions
|
65
|
+
~ Not Using Sessions
|
66
|
+
~ Not Using Sessions
|
67
|
+
~ Not Using Sessions
|
68
|
+
~ Not Using Sessions
|
69
|
+
~ Not Using Sessions
|
70
|
+
~ Not Using Sessions
|
71
|
+
~ Not Using Sessions
|
72
|
+
~ Not Using Sessions
|
73
|
+
~ Not Using Sessions
|
74
|
+
~ Not Using Sessions
|
75
|
+
~ Not Using Sessions
|
76
|
+
~ Not Using Sessions
|
77
|
+
~ Not Using Sessions
|
78
|
+
~ Not Using Sessions
|
79
|
+
~ Not Using Sessions
|
80
|
+
~ Not Using Sessions
|
81
|
+
~ Not Using Sessions
|
82
|
+
~ Not Using Sessions
|
83
|
+
~ Not Using Sessions
|
84
|
+
~ Not Using Sessions
|
85
|
+
~ Not Using Sessions
|
86
|
+
~ Not Using Sessions
|
87
|
+
~ Not Using Sessions
|
88
|
+
~ Not Using Sessions
|
89
|
+
~ Not Using Sessions
|
90
|
+
~ Not Using Sessions
|
91
|
+
~ Not Using Sessions
|
92
|
+
~ Not Using Sessions
|
93
|
+
~ Not Using Sessions
|
94
|
+
~ Not Using Sessions
|
95
|
+
~ Not Using Sessions
|
96
|
+
~ Not Using Sessions
|
97
|
+
~ Not Using Sessions
|
98
|
+
~ Not Using Sessions
|
99
|
+
~ Not Using Sessions
|
100
|
+
~ Not Using Sessions
|
101
|
+
~ Not Using Sessions
|
102
|
+
~ Not Using Sessions
|
103
|
+
~ Not Using Sessions
|
104
|
+
~ Not Using Sessions
|
105
|
+
~ Not Using Sessions
|
106
|
+
~ Not Using Sessions
|
107
|
+
~ Not Using Sessions
|
108
|
+
~ Not Using Sessions
|
109
|
+
~ Not Using Sessions
|
110
|
+
~ Not Using Sessions
|
111
|
+
~ Not Using Sessions
|
112
|
+
~ Not Using Sessions
|
113
|
+
~ Not Using Sessions
|
114
|
+
~ Not Using Sessions
|
115
|
+
~ Not Using Sessions
|
116
|
+
~ Not Using Sessions
|
117
|
+
~ Not Using Sessions
|
118
|
+
~ Not Using Sessions
|
119
|
+
~ Not Using Sessions
|
120
|
+
~ Not Using Sessions
|
121
|
+
~ Not Using Sessions
|
122
|
+
~ Not Using Sessions
|
123
|
+
~ Not Using Sessions
|
124
|
+
~ Not Using Sessions
|
125
|
+
~ Not Using Sessions
|
126
|
+
~ Not Using Sessions
|
127
|
+
~ Not Using Sessions
|
128
|
+
~ Not Using Sessions
|
129
|
+
~ Not Using Sessions
|
130
|
+
~ Not Using Sessions
|
131
|
+
~ Not Using Sessions
|
132
|
+
~ Not Using Sessions
|
133
|
+
~ Not Using Sessions
|
134
|
+
~ Not Using Sessions
|
135
|
+
~ Not Using Sessions
|
136
|
+
~ Not Using Sessions
|
137
|
+
~ Not Using Sessions
|
138
|
+
~ Not Using Sessions
|
139
|
+
~ Not Using Sessions
|
@@ -0,0 +1,414 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
describe Merb::Router::Route, "initially" do
|
4
|
+
predicate_matchers[:allow_fixation] = :allow_fixation?
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
Merb::Router.prepare do |r|
|
8
|
+
r.resources :continents do |c|
|
9
|
+
c.resources :countries
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
@r1 = Merb::Router.routes.first
|
14
|
+
@r5 = Merb::Router.routes[4]
|
15
|
+
end
|
16
|
+
|
17
|
+
after :each do
|
18
|
+
Merb::Router.reset!
|
19
|
+
end
|
20
|
+
|
21
|
+
it "has reader for conditions" do
|
22
|
+
@r1.conditions
|
23
|
+
end
|
24
|
+
|
25
|
+
it "has reader for params" do
|
26
|
+
@r1.params
|
27
|
+
end
|
28
|
+
|
29
|
+
it "has reader for behavior" do
|
30
|
+
@r5.behavior
|
31
|
+
end
|
32
|
+
|
33
|
+
it "has reader for conditional block" do
|
34
|
+
@r5.conditional_block
|
35
|
+
end
|
36
|
+
|
37
|
+
it "has reader for segments" do
|
38
|
+
@r5.segments
|
39
|
+
end
|
40
|
+
|
41
|
+
it "has reader for index" do
|
42
|
+
@r1.index.should == 0
|
43
|
+
end
|
44
|
+
|
45
|
+
it "has reader for symbol" do
|
46
|
+
@r1.symbol
|
47
|
+
end
|
48
|
+
|
49
|
+
it "does not allow fixation" do
|
50
|
+
@r1.should_not allow_fixation
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe Merb::Router::Route, "#fixatable" do
|
55
|
+
predicate_matchers[:allow_fixation] = :allow_fixation?
|
56
|
+
|
57
|
+
before :each do
|
58
|
+
Merb::Router.prepare do |r|
|
59
|
+
r.resources :continents do |c|
|
60
|
+
c.resources :countries
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
@route = Merb::Router.routes[4]
|
65
|
+
end
|
66
|
+
|
67
|
+
after :each do
|
68
|
+
Merb::Router.reset!
|
69
|
+
end
|
70
|
+
|
71
|
+
it "allows fixation when called with true" do
|
72
|
+
@route.fixatable(true)
|
73
|
+
|
74
|
+
@route.should allow_fixation
|
75
|
+
end
|
76
|
+
|
77
|
+
it "allows fixation when called with true" do
|
78
|
+
@route.fixatable(true)
|
79
|
+
@route.should allow_fixation
|
80
|
+
|
81
|
+
@route.fixatable(false)
|
82
|
+
@route.should_not allow_fixation
|
83
|
+
end
|
84
|
+
|
85
|
+
it "allows fixation when called with default argument" do
|
86
|
+
@route.fixatable
|
87
|
+
|
88
|
+
@route.should allow_fixation
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
describe Merb::Router::Route, "#to_s" do
|
95
|
+
before :each do
|
96
|
+
Merb::Router.prepare do |r|
|
97
|
+
r.resources :continents do |c|
|
98
|
+
c.resources :countries
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
@route = Merb::Router.routes[4]
|
103
|
+
end
|
104
|
+
|
105
|
+
after :each do
|
106
|
+
Merb::Router.reset!
|
107
|
+
end
|
108
|
+
|
109
|
+
it "concatenates route segments" do
|
110
|
+
@route.stub!(:segments).and_return(["continents/", "new"])
|
111
|
+
@route.to_s.should == "continents/new"
|
112
|
+
end
|
113
|
+
|
114
|
+
it "prefixes symbol segments with colon" do
|
115
|
+
@route.stub!(:segments).and_return(["continents/", :id])
|
116
|
+
@route.to_s.should == "continents/:id"
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
describe Merb::Router::Route, "#register" do
|
123
|
+
before :each do
|
124
|
+
Merb::Router.prepare do |r|
|
125
|
+
r.resources :continents do |c|
|
126
|
+
c.resources :countries
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
@route = Merb::Router.routes[4]
|
131
|
+
end
|
132
|
+
|
133
|
+
after :each do
|
134
|
+
Merb::Router.reset!
|
135
|
+
end
|
136
|
+
|
137
|
+
it "adds route to Merb routes set" do
|
138
|
+
Merb::Router.routes = []
|
139
|
+
@route.register
|
140
|
+
|
141
|
+
Merb::Router.routes.should include(@route)
|
142
|
+
end
|
143
|
+
|
144
|
+
it "sets index on route" do
|
145
|
+
Merb::Router.routes = []
|
146
|
+
@route.register
|
147
|
+
|
148
|
+
@route.index.should == 0
|
149
|
+
end
|
150
|
+
|
151
|
+
it "returns route itself" do
|
152
|
+
Merb::Router.routes = []
|
153
|
+
@route.register.should == @route
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
describe Merb::Router::Route, "#symbol_segments" do
|
160
|
+
before :each do
|
161
|
+
Merb::Router.prepare do |r|
|
162
|
+
r.resources :continents do |c|
|
163
|
+
c.resources :countries
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
@route = Merb::Router.routes[4]
|
168
|
+
end
|
169
|
+
|
170
|
+
after :each do
|
171
|
+
Merb::Router.reset!
|
172
|
+
end
|
173
|
+
|
174
|
+
it "cherrypicks segments that are Symbols" do
|
175
|
+
@route.stub!(:segments).and_return(["prefix/", :controller, "ping"])
|
176
|
+
@route.symbol_segments.should == [:controller]
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
describe Merb::Router::Route, "#segments_from_path" do
|
183
|
+
before :each do
|
184
|
+
Merb::Router.prepare do |r|
|
185
|
+
r.resources :continents do |c|
|
186
|
+
c.resources :countries
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
@route = Merb::Router.routes[4]
|
191
|
+
end
|
192
|
+
|
193
|
+
after :each do
|
194
|
+
Merb::Router.reset!
|
195
|
+
end
|
196
|
+
|
197
|
+
it "turns path into string and symbol segments" do
|
198
|
+
@route.segments_from_path("prefix/:controller/:action/:id").should == ["prefix/", :controller, "/", :action, "/", :id]
|
199
|
+
end
|
200
|
+
|
201
|
+
it "handles slash edge case just fine" do
|
202
|
+
@route.segments_from_path("/").should == ["/"]
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
describe Merb::Router::Route, "#name" do
|
209
|
+
before :each do
|
210
|
+
Merb::Router.prepare do |r|
|
211
|
+
r.match("/").to(:controller => "home")
|
212
|
+
end
|
213
|
+
|
214
|
+
@route = Merb::Router.routes.first
|
215
|
+
end
|
216
|
+
|
217
|
+
after :each do
|
218
|
+
Merb::Router.reset!
|
219
|
+
end
|
220
|
+
|
221
|
+
it "places the route into named routes collection" do
|
222
|
+
@route.name(:home)
|
223
|
+
|
224
|
+
Merb::Router.named_routes[:home].should == @route
|
225
|
+
end
|
226
|
+
|
227
|
+
it "only accepts Symbols" do
|
228
|
+
lambda { @route.name("home") }.should raise_error(ArgumentError)
|
229
|
+
end
|
230
|
+
|
231
|
+
end
|
232
|
+
|
233
|
+
|
234
|
+
describe Merb::Router::Route, "#regexp?" do
|
235
|
+
before :each do
|
236
|
+
Merb::Router.prepare do |r|
|
237
|
+
r.match(/api\/(.*)/).to(:controller => "api", :token => "[1]").name(:regexpy)
|
238
|
+
|
239
|
+
r.match("/what-is-regexps-dude").to(:controller => "plain_strings").name(:non_regexpy)
|
240
|
+
end
|
241
|
+
|
242
|
+
@regexp_route = Merb::Router.named_routes[:regexpy]
|
243
|
+
@non_regexp_route = Merb::Router.named_routes[:non_regexpy]
|
244
|
+
end
|
245
|
+
|
246
|
+
it "is true for routes that use regular expressions" do
|
247
|
+
@regexp_route.should be_regexp
|
248
|
+
end
|
249
|
+
|
250
|
+
it "is false for routes that do not explicitly use regular expressions" do
|
251
|
+
@non_regexp_route.should_not be_regexp
|
252
|
+
end
|
253
|
+
|
254
|
+
it "is true if behavior returns true when sent regexp?" do
|
255
|
+
@non_regexp_route.stub!(:behavior).and_return(stub("regexp_behavior", :regexp? => true))
|
256
|
+
@non_regexp_route.should be_regexp
|
257
|
+
end
|
258
|
+
|
259
|
+
it "is true if any of behavior's anscestors return true when sent regexp?" do
|
260
|
+
@regexp_ancestor = stub("regexp_ancestor", :regexp? => true)
|
261
|
+
@not_regexp_ancestor = stub("not_regexp_ancestor", :regexp? => false)
|
262
|
+
@behavior_with_ancestors = stub("regexp_behavior", :regexp? => false, :ancestors => [@regexp_ancestor, @not_regexp_ancestor])
|
263
|
+
|
264
|
+
@non_regexp_route.stub!(:behavior).and_return(@behavior_with_ancestors)
|
265
|
+
@non_regexp_route.should be_regexp
|
266
|
+
end
|
267
|
+
|
268
|
+
after :each do
|
269
|
+
Merb::Router.reset!
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
describe Merb::Router::Route, "#generate" do
|
276
|
+
before :each do
|
277
|
+
Merb::Router.prepare do |r|
|
278
|
+
r.match(/api\/(.*)/).to(:controller => "api", :token => "[1]").name(:regexpy)
|
279
|
+
r.match("/world/countries/:name").to(:controller => "countries").name(:non_regexpy)
|
280
|
+
end
|
281
|
+
|
282
|
+
@regexp_route = Merb::Router.named_routes[:regexpy]
|
283
|
+
@non_regexp_route = Merb::Router.named_routes[:non_regexpy]
|
284
|
+
end
|
285
|
+
|
286
|
+
after :each do
|
287
|
+
Merb::Router.reset!
|
288
|
+
end
|
289
|
+
|
290
|
+
it "does not work for regexp routes" do
|
291
|
+
lambda { @regexp_route.generate({ :token => "apitoken" }) }.should raise_error(RuntimeError, /regexp/)
|
292
|
+
end
|
293
|
+
|
294
|
+
it "replaces symbol segments in the URL with values from given Hash parameters" do
|
295
|
+
@non_regexp_route.generate({ :name => "Italy" }).should == "/world/countries/Italy"
|
296
|
+
@non_regexp_route.generate({ :name => "Brazil" }).should == "/world/countries/Brazil"
|
297
|
+
end
|
298
|
+
|
299
|
+
it "replaces symbol segments with Fixnum values just fine" do
|
300
|
+
@non_regexp_route.generate({ :name => 101 }).should == "/world/countries/101"
|
301
|
+
end
|
302
|
+
|
303
|
+
it "appends unknown symbol segments after ?" do
|
304
|
+
@non_regexp_route.generate({ :name => 101, :area => 10101 }).should == "/world/countries/101?area=10101"
|
305
|
+
end
|
306
|
+
|
307
|
+
it "calls #to_param on segments that respond to it" do
|
308
|
+
@non_regexp_route.generate({ :name => stub('US', :to_param => 'USA') }).should == "/world/countries/USA"
|
309
|
+
end
|
310
|
+
end
|
311
|
+
|
312
|
+
|
313
|
+
|
314
|
+
describe Merb::Router::Route, "#if_conditions" do
|
315
|
+
before :each do
|
316
|
+
Merb::Router.prepare do |r|
|
317
|
+
r.match(/api\/(.*)/).to(:controller => "api", :token => "[1]").name(:regexpy)
|
318
|
+
r.match("/world/countries/:name").to(:controller => "countries").name(:non_regexpy)
|
319
|
+
r.match("/world/continents/:continent/countries/:country").to(:controller => "world_map").name(:two_symbol_segments)
|
320
|
+
end
|
321
|
+
|
322
|
+
@regexp_route = Merb::Router.named_routes[:regexpy]
|
323
|
+
@non_regexp_route = Merb::Router.named_routes[:non_regexpy]
|
324
|
+
@two_symbol_route = Merb::Router.named_routes[:two_symbol_segments]
|
325
|
+
end
|
326
|
+
|
327
|
+
after :each do
|
328
|
+
Merb::Router.reset!
|
329
|
+
end
|
330
|
+
|
331
|
+
it "returns array with =~ statements" do
|
332
|
+
# just to show you what it looks like
|
333
|
+
@non_regexp_route.if_conditions({}).should == [" (/^\\/world\\/countries\\/([^\\/.,;?]+)$/ =~ cached_path) && (path1 = $1)"]
|
334
|
+
end
|
335
|
+
|
336
|
+
it "returns array of syntactically valid Ruby code statements that can be evaluated" do
|
337
|
+
cached_path = "/world/countries/Italy"
|
338
|
+
eval(@non_regexp_route.if_conditions({}).first)
|
339
|
+
# raises nothing and passes
|
340
|
+
end
|
341
|
+
|
342
|
+
it "works with regexp routes" do
|
343
|
+
cached_path = "/api/signin"
|
344
|
+
eval(@regexp_route.if_conditions({}).first)
|
345
|
+
# raises nothing and passes
|
346
|
+
end
|
347
|
+
|
348
|
+
it "adds conditions and match group for each symbol segment of route" do
|
349
|
+
# again, just to show you what it looks like
|
350
|
+
@two_symbol_route.if_conditions({}).should == [" (/^\\/world\\/continents\\/([^\\/.,;?]+)\\/countries\\/([^\\/.,;?]+)$/ =~ cached_path) && (path1, path2 = $1, $2)"]
|
351
|
+
end
|
352
|
+
end
|
353
|
+
|
354
|
+
describe Merb::Router::Route, "#if_conditions" do
|
355
|
+
before :each do
|
356
|
+
Merb::Router.prepare do |r|
|
357
|
+
r.match(/api\/(.*)/).to(:controller => "api", :token => "[1]").name(:regexpy)
|
358
|
+
r.match("/world/countries/:name").to(:controller => "countries").name(:non_regexpy)
|
359
|
+
r.match("/world/continents/:continent/countries/:country").to(:controller => "world_map").name(:two_symbol_segments)
|
360
|
+
end
|
361
|
+
|
362
|
+
@regexp_route = Merb::Router.named_routes[:regexpy]
|
363
|
+
@non_regexp_route = Merb::Router.named_routes[:non_regexpy]
|
364
|
+
@two_symbol_route = Merb::Router.named_routes[:two_symbol_segments]
|
365
|
+
end
|
366
|
+
|
367
|
+
after :each do
|
368
|
+
Merb::Router.reset!
|
369
|
+
end
|
370
|
+
|
371
|
+
it "uses if in compiled statement when argument is false" do
|
372
|
+
@regexp_route.compile(false).should =~ /\s*elsif/
|
373
|
+
end
|
374
|
+
|
375
|
+
it "uses elsif in compiled statement when argument is true" do
|
376
|
+
@non_regexp_route.compile(true).should =~ /^if/
|
377
|
+
end
|
378
|
+
|
379
|
+
it "uses if in compiled statement by default" do
|
380
|
+
@regexp_route.compile.should =~ /\s*elsif/
|
381
|
+
end
|
382
|
+
end
|
383
|
+
|
384
|
+
describe "Merb::Router::Route.capture" do
|
385
|
+
|
386
|
+
after :each do
|
387
|
+
Merb::Router.reset!
|
388
|
+
end
|
389
|
+
|
390
|
+
it "should capture routes that have been added in the block context" do
|
391
|
+
routes, named, route = [], {}, nil
|
392
|
+
Merb::Router.prepare do |r|
|
393
|
+
routes, named = Merb::Router.capture do
|
394
|
+
route = r.match("/overview").to(:controller => "home", :action => 'overview')
|
395
|
+
end
|
396
|
+
r.match("/").to(:controller => "home").name(:home)
|
397
|
+
end
|
398
|
+
routes.should include(route)
|
399
|
+
named.should_not include(route)
|
400
|
+
end
|
401
|
+
|
402
|
+
it "should capture named routes that have been added in the block context" do
|
403
|
+
routes, named, route = [], {}, nil
|
404
|
+
Merb::Router.prepare do |r|
|
405
|
+
r.match("/overview").to(:controller => "home", :action => 'overview')
|
406
|
+
routes, named = Merb::Router.capture do
|
407
|
+
route = r.match("/").to(:controller => "home").name(:home)
|
408
|
+
end
|
409
|
+
end
|
410
|
+
routes.should include(route)
|
411
|
+
named[:home].should == route
|
412
|
+
end
|
413
|
+
|
414
|
+
end
|