Permalink
Browse files

Merge commit 'rails/master'

Conflicts:
	activerecord/test/cases/adapter_test.rb
	activerecord/test/cases/method_scoping_test.rb
  • Loading branch information...
2 parents ae9e1e9 + ed8a0a1 commit 952014315926d370f2a0b681cb765948bf2e6883 @miloops miloops committed Aug 8, 2009
Showing with 1,608 additions and 833 deletions.
  1. +24 −3 actionmailer/lib/action_mailer/base.rb
  2. +22 −0 actionmailer/test/delivery_method_test.rb
  3. +15 −2 actionmailer/test/mail_service_test.rb
  4. +2 −2 actionpack/examples/very_simple.rb
  5. +10 −10 actionpack/lib/abstract_controller.rb
  6. +1 −1 actionpack/lib/abstract_controller/helpers.rb
  7. +13 −11 actionpack/lib/abstract_controller/layouts.rb
  8. +3 −3 actionpack/lib/abstract_controller/{renderer.rb → rendering_controller.rb}
  9. +3 −3 actionpack/lib/action_controller.rb
  10. +3 −3 actionpack/lib/action_controller/base.rb
  11. +2 −2 actionpack/lib/action_controller/caching/fragments.rb
  12. +1 −1 actionpack/lib/action_controller/legacy/layout.rb
  13. +4 −3 actionpack/lib/action_controller/metal/conditional_get.rb
  14. +1 −1 actionpack/lib/action_controller/metal/layouts.rb
  15. +38 −77 actionpack/lib/action_controller/metal/mime_responds.rb
  16. +5 −5 actionpack/lib/action_controller/metal/render_options.rb
  17. +2 −5 actionpack/lib/action_controller/metal/{renderer.rb → rendering_controller.rb}
  18. +181 −0 actionpack/lib/action_controller/metal/responder.rb
  19. +1 −1 actionpack/lib/action_controller/metal/streaming.rb
  20. +2 −2 actionpack/lib/action_controller/metal/verification.rb
  21. +17 −11 actionpack/lib/action_controller/routing/generation/polymorphic_routes.rb
  22. +1 −1 actionpack/lib/action_view/base.rb
  23. +1 −3 actionpack/lib/action_view/helpers/active_model_helper.rb
  24. +1 −1 actionpack/lib/action_view/helpers/form_tag_helper.rb
  25. +1 −1 actionpack/lib/action_view/helpers/number_helper.rb
  26. +5 −5 actionpack/lib/action_view/paths.rb
  27. +82 −60 actionpack/lib/action_view/render/partials.rb
  28. +3 −4 actionpack/lib/action_view/render/rendering.rb
  29. +1 −1 actionpack/lib/action_view/template/resolver.rb
  30. +5 −5 actionpack/test/abstract_controller/abstract_controller_test.rb
  31. +2 −2 actionpack/test/abstract_controller/helper_test.rb
  32. +1 −1 actionpack/test/abstract_controller/layouts_test.rb
  33. +54 −1 actionpack/test/activerecord/polymorphic_routes_test.rb
  34. +15 −0 actionpack/test/controller/caching_test.rb
  35. +158 −40 actionpack/test/controller/mime_responds_test.rb
  36. +17 −0 actionpack/test/controller/render_test.rb
  37. +2 −2 actionpack/test/controller/render_xml_test.rb
  38. +1 −1 actionpack/test/controller/routing_test.rb
  39. +1 −0 actionpack/test/fixtures/respond_with/edit.html.erb
  40. +1 −0 actionpack/test/fixtures/respond_with/new.html.erb
  41. +0 −1 actionpack/test/fixtures/respond_with/using_resource.html.erb
  42. +1 −0 actionpack/test/fixtures/respond_with/using_resource.js.rjs
  43. +22 −0 actionpack/test/lib/controller/fake_models.rb
  44. +1 −0 actionpack/test/template/number_helper_test.rb
  45. +1 −1 activerecord/lib/active_record/attribute_methods/read.rb
  46. +7 −0 activerecord/lib/active_record/base.rb
  47. +10 −0 activerecord/lib/active_record/migration.rb
  48. +7 −1 activerecord/test/cases/adapter_test.rb
  49. +4 −2 activerecord/test/cases/associations/belongs_to_associations_test.rb
  50. +6 −1 activerecord/test/cases/associations/eager_test.rb
  51. +4 −2 activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb
  52. +42 −38 activerecord/test/cases/associations/has_many_associations_test.rb
  53. +7 −3 activerecord/test/cases/associations/join_model_test.rb
  54. +12 −2 activerecord/test/cases/attribute_methods_test.rb
  55. +36 −10 activerecord/test/cases/autosave_association_test.rb
  56. +17 −0 activerecord/test/cases/base_test.rb
  57. +6 −1 activerecord/test/cases/calculations_test.rb
  58. +8 −1 activerecord/test/cases/database_statements_test.rb
  59. +12 −47 activerecord/test/cases/finder_test.rb
  60. +2 −1 activerecord/test/cases/inheritance_test.rb
  61. +12 −2 activerecord/test/cases/invalid_date_test.rb
  62. +1 −0 activerecord/test/cases/method_scoping_test.rb
  63. +62 −21 activerecord/test/cases/migration_test.rb
  64. +2 −1 activerecord/test/cases/named_scope_test.rb
  65. +37 −0 activerecord/test/cases/nested_attributes_test.rb
  66. +6 −1 activerecord/test/cases/query_cache_test.rb
  67. +11 −1 activerecord/test/cases/schema_dumper_test.rb
  68. +23 −0 activerecord/test/cases/validations/association_validation_test.rb
  69. +48 −7 activerecord/test/connections/native_oracle/connection.rb
  70. +6 −2 activerecord/test/models/company.rb
  71. +9 −1 activerecord/test/models/subject.rb
  72. +27 −0 activerecord/test/schema/oracle_specific_schema.rb
  73. +27 −4 activerecord/test/schema/schema.rb
  74. +1 −1 activeresource/lib/active_resource/connection.rb
  75. +10 −7 activesupport/lib/active_support/json/backends/yaml.rb
  76. +7 −1 activesupport/test/json/decoding_test.rb
  77. +44 −22 railties/lib/generators.rb
  78. +7 −7 railties/lib/generators/{action_orm.rb → active_model.rb}
  79. +2 −2 railties/lib/generators/active_record.rb
  80. +5 −5 railties/lib/generators/named_base.rb
  81. +18 −3 railties/lib/generators/rails/app/app_generator.rb
  82. +13 −2 railties/lib/tasks/databases.rake
  83. +4 −3 railties/lib/tasks/routes.rake
  84. +0 −27 railties/lib/vendor/thor-0.11.3/lib/thor/error.rb
  85. +0 −4 railties/lib/vendor/thor-0.11.3/lib/thor/tasks.rb
  86. +0 −35 railties/lib/vendor/thor-0.11.3/lib/thor/tasks/install.rb
  87. +0 −31 railties/lib/vendor/thor-0.11.3/lib/thor/tasks/package.rb
  88. +0 −70 railties/lib/vendor/thor-0.11.3/lib/thor/tasks/spec.rb
  89. +4 −2 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/CHANGELOG.rdoc
  90. 0 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/LICENSE
  91. +31 −44 railties/lib/vendor/{thor-0.11.3/README.markdown → thor-0.11.5/README.rdoc}
  92. 0 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/bin/rake2thor
  93. 0 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/bin/thor
  94. +21 −18 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor.rb
  95. +16 −14 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/actions.rb
  96. 0 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/actions/create_file.rb
  97. +1 −1 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/actions/directory.rb
  98. 0 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/actions/empty_directory.rb
  99. 0 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/actions/file_manipulation.rb
  100. +1 −1 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/actions/inject_into_file.rb
  101. +18 −24 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/base.rb
  102. +2 −2 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/core_ext/hash_with_indifferent_access.rb
  103. +1 −3 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/core_ext/ordered_hash.rb
  104. +27 −0 railties/lib/vendor/thor-0.11.5/lib/thor/error.rb
  105. +3 −3 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/group.rb
  106. +24 −18 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/invocation.rb
  107. 0 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/parser.rb
  108. +1 −1 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/parser/argument.rb
  109. +1 −1 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/parser/arguments.rb
  110. +1 −1 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/parser/option.rb
  111. +1 −1 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/parser/options.rb
  112. +67 −0 railties/lib/vendor/thor-0.11.5/lib/thor/rake_compat.rb
  113. +13 −9 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/runner.rb
  114. +1 −1 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/shell.rb
  115. +21 −17 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/shell/basic.rb
  116. +9 −7 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/shell/color.rb
  117. +16 −8 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/task.rb
  118. +31 −10 railties/lib/vendor/{thor-0.11.3 → thor-0.11.5}/lib/thor/util.rb
  119. +1 −0 railties/test/fixtures/lib/template.rb
  120. 0 railties/test/fixtures/vendor/gems/{ → gems}/mspec/lib/generators/mspec_generator.rb
  121. 0 railties/test/fixtures/vendor/gems/{ → gems}/wrong/lib/generators/wrong_generator.rb
  122. +5 −0 railties/test/generators/app_generator_test.rb
  123. +1 −1 railties/test/generators/generators_test_helper.rb
  124. +1 −1 railties/test/generators/scaffold_controller_generator_test.rb
