merb 0.5.3 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +0 -20
- data/README +0 -277
- data/Rakefile +80 -199
- data/TODO +0 -3
- metadata +19 -438
- data/SVN_REVISION +0 -1
- data/app_generators/merb/USAGE +0 -5
- data/app_generators/merb/merb_generator.rb +0 -108
- data/app_generators/merb/templates/Rakefile +0 -124
- data/app_generators/merb/templates/app/controllers/application.rb +0 -3
- data/app_generators/merb/templates/app/controllers/exceptions.rb +0 -13
- data/app_generators/merb/templates/app/helpers/global_helper.rb +0 -5
- data/app_generators/merb/templates/app/mailers/views/layout/application.html.erb +0 -1
- data/app_generators/merb/templates/app/mailers/views/layout/application.text.erb +0 -1
- data/app_generators/merb/templates/app/parts/views/layout/application.html.erb +0 -1
- data/app_generators/merb/templates/app/views/exceptions/internal_server_error.html.erb +0 -216
- data/app_generators/merb/templates/app/views/exceptions/not_acceptable.html.erb +0 -38
- data/app_generators/merb/templates/app/views/exceptions/not_found.html.erb +0 -40
- data/app_generators/merb/templates/app/views/layout/application.html.erb +0 -11
- data/app_generators/merb/templates/config/boot.rb +0 -11
- data/app_generators/merb/templates/config/dependencies.rb +0 -41
- data/app_generators/merb/templates/config/environments/development.rb +0 -1
- data/app_generators/merb/templates/config/environments/production.rb +0 -1
- data/app_generators/merb/templates/config/environments/test.rb +0 -1
- data/app_generators/merb/templates/config/merb.yml +0 -82
- data/app_generators/merb/templates/config/merb_init.rb +0 -17
- data/app_generators/merb/templates/config/plugins.yml +0 -1
- data/app_generators/merb/templates/config/router.rb +0 -35
- data/app_generators/merb/templates/config/upload.conf +0 -0
- data/app_generators/merb/templates/public/images/merb.jpg +0 -0
- data/app_generators/merb/templates/public/merb.fcgi +0 -6
- data/app_generators/merb/templates/public/stylesheets/master.css +0 -119
- data/app_generators/merb/templates/script/destroy +0 -32
- data/app_generators/merb/templates/script/generate +0 -32
- data/app_generators/merb/templates/script/stop_merb +0 -13
- data/app_generators/merb/templates/script/win_script.cmd +0 -1
- data/app_generators/merb/templates/spec/spec.opts +0 -6
- data/app_generators/merb/templates/spec/spec_helper.rb +0 -15
- data/app_generators/merb/templates/test/test_helper.rb +0 -14
- data/app_generators/merb_plugin/USAGE +0 -5
- data/app_generators/merb_plugin/merb_plugin_generator.rb +0 -68
- data/app_generators/merb_plugin/templates/LICENSE +0 -20
- data/app_generators/merb_plugin/templates/README +0 -4
- data/app_generators/merb_plugin/templates/Rakefile +0 -35
- data/app_generators/merb_plugin/templates/TODO +0 -5
- data/app_generators/merb_plugin/templates/merbtasks.rb +0 -6
- data/app_generators/merb_plugin/templates/sampleplugin.rb +0 -10
- data/app_generators/merb_plugin/templates/sampleplugin_spec.rb +0 -7
- data/app_generators/merb_plugin/templates/spec_helper.rb +0 -2
- data/bin/merb +0 -4
- data/lib/autotest/discover.rb +0 -3
- data/lib/autotest/merb_rspec.rb +0 -80
- data/lib/merb.rb +0 -188
- data/lib/merb/abstract_controller.rb +0 -399
- data/lib/merb/assets.rb +0 -160
- data/lib/merb/assets.rb.orig +0 -119
- data/lib/merb/boot_loader.rb +0 -286
- data/lib/merb/boot_loader.rb.orig +0 -235
- data/lib/merb/caching.rb +0 -5
- data/lib/merb/caching/action_cache.rb +0 -92
- data/lib/merb/caching/fragment_cache.rb +0 -39
- data/lib/merb/caching/store/file_cache.rb +0 -90
- data/lib/merb/caching/store/memory_cache.rb +0 -85
- data/lib/merb/config.rb +0 -290
- data/lib/merb/constants.rb +0 -50
- data/lib/merb/controller.rb +0 -220
- data/lib/merb/cookies.rb +0 -95
- data/lib/merb/core_ext.rb +0 -15
- data/lib/merb/core_ext/array.rb +0 -0
- data/lib/merb/core_ext/class.rb +0 -180
- data/lib/merb/core_ext/enumerable.rb +0 -49
- data/lib/merb/core_ext/get_args.rb +0 -76
- data/lib/merb/core_ext/hash.rb +0 -306
- data/lib/merb/core_ext/inflections.rb +0 -112
- data/lib/merb/core_ext/inflector.rb +0 -275
- data/lib/merb/core_ext/kernel.rb +0 -242
- data/lib/merb/core_ext/mash.rb +0 -88
- data/lib/merb/core_ext/module.rb +0 -67
- data/lib/merb/core_ext/numeric.rb +0 -72
- data/lib/merb/core_ext/object.rb +0 -183
- data/lib/merb/core_ext/string.rb +0 -53
- data/lib/merb/core_ext/symbol.rb +0 -6
- data/lib/merb/dispatcher.rb +0 -109
- data/lib/merb/drb_server.rb +0 -19
- data/lib/merb/erubis_ext.rb +0 -10
- data/lib/merb/exceptions.rb +0 -192
- data/lib/merb/generators/merb_app/merb_app.rb +0 -22
- data/lib/merb/generators/merb_generator_helpers.rb +0 -318
- data/lib/merb/generators/merb_plugin.rb +0 -22
- data/lib/merb/logger.rb +0 -78
- data/lib/merb/mail_controller.rb +0 -268
- data/lib/merb/mailer.rb +0 -87
- data/lib/merb/mixins/basic_authentication.rb +0 -35
- data/lib/merb/mixins/controller.rb +0 -160
- data/lib/merb/mixins/erubis_capture.rb +0 -68
- data/lib/merb/mixins/general_controller.rb +0 -253
- data/lib/merb/mixins/inline_partial.rb +0 -32
- data/lib/merb/mixins/render.rb +0 -465
- data/lib/merb/mixins/responder.rb +0 -449
- data/lib/merb/mixins/view_context.rb +0 -558
- data/lib/merb/mixins/web_controller.rb +0 -36
- data/lib/merb/mongrel_handler.rb +0 -168
- data/lib/merb/part_controller.rb +0 -29
- data/lib/merb/plugins.rb +0 -16
- data/lib/merb/rack_adapter.rb +0 -37
- data/lib/merb/request.rb +0 -465
- data/lib/merb/router.rb +0 -646
- data/lib/merb/server.rb +0 -169
- data/lib/merb/session.rb +0 -23
- data/lib/merb/session/cookie_store.rb +0 -118
- data/lib/merb/session/mem_cache_session.rb +0 -131
- data/lib/merb/session/memory_session.rb +0 -176
- data/lib/merb/template.rb +0 -37
- data/lib/merb/template/erubis.rb +0 -68
- data/lib/merb/template/haml.rb +0 -87
- data/lib/merb/template/markaby.rb +0 -59
- data/lib/merb/template/xml_builder.rb +0 -50
- data/lib/merb/test/fake_request.rb +0 -74
- data/lib/merb/test/helper.rb +0 -260
- data/lib/merb/test/hpricot.rb +0 -136
- data/lib/merb/test/multipart.rb +0 -66
- data/lib/merb/test/rspec.rb +0 -18
- data/lib/merb/test/rspec_matchers/controller_matchers.rb +0 -117
- data/lib/merb/test/rspec_matchers/markup_matchers.rb +0 -98
- data/lib/merb/upload_handler.rb +0 -80
- data/lib/merb/upload_progress.rb +0 -48
- data/lib/merb/version.rb +0 -49
- data/lib/merb/view_context.rb +0 -79
- data/lib/tasks.rb +0 -7
- data/lib/tasks/merb.rake +0 -54
- data/merb_default_generators/model/USAGE +0 -0
- data/merb_default_generators/model/model_generator.rb +0 -16
- data/merb_default_generators/model/templates/new_model_template.erb +0 -5
- data/merb_default_generators/resource_controller/USAGE +0 -0
- data/merb_default_generators/resource_controller/resource_controller_generator.rb +0 -26
- data/merb_default_generators/resource_controller/templates/controller.rb +0 -30
- data/merb_default_generators/resource_controller/templates/edit.html.erb +0 -1
- data/merb_default_generators/resource_controller/templates/helper.rb +0 -5
- data/merb_default_generators/resource_controller/templates/index.html.erb +0 -1
- data/merb_default_generators/resource_controller/templates/new.html.erb +0 -1
- data/merb_default_generators/resource_controller/templates/show.html.erb +0 -1
- data/merb_generators/controller/USAGE +0 -5
- data/merb_generators/controller/controller_generator.rb +0 -16
- data/merb_generators/controller/templates/controller.rb +0 -8
- data/merb_generators/controller/templates/helper.rb +0 -5
- data/merb_generators/controller/templates/index.html.erb +0 -3
- data/merb_generators/part_controller/USAGE +0 -5
- data/merb_generators/part_controller/part_controller_generator.rb +0 -27
- data/merb_generators/part_controller/templates/controller.rb +0 -8
- data/merb_generators/part_controller/templates/helper.rb +0 -5
- data/merb_generators/part_controller/templates/index.html.erb +0 -3
- data/merb_generators/resource/USAGE +0 -0
- data/merb_generators/resource/resource_generator.rb +0 -67
- data/rspec_generators/merb_controller_test/merb_controller_test_generator.rb +0 -67
- data/rspec_generators/merb_controller_test/templates/controller_spec.rb +0 -8
- data/rspec_generators/merb_controller_test/templates/edit_spec.rb +0 -12
- data/rspec_generators/merb_controller_test/templates/helper_spec.rb +0 -5
- data/rspec_generators/merb_controller_test/templates/index_spec.rb +0 -12
- data/rspec_generators/merb_controller_test/templates/new_spec.rb +0 -12
- data/rspec_generators/merb_controller_test/templates/show_spec.rb +0 -5
- data/rspec_generators/merb_model_test/merb_model_test_generator.rb +0 -26
- data/rspec_generators/merb_model_test/templates/model_spec_template.erb +0 -7
- data/script/destroy +0 -14
- data/script/generate +0 -14
- data/spec/fixtures/config/environments/environment_config_test.yml +0 -1
- data/spec/fixtures/config/merb.yml +0 -18
- data/spec/fixtures/controllers/dispatch_spec_controllers.rb +0 -235
- data/spec/fixtures/controllers/render_spec_controllers.rb +0 -184
- data/spec/fixtures/foo.rb +0 -3
- data/spec/fixtures/mailers/views/layout/application.html.erb +0 -3
- data/spec/fixtures/mailers/views/layout/application.text.erb +0 -3
- data/spec/fixtures/mailers/views/test_mail_controller/eighth.html.erb +0 -1
- data/spec/fixtures/mailers/views/test_mail_controller/eighth.text.erb +0 -1
- data/spec/fixtures/mailers/views/test_mail_controller/first.html.erb +0 -1
- data/spec/fixtures/mailers/views/test_mail_controller/first.text.erb +0 -1
- data/spec/fixtures/mailers/views/test_mail_controller/ninth.html.erb +0 -1
- data/spec/fixtures/mailers/views/test_mail_controller/ninth.text.erb +0 -1
- data/spec/fixtures/mailers/views/test_mail_controller/second.text.erb +0 -1
- data/spec/fixtures/mailers/views/test_mail_controller/third.html.erb +0 -1
- data/spec/fixtures/models/router_spec_models.rb +0 -30
- data/spec/fixtures/parts/views/layout/todo_part.html.erb +0 -3
- data/spec/fixtures/parts/views/layout/todo_part.xml.erb +0 -3
- data/spec/fixtures/parts/views/todo_part/formatted_output.html.erb +0 -1
- data/spec/fixtures/parts/views/todo_part/formatted_output.js.erb +0 -1
- data/spec/fixtures/parts/views/todo_part/formatted_output.xml.erb +0 -1
- data/spec/fixtures/parts/views/todo_part/list.html.erb +0 -3
- data/spec/fixtures/sample.txt +0 -1
- data/spec/fixtures/views/erubis.html.erb +0 -1
- data/spec/fixtures/views/examples/_erubis.html.erb +0 -1
- data/spec/fixtures/views/examples/_haml.html.haml +0 -1
- data/spec/fixtures/views/examples/_markaby.html.mab +0 -1
- data/spec/fixtures/views/examples/_throw_content.html.erb +0 -6
- data/spec/fixtures/views/examples/hello.xml.builder +0 -1
- data/spec/fixtures/views/examples/js.js.erb +0 -1
- data/spec/fixtures/views/examples/template_catch_content.html.erb +0 -15
- data/spec/fixtures/views/examples/template_catch_content_from_partial.html.erb +0 -6
- data/spec/fixtures/views/examples/template_throw_content.html.erb +0 -10
- data/spec/fixtures/views/examples/template_throw_content_without_block.html.erb +0 -3
- data/spec/fixtures/views/exceptions/admin_access_required.html.erb +0 -1
- data/spec/fixtures/views/extension_template_controller/_nested_js.js.erb +0 -1
- data/spec/fixtures/views/extension_template_controller/_nested_xml.xml.erb +0 -1
- data/spec/fixtures/views/extension_template_controller/_render_partial_multiple_times.html.erb +0 -1
- data/spec/fixtures/views/extension_template_controller/erubis_templates.html.erb +0 -1
- data/spec/fixtures/views/extension_template_controller/erubis_templates.js.erb +0 -1
- data/spec/fixtures/views/extension_template_controller/erubis_templates.rhtml +0 -1
- data/spec/fixtures/views/extension_template_controller/erubis_templates.xml.erb +0 -1
- data/spec/fixtures/views/extension_template_controller/haml_index.html.haml +0 -0
- data/spec/fixtures/views/extension_template_controller/haml_templates.html.haml +0 -1
- data/spec/fixtures/views/extension_template_controller/haml_templates.js.haml +0 -1
- data/spec/fixtures/views/extension_template_controller/haml_templates.xml.haml +0 -1
- data/spec/fixtures/views/extension_template_controller/index.html.erb +0 -0
- data/spec/fixtures/views/extension_template_controller/markaby_index.html.mab +0 -0
- data/spec/fixtures/views/extension_template_controller/markaby_templates.html.mab +0 -1
- data/spec/fixtures/views/extension_template_controller/markaby_templates.js.mab +0 -1
- data/spec/fixtures/views/extension_template_controller/markaby_templates.xml.mab +0 -1
- data/spec/fixtures/views/extension_template_controller/render_multiple_partials.html.erb +0 -4
- data/spec/fixtures/views/extension_template_controller/render_nested_js.js.erb +0 -1
- data/spec/fixtures/views/extension_template_controller/render_nested_xml.xml.erb +0 -1
- data/spec/fixtures/views/haml.html.haml +0 -1
- data/spec/fixtures/views/haml.xml.haml +0 -2
- data/spec/fixtures/views/layout/application.html.erb +0 -1
- data/spec/fixtures/views/layout/application.xml.erb +0 -1
- data/spec/fixtures/views/layout/nested/example.html.erb +0 -1
- data/spec/fixtures/views/markaby.html.mab +0 -1
- data/spec/fixtures/views/nested/example/test.html.erb +0 -1
- data/spec/fixtures/views/partials/_erubis.html.erb +0 -1
- data/spec/fixtures/views/partials/_erubis_collection.html.erb +0 -1
- data/spec/fixtures/views/partials/_erubis_collection_with_locals.html.erb +0 -1
- data/spec/fixtures/views/partials/_erubis_new.html.erb +0 -1
- data/spec/fixtures/views/partials/_haml.html.haml +0 -1
- data/spec/fixtures/views/partials/_haml_collection.html.haml +0 -1
- data/spec/fixtures/views/partials/_haml_collection_with_locals.html.haml +0 -1
- data/spec/fixtures/views/partials/_haml_new.html.haml +0 -1
- data/spec/fixtures/views/partials/_markaby.html.mab +0 -1
- data/spec/fixtures/views/partials/_markaby_collection.html.mab +0 -1
- data/spec/fixtures/views/partials/_markaby_collection_with_locals.html.mab +0 -1
- data/spec/fixtures/views/partials/_markaby_new.html.mab +0 -1
- data/spec/fixtures/views/render_object_controller/render_object_with_template.html.erb +0 -1
- data/spec/fixtures/views/render_object_controller/render_object_with_template.js.erb +0 -1
- data/spec/fixtures/views/render_object_controller/render_object_with_template.xml.erb +0 -1
- data/spec/fixtures/views/template_views/interface__buffer_erubis.html.erb +0 -4
- data/spec/fixtures/views/template_views/interface__buffer_haml.html.haml +0 -7
- data/spec/fixtures/views/template_views/interface__buffer_markaby.html.mab +0 -7
- data/spec/fixtures/views/template_views/interface_capture_erubis.html.erb +0 -15
- data/spec/fixtures/views/template_views/interface_capture_haml.html.haml +0 -15
- data/spec/fixtures/views/template_views/interface_capture_markaby.html.mab +0 -4
- data/spec/fixtures/views/template_views/interface_concat_erubis.html.erb +0 -12
- data/spec/fixtures/views/template_views/interface_concat_haml.html.haml +0 -11
- data/spec/fixtures/views/template_views/interface_concat_markaby.html.mab +0 -14
- data/spec/fixtures/views/test.dir/the_template.html.erb +0 -1
- data/spec/merb/abstract_controller_spec.rb +0 -38
- data/spec/merb/assets_spec.rb +0 -207
- data/spec/merb/caching_spec.rb +0 -102
- data/spec/merb/config_spec.rb +0 -29
- data/spec/merb/controller_filters_spec.rb +0 -253
- data/spec/merb/controller_spec.rb +0 -126
- data/spec/merb/cookie_store_spec.rb +0 -72
- data/spec/merb/cookies_spec.rb +0 -96
- data/spec/merb/core_ext/class_spec.rb +0 -97
- data/spec/merb/core_ext/enumerable_spec.rb +0 -27
- data/spec/merb/core_ext/hash_spec.rb +0 -251
- data/spec/merb/core_ext/inflector_spec.rb +0 -34
- data/spec/merb/core_ext/kernel_spec.rb +0 -25
- data/spec/merb/core_ext/numeric_spec.rb +0 -26
- data/spec/merb/core_ext/object_spec.rb +0 -47
- data/spec/merb/core_ext/string_spec.rb +0 -22
- data/spec/merb/core_ext/symbol_spec.rb +0 -7
- data/spec/merb/dependency_spec.rb +0 -22
- data/spec/merb/dispatch_spec.rb +0 -528
- data/spec/merb/fake_request_spec.rb +0 -80
- data/spec/merb/generator_spec.rb +0 -248
- data/spec/merb/handler_spec.rb +0 -169
- data/spec/merb/mail_controller_spec.rb +0 -177
- data/spec/merb/mailer_spec.rb +0 -87
- data/spec/merb/multipart_spec.rb +0 -50
- data/spec/merb/part_controller_spec.rb +0 -124
- data/spec/merb/plugins_spec.rb +0 -80
- data/spec/merb/render_spec.rb +0 -469
- data/spec/merb/request_spec.rb +0 -287
- data/spec/merb/responder_spec.rb +0 -562
- data/spec/merb/router_spec.rb +0 -900
- data/spec/merb/server_spec.rb +0 -19
- data/spec/merb/template_spec.rb +0 -41
- data/spec/merb/upload_handler_spec.rb +0 -108
- data/spec/merb/version_spec.rb +0 -33
- data/spec/merb/view_context_spec.rb +0 -366
- data/spec/spec_generator_helper.rb +0 -34
- data/spec/spec_helper.rb +0 -101
- data/spec/spec_helpers/url_shared_behaviour.rb +0 -112
- data/test_unit_generators/merb_controller_test/merb_controller_test_generator.rb +0 -53
- data/test_unit_generators/merb_controller_test/templates/functional_test.rb +0 -17
- data/test_unit_generators/merb_controller_test/templates/helper_test.rb +0 -9
- data/test_unit_generators/merb_model_test/merb_model_test_generator.rb +0 -29
- data/test_unit_generators/merb_model_test/templates/model_test_unit_template.erb +0 -9
data/spec/merb/render_spec.rb
DELETED
|
@@ -1,469 +0,0 @@
|
|
|
1
|
-
require 'stringio'
|
|
2
|
-
require File.dirname(__FILE__) + '/../spec_helper'
|
|
3
|
-
require File.dirname(__FILE__) + '/../fixtures/controllers/render_spec_controllers'
|
|
4
|
-
|
|
5
|
-
describe "rendering engines except XMLBuilder", :shared => true do
|
|
6
|
-
it "should render a template" do
|
|
7
|
-
c = new_controller
|
|
8
|
-
content = c.render :template => "#{@engine}", :layout => :none
|
|
9
|
-
content.clean.should == "Hello!"
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
it "should render a partial" do
|
|
13
|
-
c = new_controller
|
|
14
|
-
content = c.partial "partials/#{@engine}"
|
|
15
|
-
content.clean.should == "No Locals!"
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
it "should render a partial with locals" do
|
|
19
|
-
c = new_controller
|
|
20
|
-
content = c.partial "partials/#{@engine}", :yo => "Locals!"
|
|
21
|
-
content.clean.should == "Locals!"
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
it "should render a partial with nil locals" do
|
|
25
|
-
c = new_controller
|
|
26
|
-
content = c.partial "partials/#{@engine}", :yo => nil
|
|
27
|
-
content.clean.should == "No Locals!"
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
it "should render a partial using the :partial method" do
|
|
31
|
-
c = new_controller
|
|
32
|
-
content = c.partial("partials/#{@engine}")
|
|
33
|
-
content.clean.should == "No Locals!"
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
it "should render a partial using the :partial method with locals" do
|
|
37
|
-
c = new_controller
|
|
38
|
-
content = c.partial("partials/#{@engine}", :yo => "Locals!")
|
|
39
|
-
content.clean.should == "Locals!"
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
it "should render a partial iterating over a collection" do
|
|
43
|
-
c = new_controller
|
|
44
|
-
content = c.partial("partials/#{@engine}_collection",
|
|
45
|
-
:with => (1..10).to_a)
|
|
46
|
-
content.clean.should == (1..10).to_a.join("\n")
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
it "should render a partial with an object" do
|
|
50
|
-
c = new_controller
|
|
51
|
-
content = c.partial("partials/#{@engine}_collection", :with => 1)
|
|
52
|
-
content.clean.should == '1'
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
it "should allow you to overwrite the local var using :as when rendering a collection" do
|
|
56
|
-
c = new_controller
|
|
57
|
-
content = c.partial("partials/#{@engine}_collection_with_locals", :with => (1..10).to_a, :as => :number)
|
|
58
|
-
content.clean.should == (1..10).to_a.join("\n")
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
it "should allow you to overwrite the local var using :as when render an object" do
|
|
62
|
-
c = new_controller
|
|
63
|
-
content = c.partial("partials/#{@engine}_collection_with_locals", :with => 1, :as => :number)
|
|
64
|
-
content.clean.should == '1'
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
it "should render a partial iterating over a collection with extra locals" do
|
|
68
|
-
c = new_controller
|
|
69
|
-
content = c.partial("partials/#{@engine}_collection_with_locals", :with => (1..10).to_a, :number => 'Locals!')
|
|
70
|
-
content.clean.should == (1..10).to_a.map { |i| "Locals!" }.join("\n")
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
it "should render a partial using the .format.engine convention" do
|
|
74
|
-
c = new_controller
|
|
75
|
-
content = c.partial "partials/#{@engine}_new"
|
|
76
|
-
content.clean.should == "No Locals!"
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
it "should render a template without a layout" do
|
|
80
|
-
c = new_controller
|
|
81
|
-
content = c.render_no_layout(:template => "#{@engine}")
|
|
82
|
-
content.clean.should == "Hello!"
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
it "should raise an exception without a template" do
|
|
86
|
-
c = new_controller(nil, Examples)
|
|
87
|
-
lambda {
|
|
88
|
-
c.render_no_layout(:template => nil)
|
|
89
|
-
}.should raise_error(Merb::ControllerExceptions::TemplateNotFound)
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
it "should find a snake case partial" do
|
|
93
|
-
c = new_controller(nil, Examples)
|
|
94
|
-
content = c.partial("#{@engine}")
|
|
95
|
-
content.clean.should == "Hello!"
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
it "should implement a _buffer method" do
|
|
99
|
-
c = new_controller
|
|
100
|
-
content = c.render :template => "template_views/interface__buffer_#{@engine}", :layout => :none
|
|
101
|
-
content.should match( /respond_to\?\(\s*\:_buffer\s*\)\s+\=\s+TRUE/ )
|
|
102
|
-
content.should match( /Text for the view buffer/ )
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
it "should implement a concat( text, binding ) method" do
|
|
106
|
-
c = new_controller
|
|
107
|
-
content = c.render :template => "template_views/interface_concat_#{@engine}", :layout => :none
|
|
108
|
-
content.should match( /Concat Text/ )
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
it "should bind the concat to a block" do
|
|
112
|
-
c = new_controller
|
|
113
|
-
content = c.render :template => "template_views/interface_concat_#{@engine}", :layout => :none
|
|
114
|
-
content.should match( /Start Tester Block\s*In Tester Block\s*Finish Tester Block/m)
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
it "should bind the concat to independent render buffers" do
|
|
118
|
-
c = new_controller
|
|
119
|
-
content = c.render :template => "template_views/interface_concat_#{@engine}", :layout => :none
|
|
120
|
-
content.should match( /Start Tester Block\s*In Tester Block\s*Finish Tester Block/m)
|
|
121
|
-
content = c.render :template => "template_views/interface_concat_#{@engine}", :layout => :none
|
|
122
|
-
content.should match( /Start Tester Block\s*In Tester Block\s*Finish Tester Block/m)
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
it "should implement a capture( &block ) method" do
|
|
126
|
-
c = new_controller
|
|
127
|
-
content = c.render :template => "template_views/interface_capture_#{@engine}", :layout => :none
|
|
128
|
-
content.should match( /Capture Text Without Args/m)
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
it "should render #{@engine} partial using .format.engine convention#{" (caching on)" if defined?(cache) && cache}" do
|
|
132
|
-
c = new_controller
|
|
133
|
-
content = c.partial "partials/#{@engine}_new"
|
|
134
|
-
content.clean.should == "No Locals!"
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
# # These cannot be implemented at this stage with Markaby without instance_exec which will
|
|
138
|
-
# # not be available until Ruby 1.9
|
|
139
|
-
# it "should implement capture and yield arguments to the block for #{@engine}" do
|
|
140
|
-
# c = new_controller
|
|
141
|
-
# content = c.render :template => "template_views/interface_capture_#{@engine}", :layout => :none
|
|
142
|
-
# content.should match( /capture text from yielded object/im)
|
|
143
|
-
# end
|
|
144
|
-
#
|
|
145
|
-
# # This cannot be specced until Ruby 1.9 is available due to instance_exec
|
|
146
|
-
# # unless markaby can be made to accept arguments for this method.
|
|
147
|
-
# it "should capture content in a block for #{@engine}" do
|
|
148
|
-
# c = new_controller
|
|
149
|
-
# content = c.render :template => "template_views/interface_capture_#{@engine}", :layout => :none
|
|
150
|
-
# content.should match( /BEFORE\s*capture text from yielded object\s*AFTER/im)
|
|
151
|
-
# end
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
[true, false].each do |cache|
|
|
155
|
-
Merb::Config[:cache_templates] = cache
|
|
156
|
-
|
|
157
|
-
describe "Merb rendering in general#{" (caching enabled)" if cache}" do
|
|
158
|
-
it "should render inline with Erubis" do
|
|
159
|
-
c = new_controller
|
|
160
|
-
content = c.render :inline => "<%= 'Inline' %>", :layout => :none
|
|
161
|
-
content.clean.should == "Inline"
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
it "should render an XML string" do
|
|
165
|
-
c = new_controller(nil, Examples)
|
|
166
|
-
content = c.render :xml => "<hello>world</hello>"
|
|
167
|
-
content.clean.should == "<hello>world</hello>"
|
|
168
|
-
c.headers["Content-Type"].should == "application/xml"
|
|
169
|
-
c.headers["Encoding"].should == "UTF-8"
|
|
170
|
-
end
|
|
171
|
-
|
|
172
|
-
it "should render a javascript string" do
|
|
173
|
-
c = new_controller(nil, Examples)
|
|
174
|
-
content = c.render(:js => "alert('Hello, world!');")
|
|
175
|
-
content.clean.should == %{alert('Hello, world!');}
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
it "should raise an TemplateNotFound error if a template is called that does not exist" do
|
|
179
|
-
c = new_controller(nil, Examples)
|
|
180
|
-
lambda do
|
|
181
|
-
c.render(:template => "does_not_exist", :format => :html)
|
|
182
|
-
end.should raise_error(Merb::ControllerExceptions::TemplateNotFound)
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
it "should render a template from a directory with a . in it's path" do
|
|
186
|
-
c = new_controller(nil, Examples)
|
|
187
|
-
lambda do
|
|
188
|
-
c.render(:template => "test.dir/the_template", :format => :html)
|
|
189
|
-
end.should_not raise_error(Merb::ControllerExceptions::TemplateNotFound)
|
|
190
|
-
end
|
|
191
|
-
|
|
192
|
-
end
|
|
193
|
-
|
|
194
|
-
describe "Merb rendering with the Erubis engine#{" (caching enabled)" if cache}" do
|
|
195
|
-
before(:all) { @engine = "erubis" }
|
|
196
|
-
it_should_behave_like "rendering engines except XMLBuilder"
|
|
197
|
-
|
|
198
|
-
it "should render a nested controller's views" do
|
|
199
|
-
c = new_controller(nil, Nested::Example)
|
|
200
|
-
content = c.render(:action => "test")
|
|
201
|
-
content.clean.should == "Hello!"
|
|
202
|
-
end
|
|
203
|
-
|
|
204
|
-
it "should report the selected template in controller._template" do
|
|
205
|
-
c = new_controller
|
|
206
|
-
content = c.render(:template => "erubis")
|
|
207
|
-
c.template.should == "erubis.html.erb"
|
|
208
|
-
end
|
|
209
|
-
|
|
210
|
-
it "should raise LayoutNotFound if the layout is missing" do
|
|
211
|
-
c = new_controller
|
|
212
|
-
lambda {
|
|
213
|
-
c.render(:template => "erubis", :layout => "this_is_not_a_layout")
|
|
214
|
-
}.should raise_error(Merb::ControllerExceptions::LayoutNotFound)
|
|
215
|
-
end
|
|
216
|
-
|
|
217
|
-
it "should render the index action using index.html.erb" do
|
|
218
|
-
c = new_spec_controller
|
|
219
|
-
c.dispatch(:index)
|
|
220
|
-
c.template.should == "index.html.erb"
|
|
221
|
-
end
|
|
222
|
-
|
|
223
|
-
it "should render an erubis .html.erb template" do
|
|
224
|
-
c = new_spec_controller(:format => 'html')
|
|
225
|
-
c.dispatch(:erubis_templates)
|
|
226
|
-
c.template.should == "erubis_templates.html.erb"
|
|
227
|
-
end
|
|
228
|
-
|
|
229
|
-
it "should render an .html.erb template in front of a erubis_templates.rhtml" do
|
|
230
|
-
c = new_spec_controller(:format => 'html')
|
|
231
|
-
c.dispatch(:erubis_templates)
|
|
232
|
-
c.template.should == "erubis_templates.html.erb"
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
it "should render an erubis .js.erb template" do
|
|
236
|
-
c = new_spec_controller(:format => 'js')
|
|
237
|
-
c.dispatch(:erubis_templates)
|
|
238
|
-
c.template.should == "erubis_templates.js.erb"
|
|
239
|
-
end
|
|
240
|
-
|
|
241
|
-
it "should render an erubis .xml.erb template" do
|
|
242
|
-
c = new_spec_controller(:format => 'xml')
|
|
243
|
-
c.dispatch(:erubis_templates)
|
|
244
|
-
c.template.should == "erubis_templates.xml.erb"
|
|
245
|
-
end
|
|
246
|
-
|
|
247
|
-
it "should render js in nested partials when the format is javascript" do
|
|
248
|
-
c = new_spec_controller
|
|
249
|
-
c.dispatch(:render_nested_js)
|
|
250
|
-
c.body.should match(/nested_js_partial/m)
|
|
251
|
-
end
|
|
252
|
-
|
|
253
|
-
it "should render xml in nested partials when the format is xml" do
|
|
254
|
-
c = new_spec_controller
|
|
255
|
-
c.dispatch(:render_nested_xml)
|
|
256
|
-
c.body.should match(/nested_xml_partial/m)
|
|
257
|
-
end
|
|
258
|
-
|
|
259
|
-
it "should render multiple partials with locals" do
|
|
260
|
-
c = new_spec_controller(:controller => "ExtensionTemplateController")
|
|
261
|
-
c.dispatch(:render_multiple_partials)
|
|
262
|
-
(1..10).each do |i|
|
|
263
|
-
c.body.should match(/#{i}/)
|
|
264
|
-
end
|
|
265
|
-
end
|
|
266
|
-
|
|
267
|
-
end
|
|
268
|
-
|
|
269
|
-
describe "Merb rendering with the Markaby engine#{" (caching enabled)" if cache}" do
|
|
270
|
-
before(:all) { @engine = "markaby" }
|
|
271
|
-
it_should_behave_like "rendering engines except XMLBuilder"
|
|
272
|
-
|
|
273
|
-
it "should render markaby_index using markaby_index.html.mab" do
|
|
274
|
-
c = new_spec_controller
|
|
275
|
-
c.dispatch(:markaby_index)
|
|
276
|
-
c.template.should == "markaby_index.html.mab"
|
|
277
|
-
end
|
|
278
|
-
|
|
279
|
-
it "should render a markaby .html.mab template" do
|
|
280
|
-
c = new_spec_controller(:format => 'html')
|
|
281
|
-
c.dispatch(:markaby_templates)
|
|
282
|
-
c.template.should == "markaby_templates.html.mab"
|
|
283
|
-
end
|
|
284
|
-
|
|
285
|
-
it "should render a markaby .js.mab template" do
|
|
286
|
-
c = new_spec_controller(:format => 'js')
|
|
287
|
-
c.dispatch(:markaby_templates)
|
|
288
|
-
c.template.should == "markaby_templates.js.mab"
|
|
289
|
-
end
|
|
290
|
-
|
|
291
|
-
it "should render a markaby .xml.mab template" do
|
|
292
|
-
c = new_spec_controller(:format => 'xml')
|
|
293
|
-
c.dispatch(:markaby_templates)
|
|
294
|
-
c.template.should == "markaby_templates.xml.mab"
|
|
295
|
-
end
|
|
296
|
-
end
|
|
297
|
-
|
|
298
|
-
# XMLBuilder and Haml templates aren't supported under JRuby yet
|
|
299
|
-
unless RUBY_PLATFORM =~ /java/
|
|
300
|
-
describe "Merb rendering with the Haml engine#{" (caching enabled)" if cache}" do
|
|
301
|
-
before(:all) { @engine = "haml" }
|
|
302
|
-
it_should_behave_like "rendering engines except XMLBuilder"
|
|
303
|
-
|
|
304
|
-
it "should render haml_index using haml_index.html.haml" do
|
|
305
|
-
c = new_spec_controller
|
|
306
|
-
c.dispatch(:haml_index)
|
|
307
|
-
c.template.should == "haml_index.html.haml"
|
|
308
|
-
end
|
|
309
|
-
|
|
310
|
-
it "should render an haml .html.haml template" do
|
|
311
|
-
c = new_spec_controller(:format => 'html')
|
|
312
|
-
c.dispatch(:haml_templates)
|
|
313
|
-
c.template.should == "haml_templates.html.haml"
|
|
314
|
-
end
|
|
315
|
-
|
|
316
|
-
it "should render an haml .js.haml template" do
|
|
317
|
-
c = new_spec_controller(:format => 'js')
|
|
318
|
-
c.dispatch(:haml_templates)
|
|
319
|
-
c.template.should == "haml_templates.js.haml"
|
|
320
|
-
end
|
|
321
|
-
|
|
322
|
-
it "should render an haml .xml.haml template" do
|
|
323
|
-
c = new_spec_controller(:format => 'xml')
|
|
324
|
-
c.dispatch(:haml_templates)
|
|
325
|
-
c.template.should == "haml_templates.xml.haml"
|
|
326
|
-
end
|
|
327
|
-
|
|
328
|
-
end
|
|
329
|
-
|
|
330
|
-
describe "Merb rendering with the XMLBuilder engine#{" (caching enabled)" if cache}" do
|
|
331
|
-
before(:all) { @engine = "builder" }
|
|
332
|
-
|
|
333
|
-
it "should render an XML template from a symbol" do
|
|
334
|
-
c = new_controller(nil, Examples)
|
|
335
|
-
content = c.render :xml => :hello
|
|
336
|
-
content.clean.should == "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<hello>world</hello>"
|
|
337
|
-
c.headers["Content-Type"].should == "application/xml"
|
|
338
|
-
end
|
|
339
|
-
|
|
340
|
-
it "should render an XML template from an action" do
|
|
341
|
-
c = new_controller(nil, Examples)
|
|
342
|
-
content = c.render :xml => true, :action => "hello"
|
|
343
|
-
content.clean.should == "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<hello>world</hello>"
|
|
344
|
-
c.headers["Content-Type"].should == "application/xml"
|
|
345
|
-
end
|
|
346
|
-
|
|
347
|
-
end
|
|
348
|
-
end
|
|
349
|
-
|
|
350
|
-
end
|
|
351
|
-
|
|
352
|
-
describe "Merb rendering with an object calls to_json or to_xml on the object" do
|
|
353
|
-
it "render @foo should call @foo.to_json when json is requested" do
|
|
354
|
-
c = new_spec_controller(:format => 'json', :controller => 'RenderObjectController')
|
|
355
|
-
c.dispatch(:render_object)
|
|
356
|
-
c.body.should == "{'foo':'bar'}"
|
|
357
|
-
end
|
|
358
|
-
|
|
359
|
-
it "render @foo should call @foo.to_xml when json is requested" do
|
|
360
|
-
c = new_spec_controller(:format => 'xml', :controller => 'RenderObjectController')
|
|
361
|
-
c.dispatch(:render_object)
|
|
362
|
-
c.body.should == "<foo>bar</foo>"
|
|
363
|
-
end
|
|
364
|
-
|
|
365
|
-
it "should render the template for the action when called with an object and the template exists" do
|
|
366
|
-
c = new_spec_controller(:format => :html, :controller => 'RenderObjectController')
|
|
367
|
-
c.dispatch(:render_object_with_template)
|
|
368
|
-
c.body.should match(/object with template html format/)
|
|
369
|
-
end
|
|
370
|
-
|
|
371
|
-
it "should render the template for the action when called with an object and the template exists" do
|
|
372
|
-
c = new_spec_controller(:format => :xml, :controller => 'RenderObjectController')
|
|
373
|
-
c.dispatch(:render_object_with_template)
|
|
374
|
-
c.body.should match(/object with template xml format/)
|
|
375
|
-
end
|
|
376
|
-
|
|
377
|
-
it "should render the template for the action when called with an object and the template exists" do
|
|
378
|
-
c = new_spec_controller(:format => :js, :controller => 'RenderObjectController')
|
|
379
|
-
c.dispatch(:render_object_with_template)
|
|
380
|
-
c.body.should match(/object with template js format/)
|
|
381
|
-
end
|
|
382
|
-
|
|
383
|
-
end
|
|
384
|
-
|
|
385
|
-
describe "Merb rendering with an object calls to_json or to_xml on the object (using specified arguments)" do
|
|
386
|
-
|
|
387
|
-
it "render @foo should call @foo.to_json when json is requested (using default options)" do
|
|
388
|
-
c = new_spec_controller(:format => 'json', :controller => 'RenderObjectWithArgumentsController')
|
|
389
|
-
c.provided_format_arguments_for(:json).should == ["foo", "bar"]
|
|
390
|
-
c.dispatch(:render_standard)
|
|
391
|
-
c.body.should == "['foo','bar']"
|
|
392
|
-
end
|
|
393
|
-
|
|
394
|
-
it "render @foo should call @foo.to_json when json is requested (using action options)" do
|
|
395
|
-
c = new_spec_controller(:format => 'json', :controller => 'RenderObjectWithArgumentsController')
|
|
396
|
-
c.dispatch(:render_specific)
|
|
397
|
-
c.body.should == "['foo','bar','baz']"
|
|
398
|
-
end
|
|
399
|
-
|
|
400
|
-
it "render @foo should call @foo.to_xml when xml is requested (using default options)" do
|
|
401
|
-
c = new_spec_controller(:format => 'xml', :controller => 'RenderObjectWithArgumentsController')
|
|
402
|
-
c.provided_format_arguments_for(:xml).should == [{:foo=>"bar"}]
|
|
403
|
-
c.dispatch(:render_standard)
|
|
404
|
-
c.body.should == "<foo>bar</foo>"
|
|
405
|
-
end
|
|
406
|
-
|
|
407
|
-
it "render @foo should call @foo.to_xml when xml is requested (using action options)" do
|
|
408
|
-
c = new_spec_controller(:format => 'xml', :controller => 'RenderObjectWithArgumentsController')
|
|
409
|
-
c.dispatch(:render_specific)
|
|
410
|
-
c.body.should == "<biz>baz</biz><foo>bar</foo>"
|
|
411
|
-
end
|
|
412
|
-
|
|
413
|
-
end
|
|
414
|
-
|
|
415
|
-
describe "Merb rendering with a hash object calls to_json or to_xml on the object" do
|
|
416
|
-
|
|
417
|
-
it "render :obj => @foo should call @foo.to_json when json is requested" do
|
|
418
|
-
c = new_spec_controller(:format => 'json', :controller => 'RenderHashObjectController')
|
|
419
|
-
c.dispatch(:render_object)
|
|
420
|
-
JSON.load(c.body).should == {'baz' => "quuz", "foo" => "bar"}
|
|
421
|
-
end
|
|
422
|
-
|
|
423
|
-
it "render @foo should call @foo.to_xml when xml is requested" do
|
|
424
|
-
c = new_spec_controller(:format => 'xml', :controller => 'RenderHashObjectController')
|
|
425
|
-
c.dispatch(:render_object)
|
|
426
|
-
c.body.should match(/<\?xml version="1.0" encoding="UTF-8"\?>\n<hash>/m)
|
|
427
|
-
c.body.should match(/(<baz>quuz<\/baz>\n\s+<foo>bar<\/foo>\n<\/hash>)|(<foo>bar<\/foo>\n\s+<baz>quuz<\/baz>\n<\/hash>)/m)
|
|
428
|
-
end
|
|
429
|
-
|
|
430
|
-
end
|
|
431
|
-
|
|
432
|
-
describe "Merb rendering with an object and using a block/lambda for provides" do
|
|
433
|
-
|
|
434
|
-
it "render @foo should use the default block when xml is requested" do
|
|
435
|
-
c = new_spec_controller(:format => 'xml', :controller => 'RenderObjectWithBlockController')
|
|
436
|
-
c.provided_format_arguments_for(:xml).should be_kind_of(Proc)
|
|
437
|
-
c.dispatch(:render_standard)
|
|
438
|
-
c.body.should == "<foo>RenderObjectWithBlockController</foo>"
|
|
439
|
-
end
|
|
440
|
-
|
|
441
|
-
it "render @foo should use the default block when json is requested" do
|
|
442
|
-
c = new_spec_controller(:format => 'json', :controller => 'RenderObjectWithBlockController')
|
|
443
|
-
c.provided_format_arguments_for(:json).should be_kind_of(Proc)
|
|
444
|
-
c.dispatch(:render_standard)
|
|
445
|
-
c.body.should == "['foo']"
|
|
446
|
-
end
|
|
447
|
-
|
|
448
|
-
it "render @foo should use the specific proc when xml is requested" do
|
|
449
|
-
c = new_spec_controller(:format => 'xml', :controller => 'RenderObjectWithBlockController')
|
|
450
|
-
c.dispatch(:render_specific)
|
|
451
|
-
c.body.should == "<foo>RENDEROBJECTWITHBLOCKCONTROLLER</foo>"
|
|
452
|
-
end
|
|
453
|
-
|
|
454
|
-
it "render @foo should use the specific proc when json is requested" do
|
|
455
|
-
c = new_spec_controller(:format => 'json', :controller => 'RenderObjectWithBlockController')
|
|
456
|
-
c.dispatch(:render_specific)
|
|
457
|
-
c.body.should == "['RenderObjectWithBlockController','foo','bar','baz']"
|
|
458
|
-
end
|
|
459
|
-
|
|
460
|
-
end
|
|
461
|
-
|
|
462
|
-
def new_spec_controller(options={})
|
|
463
|
-
params = {:controller => 'ExtensionTemplateController'}
|
|
464
|
-
params.update(:format => options.delete(:format)) if options[:format]
|
|
465
|
-
params.update(:controller => options[:controller]) if options[:controller]
|
|
466
|
-
@request = Merb::Test::FakeRequest.new(options)
|
|
467
|
-
@request.params.merge!(params)
|
|
468
|
-
Object.const_get(params[:controller].to_sym).build(@request, @request.body)
|
|
469
|
-
end
|