aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/Rakefile12
-rw-r--r--actionpack/lib/abstract_controller/asset_paths.rb2
-rw-r--r--actionpack/lib/action_controller/base.rb1
-rw-r--r--actionpack/lib/action_controller/railtie.rb33
-rw-r--r--actionpack/lib/action_controller/railties/url_helpers.rb14
-rw-r--r--actionpack/lib/action_controller/test_case.rb2
-rw-r--r--actionpack/lib/action_dispatch/routing/deprecated_mapper.rb2
-rw-r--r--actionpack/lib/action_dispatch/routing/route_set.rb2
-rw-r--r--actionpack/lib/action_dispatch/routing/url_for.rb2
-rw-r--r--actionpack/lib/action_dispatch/testing/integration.rb4
-rw-r--r--actionpack/lib/action_view/helpers/capture_helper.rb2
-rw-r--r--actionpack/lib/action_view/helpers/form_tag_helper.rb3
-rw-r--r--actionpack/lib/action_view/helpers/url_helper.rb2
-rw-r--r--actionpack/test/template/capture_helper_test.rb2
-rw-r--r--actionpack/test/template/javascript_helper_test.rb8
-rw-r--r--actionpack/test/template/url_helper_test.rb22
16 files changed, 48 insertions, 65 deletions
diff --git a/actionpack/Rakefile b/actionpack/Rakefile
index 3a988d832d..4af8ea167a 100644
--- a/actionpack/Rakefile
+++ b/actionpack/Rakefile
@@ -1,8 +1,8 @@
-gem 'rdoc', '= 2.2'
+gem 'rdoc', '>= 2.5.9'
require 'rdoc'
require 'rake'
require 'rake/testtask'
-require 'rake/rdoctask'
+require 'rdoc/task'
require 'rake/packagetask'
require 'rake/gempackagetask'
@@ -38,12 +38,12 @@ end
# Genereate the RDoc documentation
-Rake::RDocTask.new { |rdoc|
+RDoc::Task.new { |rdoc|
rdoc.rdoc_dir = 'doc'
rdoc.title = "Action Pack -- On rails from request to response"
- rdoc.options << '--line-numbers' << '--inline-source'
rdoc.options << '--charset' << 'utf-8'
- rdoc.template = ENV['template'] ? "#{ENV['template']}.rb" : '../doc/template/horo'
+ rdoc.options << '-f' << 'horo'
+ rdoc.options << '--main' << 'README.rdoc'
if ENV['DOC_FILES']
rdoc.rdoc_files.include(ENV['DOC_FILES'].split(/,\s*/))
else
@@ -89,4 +89,4 @@ task :lines do
end
puts "Total: Lines #{total_lines}, LOC #{total_codelines}"
-end \ No newline at end of file
+end
diff --git a/actionpack/lib/abstract_controller/asset_paths.rb b/actionpack/lib/abstract_controller/asset_paths.rb
index 6d6f6ac607..9ca2fb742f 100644
--- a/actionpack/lib/abstract_controller/asset_paths.rb
+++ b/actionpack/lib/abstract_controller/asset_paths.rb
@@ -3,7 +3,7 @@ module AbstractController
extend ActiveSupport::Concern
included do
- config_accessor :assets_dir, :javascripts_dir, :stylesheets_dir
+ config_accessor :asset_host, :asset_path, :assets_dir, :javascripts_dir, :stylesheets_dir
end
end
end \ No newline at end of file
diff --git a/actionpack/lib/action_controller/base.rb b/actionpack/lib/action_controller/base.rb
index 1c6896d362..9dfffced75 100644
--- a/actionpack/lib/action_controller/base.rb
+++ b/actionpack/lib/action_controller/base.rb
@@ -63,7 +63,6 @@ module ActionController
klass.helper :all
end
- config_accessor :asset_host, :asset_path
ActiveSupport.run_load_hooks(:action_controller, self)
end
end
diff --git a/actionpack/lib/action_controller/railtie.rb b/actionpack/lib/action_controller/railtie.rb
index 9261422f0b..cd2dfafbe6 100644
--- a/actionpack/lib/action_controller/railtie.rb
+++ b/actionpack/lib/action_controller/railtie.rb
@@ -5,8 +5,6 @@ require "action_view/railtie"
require "active_support/deprecation/proxy_wrappers"
require "active_support/deprecation"
-require "action_controller/railties/url_helpers"
-
module ActionController
class Railtie < Rails::Railtie
config.action_controller = ActiveSupport::OrderedOptions.new
@@ -33,21 +31,6 @@ module ActionController
end
end
- initializer "action_controller.set_configs" do |app|
- paths = app.config.paths
- ac = app.config.action_controller
-
- ac.assets_dir ||= paths.public.to_a.first
- ac.javascripts_dir ||= paths.public.javascripts.to_a.first
- ac.stylesheets_dir ||= paths.public.stylesheets.to_a.first
- ac.page_cache_directory ||= paths.public.to_a.first
- ac.helpers_path ||= paths.app.helpers.to_a
-
- ActiveSupport.on_load(:action_controller) do
- self.config.merge!(ac)
- end
- end
-
initializer "action_controller.logger" do
ActiveSupport.on_load(:action_controller) { self.logger ||= Rails.logger }
end
@@ -56,11 +39,23 @@ module ActionController
ActiveSupport.on_load(:action_controller) { self.cache_store ||= RAILS_CACHE }
end
- initializer "action_controller.url_helpers" do |app|
+ initializer "action_controller.set_configs" do |app|
+ paths = app.config.paths
+ options = app.config.action_controller
+
+ options.assets_dir ||= paths.public.to_a.first
+ options.javascripts_dir ||= paths.public.javascripts.to_a.first
+ options.stylesheets_dir ||= paths.public.stylesheets.to_a.first
+ options.page_cache_directory ||= paths.public.to_a.first
+ options.helpers_path ||= paths.app.helpers.to_a
+
ActiveSupport.on_load(:action_controller) do
- extend ::ActionController::Railties::UrlHelpers.with(app.routes)
+ include app.routes.url_helpers
+ options.each { |k,v| send("#{k}=", v) }
end
+ end
+ initializer "action_controller.deprecated_routes" do |app|
message = "ActionController::Routing::Routes is deprecated. " \
"Instead, use Rails.application.routes"
diff --git a/actionpack/lib/action_controller/railties/url_helpers.rb b/actionpack/lib/action_controller/railties/url_helpers.rb
deleted file mode 100644
index 9df5665542..0000000000
--- a/actionpack/lib/action_controller/railties/url_helpers.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-module ActionController
- module Railties
- module UrlHelpers
- def self.with(routes)
- Module.new do
- define_method(:inherited) do |klass|
- super(klass)
- klass.send(:include, routes.url_helpers)
- end
- end
- end
- end
- end
-end
diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb
index 650eb16ac0..e306697f4b 100644
--- a/actionpack/lib/action_controller/test_case.rb
+++ b/actionpack/lib/action_controller/test_case.rb
@@ -365,7 +365,7 @@ module ActionController
def xml_http_request(request_method, action, parameters = nil, session = nil, flash = nil)
@request.env['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
@request.env['HTTP_ACCEPT'] ||= [Mime::JS, Mime::HTML, Mime::XML, 'text/xml', Mime::ALL].join(', ')
- returning __send__(request_method, action, parameters, session, flash) do
+ __send__(request_method, action, parameters, session, flash).tap do
@request.env.delete 'HTTP_X_REQUESTED_WITH'
@request.env.delete 'HTTP_ACCEPT'
end
diff --git a/actionpack/lib/action_dispatch/routing/deprecated_mapper.rb b/actionpack/lib/action_dispatch/routing/deprecated_mapper.rb
index b3146a1c60..4904f0633d 100644
--- a/actionpack/lib/action_dispatch/routing/deprecated_mapper.rb
+++ b/actionpack/lib/action_dispatch/routing/deprecated_mapper.rb
@@ -500,7 +500,7 @@ module ActionDispatch
end
def add_conditions_for(conditions, method)
- returning({:conditions => conditions.dup}) do |options|
+ {:conditions => conditions.dup}.tap do |options|
options[:conditions][:method] = method unless method == :any
end
end
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb
index a9b97a17eb..77688fe397 100644
--- a/actionpack/lib/action_dispatch/routing/route_set.rb
+++ b/actionpack/lib/action_dispatch/routing/route_set.rb
@@ -454,7 +454,7 @@ module ActionDispatch
def url_for(options)
finalize!
- options = default_url_options.merge(options || {})
+ options = (options || {}).reverse_merge!(default_url_options)
handle_positional_args(options)
diff --git a/actionpack/lib/action_dispatch/routing/url_for.rb b/actionpack/lib/action_dispatch/routing/url_for.rb
index 662eb05c26..9b42f26289 100644
--- a/actionpack/lib/action_dispatch/routing/url_for.rb
+++ b/actionpack/lib/action_dispatch/routing/url_for.rb
@@ -129,7 +129,7 @@ module ActionDispatch
when String
options
when nil, Hash
- _routes.url_for(url_options.merge((options || {}).symbolize_keys))
+ _routes.url_for((options || {}).reverse_merge!(url_options).symbolize_keys)
else
polymorphic_url(options)
end
diff --git a/actionpack/lib/action_dispatch/testing/integration.rb b/actionpack/lib/action_dispatch/testing/integration.rb
index 64eb6d8de7..8e58adaf59 100644
--- a/actionpack/lib/action_dispatch/testing/integration.rb
+++ b/actionpack/lib/action_dispatch/testing/integration.rb
@@ -319,7 +319,7 @@ module ActionDispatch
reset! unless @integration_session
# reset the html_document variable, but only for new get/post calls
@html_document = nil unless %w(cookies assigns).include?(method)
- returning @integration_session.__send__(method, *args) do
+ @integration_session.__send__(method, *args).tap do
copy_session_variables!
end
end
@@ -362,7 +362,7 @@ module ActionDispatch
def method_missing(sym, *args, &block)
reset! unless @integration_session
if @integration_session.respond_to?(sym)
- returning @integration_session.__send__(sym, *args, &block) do
+ @integration_session.__send__(sym, *args, &block).tap do
copy_session_variables!
end
else
diff --git a/actionpack/lib/action_view/helpers/capture_helper.rb b/actionpack/lib/action_view/helpers/capture_helper.rb
index f9105ca364..89e95e8694 100644
--- a/actionpack/lib/action_view/helpers/capture_helper.rb
+++ b/actionpack/lib/action_view/helpers/capture_helper.rb
@@ -165,7 +165,7 @@ module ActionView
def with_output_buffer(buf = nil) #:nodoc:
unless buf
buf = ActionView::OutputBuffer.new
- buf.force_encoding(output_buffer.encoding) if output_buffer && buf.respond_to?(:force_encoding)
+ buf.force_encoding(output_buffer.encoding) if output_buffer.respond_to?(:encoding) && buf.respond_to?(:force_encoding)
end
self.output_buffer, old_buffer = buf, output_buffer
yield
diff --git a/actionpack/lib/action_view/helpers/form_tag_helper.rb b/actionpack/lib/action_view/helpers/form_tag_helper.rb
index 4c1b751160..9dac2d4538 100644
--- a/actionpack/lib/action_view/helpers/form_tag_helper.rb
+++ b/actionpack/lib/action_view/helpers/form_tag_helper.rb
@@ -1,6 +1,5 @@
require 'cgi'
require 'action_view/helpers/tag_helper'
-require 'active_support/core_ext/object/returning'
require 'active_support/core_ext/object/blank'
module ActionView
@@ -527,7 +526,7 @@ module ActionView
private
def html_options_for_form(url_for_options, options, *parameters_for_url)
- returning options.stringify_keys do |html_options|
+ options.stringify_keys.tap do |html_options|
html_options["enctype"] = "multipart/form-data" if html_options.delete("multipart")
# The following URL is unescaped, this is just a hash of options, and it is the
# responsability of the caller to escape all the values.
diff --git a/actionpack/lib/action_view/helpers/url_helper.rb b/actionpack/lib/action_view/helpers/url_helper.rb
index b493a0cb0e..a5c6718c58 100644
--- a/actionpack/lib/action_view/helpers/url_helper.rb
+++ b/actionpack/lib/action_view/helpers/url_helper.rb
@@ -95,7 +95,7 @@ module ActionView
when String
options
when Hash
- options = { :only_path => options[:host].nil? }.update(options.symbolize_keys)
+ options = options.symbolize_keys.reverse_merge!(:only_path => options[:host].nil?)
super
when :back
controller.request.env["HTTP_REFERER"] || 'javascript:history.back()'
diff --git a/actionpack/test/template/capture_helper_test.rb b/actionpack/test/template/capture_helper_test.rb
index 9f3d68a639..f7c42c7f22 100644
--- a/actionpack/test/template/capture_helper_test.rb
+++ b/actionpack/test/template/capture_helper_test.rb
@@ -114,7 +114,7 @@ class CaptureHelperTest < ActionView::TestCase
end
def view_with_controller
- returning(TestController.new.view_context) do |view|
+ TestController.new.view_context.tap do |view|
view.output_buffer = ActionView::OutputBuffer.new
end
end
diff --git a/actionpack/test/template/javascript_helper_test.rb b/actionpack/test/template/javascript_helper_test.rb
index c5c2a6b952..1a899c6aee 100644
--- a/actionpack/test/template/javascript_helper_test.rb
+++ b/actionpack/test/template/javascript_helper_test.rb
@@ -89,6 +89,14 @@ class JavaScriptHelperTest < ActionView::TestCase
link_to_function("Greeting", "alert('Hello world!')", :href => 'http://example.com/')
end
+ def test_link_to_function_with_inner_block_does_not_raise_exception
+ html = link_to_function("Greet me!") do |page|
+ content_tag(:h1) { 'Hi' }
+ end
+
+ assert_dom_equal %(<a href='#' onclick="; return false;">Greet me!</a>), html
+ end
+
def test_javascript_tag
self.output_buffer = 'foo'
diff --git a/actionpack/test/template/url_helper_test.rb b/actionpack/test/template/url_helper_test.rb
index 048f96c9a9..d59bbec4a9 100644
--- a/actionpack/test/template/url_helper_test.rb
+++ b/actionpack/test/template/url_helper_test.rb
@@ -1,6 +1,6 @@
# encoding: utf-8
require 'abstract_unit'
-require 'active_support/ordered_options'
+require 'active_support/ordered_hash'
require 'controller/fake_controllers'
class UrlHelperTest < ActiveSupport::TestCase
@@ -31,17 +31,13 @@ class UrlHelperTest < ActiveSupport::TestCase
{}
end
- def abcd(hash = {})
- hash_for(:a => :b, :c => :d).merge(hash)
- end
-
- def hash_for(opts = {})
- {:controller => "foo", :action => "bar"}.merge(opts)
+ def hash_for(opts = [])
+ ActiveSupport::OrderedHash[*([:controller, "foo", :action, "bar"].concat(opts))]
end
alias url_hash hash_for
def test_url_for_does_not_escape_urls
- assert_equal "/?a=b&c=d", url_for(abcd)
+ assert_equal "/?a=b&c=d", url_for(hash_for([:a, :b, :c, :d]))
end
def test_url_for_with_back
@@ -128,7 +124,7 @@ class UrlHelperTest < ActiveSupport::TestCase
end
def test_link_tag_with_host_option
- hash = hash_for(:host => "www.example.com")
+ hash = hash_for([:host, "www.example.com"])
expected = %q{<a href="http://www.example.com/">Test Link</a>}
assert_dom_equal(expected, link_to('Test Link', hash))
end
@@ -294,7 +290,7 @@ class UrlHelperTest < ActiveSupport::TestCase
def test_current_page_with_params_that_match
@request = request_for_url("/?order=desc&page=1")
- assert current_page?(hash_for(:order => "desc", :page => "1"))
+ assert current_page?(hash_for([:order, "desc", :page, "1"]))
assert current_page?("http://www.example.com/?order=desc&page=1")
end
@@ -316,20 +312,20 @@ class UrlHelperTest < ActiveSupport::TestCase
@request = request_for_url("/?order=desc&page=1")
assert_equal "Showing",
- link_to_unless_current("Showing", hash_for(:order=>'desc', :page=>'1'))
+ link_to_unless_current("Showing", hash_for([:order, 'desc', :page, '1']))
assert_equal "Showing",
link_to_unless_current("Showing", "http://www.example.com/?order=desc&page=1")
@request = request_for_url("/?order=desc")
assert_equal %{<a href="/?order=asc">Showing</a>},
- link_to_unless_current("Showing", hash_for(:order => :asc))
+ link_to_unless_current("Showing", hash_for([:order, :asc]))
assert_equal %{<a href="http://www.example.com/?order=asc">Showing</a>},
link_to_unless_current("Showing", "http://www.example.com/?order=asc")
@request = request_for_url("/?order=desc")
assert_equal %{<a href="/?order=desc&amp;page=2\">Showing</a>},
- link_to_unless_current("Showing", hash_for(:order => "desc", :page => 2))
+ link_to_unless_current("Showing", hash_for([:order, "desc", :page, 2]))
assert_equal %{<a href="http://www.example.com/?order=desc&amp;page=2">Showing</a>},
link_to_unless_current("Showing", "http://www.example.com/?order=desc&page=2")