@@ -1,3 +1,5 @@
+require 'tmpdir'
+
require "active_support/core_ext/class"
# Use the old layouts until actionmailer gets refactored
require "action_controller/legacy/layout"
@@ -224,9 +226,13 @@ module ActionMailer #:nodoc:
# * <tt>:location</tt> - The location of the sendmail executable. Defaults to <tt>/usr/sbin/sendmail</tt>.
# * <tt>:arguments</tt> - The command line arguments. Defaults to <tt>-i -t</tt>.
#
+ # * <tt>file_settings</tt> - Allows you to override options for the <tt>:file</tt> delivery method.
+ # * <tt>:location</tt> - The directory into which emails will be written. Defaults to the application <tt>tmp/mails</tt>.
+ #
# * <tt>raise_delivery_errors</tt> - Whether or not errors should be raised if the email fails to be delivered.
#
- # * <tt>delivery_method</tt> - Defines a delivery method. Possible values are <tt>:smtp</tt> (default), <tt>:sendmail</tt>, and <tt>:test</tt>.
+ # * <tt>delivery_method</tt> - Defines a delivery method. Possible values are <tt>:smtp</tt> (default), <tt>:sendmail</tt>, <tt>:test</tt>,
+ # and <tt>:file</tt>.
#
# * <tt>perform_deliveries</tt> - Determines whether <tt>deliver_*</tt> methods are actually carried out. By default they are,
# but this can be turned off to help functional testing.
@@ -279,6 +285,12 @@ class Base
}
cattr_accessor :sendmail_settings
+ @@file_settings = {
+ :location => defined?(Rails) ? "#{Rails.root}/tmp/mails" : "#{Dir.tmpdir}/mails"
+ }
+
+ cattr_accessor :file_settings
+
@@raise_delivery_errors = true
cattr_accessor :raise_delivery_errors
@@ -499,7 +511,7 @@ def create!(method_name, *parameters) #:nodoc:
# ====
# TODO: Revisit this
# template_exists = @parts.empty?
- # template_exists ||= template_root.find_by_parts("#{mailer_name}/#{@template}")
+ # template_exists ||= template_root.find("#{mailer_name}/#{@template}")
# @body = render_message(@template, @body) if template_exists
# Finally, if there are other message parts and a textual body exists,
@@ -556,6 +568,7 @@ def initialize_defaults(method_name)
@headers ||= {}
@body ||= {}
@mime_version = @@default_mime_version.dup if @@default_mime_version
+ @sent_on ||= Time.now
end
def render_template(template, body)
@@ -585,7 +598,7 @@ def render(opts)
if file
prefix = mailer_name unless file =~ /\//
- template = view_paths.find_by_parts(file, {:formats => formats}, prefix)
+ template = view_paths.find(file, {:formats => formats}, prefix)
end
layout = _pick_layout(layout,
@@ -723,6 +736,14 @@ def perform_delivery_sendmail(mail)
def perform_delivery_test(mail)
deliveries << mail
end
+
+ def perform_delivery_file(mail)
+ FileUtils.mkdir_p file_settings[:location]
+
+ (mail.to + mail.cc + mail.bcc).uniq.each do |to|
+ File.open(File.join(file_settings[:location], to), 'a') { |f| f.write(mail) }
+ end
+ end
end
Base.class_eval do
@@ -7,6 +7,10 @@ class NonDefaultDeliveryMethodMailer < ActionMailer::Base
self.delivery_method = :sendmail
end
+class FileDeliveryMethodMailer < ActionMailer::Base
+ self.delivery_method = :file
+end
+
class ActionMailerBase_delivery_method_Test < Test::Unit::TestCase
def setup
set_delivery_method :smtp
@@ -49,3 +53,21 @@ def test_should_be_the_set_delivery_method
end
end
+class FileDeliveryMethodMailer_delivery_method_Test < Test::Unit::TestCase
+ def setup
+ set_delivery_method :smtp
+ end
+
+ def teardown
+ restore_delivery_method
+ end
+
+ def test_should_be_the_set_delivery_method
+ assert_equal :file, FileDeliveryMethodMailer.delivery_method
+ end
+
+ def test_should_default_location_to_the_tmpdir
+ assert_equal "#{Dir.tmpdir}/mails", ActionMailer::Base.file_settings[:location]
+ end
+end
+
@@ -18,7 +18,6 @@ def signed_up(recipient)
@recipients = recipient
@subject = "[Signed up] Welcome #{recipient}"
@from = "system@loudthinking.com"
- @sent_on = Time.local(2004, 12, 12)
@body["recipient"] = recipient
end
@@ -357,12 +356,14 @@ def test_attachment_with_custom_header
end
def test_signed_up
+ Time.stubs(:now => Time.now)
+
expected = new_mail
expected.to = @recipient
expected.subject = "[Signed up] Welcome #{@recipient}"
expected.body = "Hello there, \n\nMr. #{@recipient}"
expected.from = "system@loudthinking.com"
- expected.date = Time.local(2004, 12, 12)
+ expected.date = Time.now
created = nil
assert_nothing_raised { created = TestMailer.create_signed_up(@recipient) }
@@ -888,6 +889,18 @@ def test_headers_removed_on_smtp_delivery
assert_no_match %r{^Bcc: root@loudthinking.com}, MockSMTP.deliveries[0][0]
end
+ def test_file_delivery_should_create_a_file
+ ActionMailer::Base.delivery_method = :file
+ tmp_location = ActionMailer::Base.file_settings[:location]
+
+ TestMailer.deliver_cc_bcc(@recipient)
+ assert File.exists? tmp_location
+ assert File.directory? tmp_location
+ assert File.exists? File.join(tmp_location, @recipient)
+ assert File.exists? File.join(tmp_location, 'nobody@loudthinking.com')
+ assert File.exists? File.join(tmp_location, 'root@loudthinking.com')
+ end
+
def test_recursive_multipart_processing
fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email7")
mail = TMail::Mail.parse(fixture)
@@ -6,7 +6,7 @@
class Kaigi < ActionController::Metal
include AbstractController::Callbacks
include ActionController::RackConvenience
- include ActionController::Renderer
+ include ActionController::RenderingController
include ActionController::Layouts
include ActionView::Context
@@ -47,4 +47,4 @@ def set_name
map("/kaigi/alt") { run Kaigi.action(:alt) }
end.to_app
-Rack::Handler::Mongrel.run app, :Port => 3000
+Rack::Handler::Mongrel.run app, :Port => 3000
@@ -2,15 +2,15 @@
require "active_support/core_ext/module/delegation"
module AbstractController
- autoload :Base, "abstract_controller/base"
- autoload :Benchmarker, "abstract_controller/benchmarker"
- autoload :Callbacks, "abstract_controller/callbacks"
- autoload :Helpers, "abstract_controller/helpers"
- autoload :Layouts, "abstract_controller/layouts"
- autoload :Logger, "abstract_controller/logger"
- autoload :Renderer, "abstract_controller/renderer"
+ autoload :Base, "abstract_controller/base"
+ autoload :Benchmarker, "abstract_controller/benchmarker"
+ autoload :Callbacks, "abstract_controller/callbacks"
+ autoload :Helpers, "abstract_controller/helpers"
+ autoload :Layouts, "abstract_controller/layouts"
+ autoload :Logger, "abstract_controller/logger"
+ autoload :RenderingController, "abstract_controller/rendering_controller"
# === Exceptions
- autoload :ActionNotFound, "abstract_controller/exceptions"
- autoload :DoubleRenderError, "abstract_controller/exceptions"
- autoload :Error, "abstract_controller/exceptions"
+ autoload :ActionNotFound, "abstract_controller/exceptions"
+ autoload :DoubleRenderError, "abstract_controller/exceptions"
+ autoload :Error, "abstract_controller/exceptions"
end
@@ -2,7 +2,7 @@ module AbstractController
module Helpers
extend ActiveSupport::Concern
- include Renderer
+ include RenderingController
included do
extlib_inheritable_accessor(:_helpers) { Module.new }
@@ -2,7 +2,7 @@ module AbstractController
module Layouts
extend ActiveSupport::Concern
- include Renderer
+ include RenderingController
included do
extlib_inheritable_accessor(:_layout_conditions) { Hash.new }
@@ -76,7 +76,7 @@ def _layout(details)
when nil
self.class_eval <<-ruby_eval, __FILE__, __LINE__ + 1
def _layout(details)
- if view_paths.find_by_parts?("#{_implied_layout_name}", details, "layouts")
+ if view_paths.exists?("#{_implied_layout_name}", details, "layouts")
"#{_implied_layout_name}"
else
super
@@ -89,16 +89,18 @@ def _layout(details)
end
def render_to_body(options = {})
+ # In the case of a partial with a layout, handle the layout
+ # here, and make sure the view does not try to handle it
+ layout = options.delete(:layout) if options.key?(:partial)
+
response = super
- if options.key?(:partial)
- # This is a little bit messy. We need to explicitly handle partial
- # layouts here since the core lookup logic is in the view, but
- # we need to determine the layout based on the controller
- if options.key?(:layout)
- layout = _layout_for_option(options[:layout], options[:_template].details)
- response = layout.render(view_context, options[:locals]) { response }
- end
+ # This is a little bit messy. We need to explicitly handle partial
+ # layouts here since the core lookup logic is in the view, but
+ # we need to determine the layout based on the controller
+ if layout
+ layout = _layout_for_option(layout, options[:_template].details)
+ response = layout.render(view_context, options[:locals] || {}) { response }
end
response
@@ -131,7 +133,7 @@ def _layout_for_name(name, details = {:formats => formats})
def _find_layout(name, details)
# TODO: Make prefix actually part of details in ViewPath#find_by_parts
prefix = details.key?(:prefix) ? details.delete(:prefix) : "layouts"
- view_paths.find_by_parts(name, details, prefix)
+ view_paths.find(name, details, prefix)
end
# Returns the default layout for this controller and a given set of details.
@@ -1,7 +1,7 @@
require "abstract_controller/logger"
module AbstractController
- module Renderer
+ module RenderingController
extend ActiveSupport::Concern
include AbstractController::Logger
@@ -67,7 +67,7 @@ def render_to_body(options = {})
#
# :api: plugin
def render_to_string(options = {})
- AbstractController::Renderer.body_to_s(render_to_body(options))
+ AbstractController::RenderingController.body_to_s(render_to_body(options))
end
# Renders the template from an object.
@@ -111,7 +111,7 @@ def self.body_to_s(body)
def _determine_template(options)
name = (options[:_template_name] || action_name).to_s
- options[:_template] ||= view_paths.find_by_parts(
+ options[:_template] ||= view_paths.find(
name, { :formats => formats }, options[:_prefix], options[:_partial]
)
end
@@ -7,10 +7,10 @@ module ActionController
autoload :RackConvenience, "action_controller/metal/rack_convenience"
autoload :Rails2Compatibility, "action_controller/metal/compatibility"
autoload :Redirector, "action_controller/metal/redirector"
- autoload :Renderer, "action_controller/metal/renderer"
+ autoload :RenderingController, "action_controller/metal/rendering_controller"
autoload :RenderOptions, "action_controller/metal/render_options"
- autoload :Renderers, "action_controller/metal/render_options"
autoload :Rescue, "action_controller/metal/rescuable"
+ autoload :Responder, "action_controller/metal/responder"
autoload :Testing, "action_controller/metal/testing"
autoload :UrlFor, "action_controller/metal/url_for"
autoload :Session, "action_controller/metal/session"
@@ -69,4 +69,4 @@ module ActionController
require 'active_support/core_ext/module/attr_internal'
require 'active_support/core_ext/module/delegation'
require 'active_support/core_ext/name_error'
-require 'active_support/inflector'
+require 'active_support/inflector'
@@ -10,8 +10,8 @@ class Base < Metal
include ActionController::HideActions
include ActionController::UrlFor
include ActionController::Redirector
- include ActionController::Renderer
- include ActionController::Renderers::All
+ include ActionController::RenderingController
+ include ActionController::RenderOptions::All
include ActionController::Layouts
include ActionController::ConditionalGet
include ActionController::RackConvenience
@@ -51,7 +51,7 @@ def default_render
def method_for_action(action_name)
super || begin
- if view_paths.find_by_parts?(action_name.to_s, {:formats => formats, :locales => [I18n.locale]}, controller_path)
+ if view_paths.exists?(action_name.to_s, {:formats => formats, :locales => [I18n.locale]}, controller_path)
"default_render"
end
end
@@ -36,8 +36,8 @@ def fragment_cache_key(key)
def fragment_for(buffer, name = {}, options = nil, &block) #:nodoc:
if perform_caching
- if cache = read_fragment(name, options)
- buffer.concat(cache)
+ if fragment_exist?(name,options)
+ buffer.concat(read_fragment(name, options))
else
pos = buffer.length
block.call
@@ -191,7 +191,7 @@ def default_layout(*args)
def memoized_find_layout(layout, formats) #:nodoc:
return layout if layout.nil? || layout.respond_to?(:render)
prefix = layout.to_s =~ /layouts\// ? nil : "layouts"
- view_paths.find_by_parts(layout.to_s, {:formats => formats}, prefix)
+ view_paths.find(layout.to_s, {:formats => formats}, prefix)
end
def find_layout(*args)
@@ -55,14 +55,15 @@ def head(*args)
elsif args.empty?
raise ArgumentError, "too few arguments to head"
end
- options = args.extract_options!
- status = args.shift || options.delete(:status) || :ok
+ options = args.extract_options!
+ status = args.shift || options.delete(:status) || :ok
+ location = options.delete(:location)
options.each do |key, value|
headers[key.to_s.dasherize.split(/-/).map { |v| v.capitalize }.join("-")] = value.to_s
end
- render :nothing => true, :status => status
+ render :nothing => true, :status => status, :location => location
end
# Sets the etag and/or last_modified on the response and checks it against
@@ -158,7 +158,7 @@ module ActionController
module Layouts
extend ActiveSupport::Concern
- include ActionController::Renderer
+ include ActionController::RenderingController
include AbstractController::Layouts
module ClassMethods
Oops, something went wrong.

0 comments on commit 9520143

Please sign in to comment.