diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2008-11-15 12:21:04 -0800 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2008-11-15 12:21:04 -0800 |
commit | eeea1a26ec7bd5e11caa4630ff7820c1c7f762e3 (patch) | |
tree | 3b193dba9756b45e1a0a70d47faa4c3e2ff946a9 /railties/doc/guides/source/creating_plugins/controllers.txt | |
parent | 1304b664924bfea54fd6dc0dc924ae3d126ff92d (diff) | |
parent | 4f984c9d0e66601a81cb5ae6e3b50582e6dc0c2d (diff) | |
download | rails-eeea1a26ec7bd5e11caa4630ff7820c1c7f762e3.tar.gz rails-eeea1a26ec7bd5e11caa4630ff7820c1c7f762e3.tar.bz2 rails-eeea1a26ec7bd5e11caa4630ff7820c1c7f762e3.zip |
Merge branch 'master' into testing
Diffstat (limited to 'railties/doc/guides/source/creating_plugins/controllers.txt')
-rw-r--r-- | railties/doc/guides/source/creating_plugins/controllers.txt | 59 |
1 files changed, 59 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..ee408adb1d --- /dev/null +++ b/railties/doc/guides/source/creating_plugins/controllers.txt @@ -0,0 +1,59 @@ +== Add a controller == + +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/yaffle/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 + 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. |