diff options
author | Colin Curtin <colin@procore.com> | 2008-11-26 10:18:03 -0800 |
---|---|---|
committer | Colin Curtin <colin@procore.com> | 2008-11-26 10:18:03 -0800 |
commit | 4812e350b9e96641a29c8db6ea153426dad1c9a2 (patch) | |
tree | 1aa5ab05d8ff420c833677505f9b884ec61e4627 /railties/doc/guides/source/creating_plugins/controllers.txt | |
parent | 78af01f80b3622237462d150aca4aba18204c093 (diff) | |
parent | d18bfa2a4165297dbf5e6b1fff1731fefa9dd135 (diff) | |
download | rails-4812e350b9e96641a29c8db6ea153426dad1c9a2.tar.gz rails-4812e350b9e96641a29c8db6ea153426dad1c9a2.tar.bz2 rails-4812e350b9e96641a29c8db6ea153426dad1c9a2.zip |
Merge branch 'master' of git@github.com:lifo/docrails
Diffstat (limited to 'railties/doc/guides/source/creating_plugins/controllers.txt')
-rw-r--r-- | railties/doc/guides/source/creating_plugins/controllers.txt | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/railties/doc/guides/source/creating_plugins/controllers.txt b/railties/doc/guides/source/creating_plugins/controllers.txt new file mode 100644 index 0000000000..7afdef032d --- /dev/null +++ b/railties/doc/guides/source/creating_plugins/controllers.txt @@ -0,0 +1,63 @@ +== Controllers == + +This section describes how to add a controller named 'woodpeckers' to your plugin that will behave the same as a controller in your main app. This is very similar to adding a model. + +You can test your plugin's controller as you would test any other controller: + +*vendor/plugins/yaffle/test/woodpeckers_controller_test.rb:* + +[source, ruby] +---------------------------------------------- +require File.dirname(__FILE__) + '/test_helper.rb' +require 'woodpeckers_controller' +require 'action_controller/test_process' + +class WoodpeckersController; def rescue_action(e) raise e end; end + +class WoodpeckersControllerTest < Test::Unit::TestCase + def setup + @controller = WoodpeckersController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + + ActionController::Routing::Routes.draw do |map| + map.resources :woodpeckers + end + end + + def test_index + get :index + assert_response :success + end +end +---------------------------------------------- + +This is just a simple test to make sure the controller is being loaded correctly. After watching it fail with `rake`, you can make it pass like so: + +*vendor/plugins/yaffle/lib/yaffle.rb:* + +[source, ruby] +---------------------------------------------- +%w{ models controllers }.each do |dir| + path = File.join(File.dirname(__FILE__), 'app', dir) + $LOAD_PATH << path + ActiveSupport::Dependencies.load_paths << path + ActiveSupport::Dependencies.load_once_paths.delete(path) +end +---------------------------------------------- + + +*vendor/plugins/yaffle/lib/app/controllers/woodpeckers_controller.rb:* + +[source, ruby] +---------------------------------------------- +class WoodpeckersController < ActionController::Base + + def index + render :text => "Squawk!" + end + +end +---------------------------------------------- + +Now your test should be passing, and you should be able to use the Woodpeckers controller in your app. If you add a route for the woodpeckers controller you can start up your server and go to http://localhost:3000/woodpeckers to see your controller in action. |