aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/CHANGELOG.md2
-rw-r--r--actionpack/lib/action_controller.rb1
-rw-r--r--actionpack/lib/action_controller/http.rb134
-rw-r--r--actionpack/test/abstract_unit.rb4
-rw-r--r--actionpack/test/controller/http/action_methods_test.rb19
-rw-r--r--actionpack/test/controller/http/conditional_get_test.rb55
-rw-r--r--actionpack/test/controller/http/data_streaming_test.rb27
-rw-r--r--actionpack/test/controller/http/force_ssl_test.rb20
-rw-r--r--actionpack/test/controller/http/redirect_to_test.rb19
-rw-r--r--actionpack/test/controller/http/renderers_test.rb37
-rw-r--r--actionpack/test/controller/http/url_for_test.rb20
11 files changed, 0 insertions, 338 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md
index 97215b90d6..20b6820065 100644
--- a/actionpack/CHANGELOG.md
+++ b/actionpack/CHANGELOG.md
@@ -1,7 +1,5 @@
## Rails 4.0.0 (unreleased) ##
-* Support API apps http://edgeguides.rubyonrails.org/api_app.html *Santiago Pastorino and Carlos Antonio da Silva*
-
* Add `include_hidden` option to select tag. With `:include_hidden => false` select with `multiple` attribute doesn't generate hidden input with blank value. *Vasiliy Ermolovich*
* Removed default `size` option from the `text_field`, `search_field`, `telephone_field`, `url_field`, `email_field` helpers. *Philip Arndt*
diff --git a/actionpack/lib/action_controller.rb b/actionpack/lib/action_controller.rb
index b8624fd1ba..7c10fcbb8a 100644
--- a/actionpack/lib/action_controller.rb
+++ b/actionpack/lib/action_controller.rb
@@ -6,7 +6,6 @@ module ActionController
autoload :Base
autoload :Caching
- autoload :HTTP
autoload :Metal
autoload :Middleware
diff --git a/actionpack/lib/action_controller/http.rb b/actionpack/lib/action_controller/http.rb
deleted file mode 100644
index 252a652cd9..0000000000
--- a/actionpack/lib/action_controller/http.rb
+++ /dev/null
@@ -1,134 +0,0 @@
-require "action_controller/log_subscriber"
-
-module ActionController
- # HTTP Controller is a lightweight version of <tt>ActionController::Base</tt>,
- # created for applications that don't require all functionality that a complete
- # \Rails controller provides, allowing you to create faster controllers. The
- # main scenario where HTTP Controllers could be used is API only applications.
- #
- # An HTTP Controller is different from a normal controller in the sense that
- # by default it doesn't include a number of features that are usually required
- # by browser access only: layouts and templates rendering, cookies, sessions,
- # flash, assets, and so on. This makes the entire controller stack thinner and
- # faster, suitable for API applications. It doesn't mean you won't have such
- # features if you need them: they're all available for you to include in
- # your application, they're just not part of the default HTTP Controller stack.
- #
- # By default, only the ApplicationController in a \Rails application inherits
- # from <tt>ActionController::HTTP</tt>. All other controllers in turn inherit
- # from ApplicationController.
- #
- # A sample controller could look like this:
- #
- # class PostsController < ApplicationController
- # def index
- # @posts = Post.all
- # render json: @posts
- # end
- # end
- #
- # Request, response and parameters objects all work the exact same way as
- # <tt>ActionController::Base</tt>.
- #
- # == Renders
- #
- # The default HTTP Controller stack includes all renderers, which means you
- # can use <tt>render :json</tt> and brothers freely in your controllers. Keep
- # in mind that templates are not going to be rendered, so you need to ensure
- # your controller is calling either <tt>render</tt> or <tt>redirect</tt> in
- # all actions.
- #
- # def show
- # @post = Post.find(params[:id])
- # render json: @post
- # end
- #
- # == Redirects
- #
- # Redirects are used to move from one action to another. You can use the
- # <tt>redirect</tt> method in your controllers in the same way as
- # <tt>ActionController::Base</tt>. For example:
- #
- # def create
- # redirect_to root_url and return if not_authorized?
- # # do stuff here
- # end
- #
- # == Adding new behavior
- #
- # In some scenarios you may want to add back some functionality provided by
- # <tt>ActionController::Base</tt> that is not present by default in
- # <tt>ActionController::HTTP</tt>, for instance <tt>MimeResponds</tt>. This
- # module gives you the <tt>respond_to</tt> and <tt>respond_with</tt> methods.
- # Adding it is quite simple, you just need to include the module in a specific
- # controller or in <tt>ApplicationController</tt> in case you want it
- # available to your entire app:
- #
- # class ApplicationController < ActionController::HTTP
- # include ActionController::MimeResponds
- # end
- #
- # class PostsController < ApplicationController
- # respond_to :json, :xml
- #
- # def index
- # @posts = Post.all
- # respond_with @posts
- # end
- # end
- #
- # Quite straightforward. Make sure to check <tt>ActionController::Base</tt>
- # available modules if you want to include any other functionality that is
- # not provided by <tt>ActionController::HTTP</tt> out of the box.
- class HTTP < Metal
- abstract!
-
- # Shortcut helper that returns all the ActionController::HTTP modules except the ones passed in the argument:
- #
- # class MetalController
- # ActionController::HTTP.without_modules(:ParamsWrapper, :Streaming).each do |left|
- # include left
- # end
- # end
- #
- # This gives better control over what you want to exclude and makes it easier
- # to create a bare controller class, instead of listing the modules required manually.
- def self.without_modules(*modules)
- modules = modules.map do |m|
- m.is_a?(Symbol) ? ActionController.const_get(m) : m
- end
-
- MODULES - modules
- end
-
- MODULES = [
- HideActions,
- UrlFor,
- Redirecting,
- Rendering,
- Renderers::All,
- ConditionalGet,
- RackDelegation,
-
- ForceSSL,
- DataStreaming,
-
- # Before callbacks should also be executed the earliest as possible, so
- # also include them at the bottom.
- AbstractController::Callbacks,
-
- # Append rescue at the bottom to wrap as much as possible.
- Rescue,
-
- # Add instrumentations hooks at the bottom, to ensure they instrument
- # all the methods properly.
- Instrumentation
- ]
-
- MODULES.each do |mod|
- include mod
- end
-
- ActiveSupport.run_load_hooks(:action_controller, self)
- end
-end
diff --git a/actionpack/test/abstract_unit.rb b/actionpack/test/abstract_unit.rb
index a05a816b71..b1a5356ddd 100644
--- a/actionpack/test/abstract_unit.rb
+++ b/actionpack/test/abstract_unit.rb
@@ -293,10 +293,6 @@ module ActionController
end
end
- class HTTP
- include SharedTestRoutes.url_helpers
- end
-
class TestCase
include ActionDispatch::TestProcess
diff --git a/actionpack/test/controller/http/action_methods_test.rb b/actionpack/test/controller/http/action_methods_test.rb
deleted file mode 100644
index 20bb53aca2..0000000000
--- a/actionpack/test/controller/http/action_methods_test.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-require 'abstract_unit'
-
-class ActionMethodsHTTPController < ActionController::HTTP
- def one; end
- def two; end
- hide_action :two
-end
-
-class ActionMethodsHTTPTest < ActiveSupport::TestCase
- def setup
- @controller = ActionMethodsHTTPController.new
- end
-
- def test_action_methods
- assert_equal Set.new(%w(one)),
- @controller.class.action_methods,
- "#{@controller.controller_path} should not be empty!"
- end
-end
diff --git a/actionpack/test/controller/http/conditional_get_test.rb b/actionpack/test/controller/http/conditional_get_test.rb
deleted file mode 100644
index 70d5ef296f..0000000000
--- a/actionpack/test/controller/http/conditional_get_test.rb
+++ /dev/null
@@ -1,55 +0,0 @@
-require 'abstract_unit'
-
-class ConditionalGetHTTPController < ActionController::HTTP
- before_filter :handle_last_modified_and_etags, :only => :two
-
- def one
- if stale?(:last_modified => Time.now.utc.beginning_of_day, :etag => [:foo, 123])
- render :text => "Hi!"
- end
- end
-
- def two
- render :text => "Hi!"
- end
-
- private
-
- def handle_last_modified_and_etags
- fresh_when(:last_modified => Time.now.utc.beginning_of_day, :etag => [ :foo, 123 ])
- end
-end
-
-class ConditionalGetHTTPTest < ActionController::TestCase
- tests ConditionalGetHTTPController
-
- def setup
- @last_modified = Time.now.utc.beginning_of_day.httpdate
- end
-
- def test_request_with_bang_gets_last_modified
- get :two
- assert_equal @last_modified, @response.headers['Last-Modified']
- assert_response :success
- end
-
- def test_request_with_bang_obeys_last_modified
- @request.if_modified_since = @last_modified
- get :two
- assert_response :not_modified
- end
-
- def test_last_modified_works_with_less_than_too
- @request.if_modified_since = 5.years.ago.httpdate
- get :two
- assert_response :success
- end
-
- def test_request_not_modified
- @request.if_modified_since = @last_modified
- get :one
- assert_equal 304, @response.status.to_i
- assert_blank @response.body
- assert_equal @last_modified, @response.headers['Last-Modified']
- end
-end
diff --git a/actionpack/test/controller/http/data_streaming_test.rb b/actionpack/test/controller/http/data_streaming_test.rb
deleted file mode 100644
index 67457b25b0..0000000000
--- a/actionpack/test/controller/http/data_streaming_test.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-require 'abstract_unit'
-
-module TestHTTPFileUtils
- def file_name() File.basename(__FILE__) end
- def file_path() File.expand_path(__FILE__) end
- def file_data() @data ||= File.open(file_path, 'rb') { |f| f.read } end
-end
-
-class DataStreamingHTTPController < ActionController::HTTP
- include TestHTTPFileUtils
-
- def one; end
- def two
- send_data(file_data, {})
- end
-end
-
-class DataStreamingHTTPTest < ActionController::TestCase
- include TestHTTPFileUtils
- tests DataStreamingHTTPController
-
- def test_data
- response = process('two')
- assert_kind_of String, response.body
- assert_equal file_data, response.body
- end
-end
diff --git a/actionpack/test/controller/http/force_ssl_test.rb b/actionpack/test/controller/http/force_ssl_test.rb
deleted file mode 100644
index 479ede6b78..0000000000
--- a/actionpack/test/controller/http/force_ssl_test.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-require 'abstract_unit'
-
-class ForceSSLHTTPController < ActionController::HTTP
- force_ssl
-
- def one; end
- def two
- head :ok
- end
-end
-
-class ForceSSLHTTPTest < ActionController::TestCase
- tests ForceSSLHTTPController
-
- def test_banana_redirects_to_https
- get :two
- assert_response 301
- assert_equal "https://test.host/force_sslhttp/two", redirect_to_url
- end
-end
diff --git a/actionpack/test/controller/http/redirect_to_test.rb b/actionpack/test/controller/http/redirect_to_test.rb
deleted file mode 100644
index c410910bae..0000000000
--- a/actionpack/test/controller/http/redirect_to_test.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-require 'abstract_unit'
-
-class RedirectToHTTPController < ActionController::HTTP
- def one
- redirect_to :action => "two"
- end
-
- def two; end
-end
-
-class RedirectToHTTPTest < ActionController::TestCase
- tests RedirectToHTTPController
-
- def test_redirect_to
- get :one
- assert_response :redirect
- assert_equal "http://test.host/redirect_to_http/two", redirect_to_url
- end
-end
diff --git a/actionpack/test/controller/http/renderers_test.rb b/actionpack/test/controller/http/renderers_test.rb
deleted file mode 100644
index a28f226a94..0000000000
--- a/actionpack/test/controller/http/renderers_test.rb
+++ /dev/null
@@ -1,37 +0,0 @@
-require 'abstract_unit'
-
-class Model
- def to_json(options = {})
- { :a => 'b' }.to_json(options)
- end
-
- def to_xml(options = {})
- { :a => 'b' }.to_xml(options)
- end
-end
-
-class RenderersHTTPController < ActionController::HTTP
- def one
- render :json => Model.new
- end
-
- def two
- render :xml => Model.new
- end
-end
-
-class RenderersHTTPTest < ActionController::TestCase
- tests RenderersHTTPController
-
- def test_render_json
- get :one
- assert_response :success
- assert_equal({ :a => 'b' }.to_json, @response.body)
- end
-
- def test_render_xml
- get :two
- assert_response :success
- assert_equal({ :a => 'b' }.to_xml, @response.body)
- end
-end
diff --git a/actionpack/test/controller/http/url_for_test.rb b/actionpack/test/controller/http/url_for_test.rb
deleted file mode 100644
index fba24011a2..0000000000
--- a/actionpack/test/controller/http/url_for_test.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-require 'abstract_unit'
-
-class UrlForHTTPController < ActionController::HTTP
- def one; end
- def two; end
-end
-
-class UrlForHTTPTest < ActionController::TestCase
- tests UrlForHTTPController
-
- def setup
- super
- @request.host = 'www.example.com'
- end
-
- def test_url_for
- get :one
- assert_equal "http://www.example.com/url_for_http/one", @controller.url_for
- end
-end