aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Gemfile2
-rw-r--r--actionpack/lib/action_dispatch/http/url.rb2
-rw-r--r--actionpack/lib/action_dispatch/middleware/session/cookie_store.rb2
-rw-r--r--actionpack/lib/action_view/test_case.rb3
-rw-r--r--actionpack/test/dispatch/request_test.rb9
-rw-r--r--actionpack/test/dispatch/session/cookie_store_test.rb16
-rw-r--r--activerecord/lib/active_record/railtie.rb10
-rw-r--r--activerecord/lib/active_record/railties/console_sandbox.rb (renamed from railties/lib/rails/console/sandbox.rb)0
-rw-r--r--activesupport/activesupport.gemspec2
-rw-r--r--railties/lib/rails/application.rb3
-rw-r--r--railties/lib/rails/commands/console.rb4
-rw-r--r--railties/lib/rails/railtie.rb4
-rw-r--r--railties/test/application/console_test.rb18
13 files changed, 55 insertions, 20 deletions
diff --git a/Gemfile b/Gemfile
index d781b68039..935ecff355 100644
--- a/Gemfile
+++ b/Gemfile
@@ -8,8 +8,6 @@ else
gem "arel", '~> 2.1.0'
end
-gem "sprockets", :git => "git://github.com/sstephenson/sprockets.git"
-
gem "coffee-script"
gem "sass"
gem "uglifier"
diff --git a/actionpack/lib/action_dispatch/http/url.rb b/actionpack/lib/action_dispatch/http/url.rb
index ac0fd9607d..d9c07d6ca3 100644
--- a/actionpack/lib/action_dispatch/http/url.rb
+++ b/actionpack/lib/action_dispatch/http/url.rb
@@ -165,7 +165,7 @@ module ActionDispatch
# such as 2 to catch <tt>["www"]</tt> instead of <tt>"www.rubyonrails"</tt>
# in "www.rubyonrails.co.uk".
def subdomain(tld_length = @@tld_length)
- subdomains(tld_length)
+ subdomains(tld_length).join(".")
end
end
end
diff --git a/actionpack/lib/action_dispatch/middleware/session/cookie_store.rb b/actionpack/lib/action_dispatch/middleware/session/cookie_store.rb
index 9c9ccc62f5..8ebf870b95 100644
--- a/actionpack/lib/action_dispatch/middleware/session/cookie_store.rb
+++ b/actionpack/lib/action_dispatch/middleware/session/cookie_store.rb
@@ -59,7 +59,7 @@ module ActionDispatch
end
def set_session(env, sid, session_data, options)
- persistent_session_id!(session_data, sid)
+ session_data.merge("session_id" => sid)
end
def set_cookie(env, session_id, cookie)
diff --git a/actionpack/lib/action_view/test_case.rb b/actionpack/lib/action_view/test_case.rb
index 43f9bffe18..d0317a148b 100644
--- a/actionpack/lib/action_view/test_case.rb
+++ b/actionpack/lib/action_view/test_case.rb
@@ -1,5 +1,6 @@
require 'active_support/core_ext/object/blank'
require 'active_support/core_ext/module/delegation'
+require 'active_support/core_ext/module/remove_method'
require 'action_controller'
require 'action_controller/test_case'
require 'action_view'
@@ -129,7 +130,7 @@ module ActionView
def say_no_to_protect_against_forgery!
_helpers.module_eval do
- remove_method :protect_against_forgery? if method_defined?(:protect_against_forgery?)
+ remove_possible_method :protect_against_forgery?
def protect_against_forgery?
false
end
diff --git a/actionpack/test/dispatch/request_test.rb b/actionpack/test/dispatch/request_test.rb
index fb2faf7a4e..d128006404 100644
--- a/actionpack/test/dispatch/request_test.rb
+++ b/actionpack/test/dispatch/request_test.rb
@@ -137,30 +137,39 @@ class RequestTest < ActiveSupport::TestCase
test "subdomains" do
request = stub_request 'HTTP_HOST' => "www.rubyonrails.org"
assert_equal %w( www ), request.subdomains
+ assert_equal "www", request.subdomain
request = stub_request 'HTTP_HOST' => "www.rubyonrails.co.uk"
assert_equal %w( www ), request.subdomains(2)
+ assert_equal "www", request.subdomain(2)
request = stub_request 'HTTP_HOST' => "dev.www.rubyonrails.co.uk"
assert_equal %w( dev www ), request.subdomains(2)
+ assert_equal "dev.www", request.subdomain(2)
request = stub_request 'HTTP_HOST' => "dev.www.rubyonrails.co.uk", :tld_length => 2
assert_equal %w( dev www ), request.subdomains
+ assert_equal "dev.www", request.subdomain
request = stub_request 'HTTP_HOST' => "foobar.foobar.com"
assert_equal %w( foobar ), request.subdomains
+ assert_equal "foobar", request.subdomain
request = stub_request 'HTTP_HOST' => "192.168.1.200"
assert_equal [], request.subdomains
+ assert_equal "", request.subdomain
request = stub_request 'HTTP_HOST' => "foo.192.168.1.200"
assert_equal [], request.subdomains
+ assert_equal "", request.subdomain
request = stub_request 'HTTP_HOST' => "192.168.1.200.com"
assert_equal %w( 192 168 1 ), request.subdomains
+ assert_equal "192.168.1", request.subdomain
request = stub_request 'HTTP_HOST' => nil
assert_equal [], request.subdomains
+ assert_equal "", request.subdomain
end
test "standard_port" do
diff --git a/actionpack/test/dispatch/session/cookie_store_test.rb b/actionpack/test/dispatch/session/cookie_store_test.rb
index 27f55fd7ab..b0efbcef4a 100644
--- a/actionpack/test/dispatch/session/cookie_store_test.rb
+++ b/actionpack/test/dispatch/session/cookie_store_test.rb
@@ -50,6 +50,11 @@ class CookieStoreTest < ActionDispatch::IntegrationTest
get_session_id
end
+ def renew_session_id
+ request.session_options[:renew] = true
+ head :ok
+ end
+
def rescue_action(e) raise end
end
@@ -102,6 +107,17 @@ class CookieStoreTest < ActionDispatch::IntegrationTest
end
end
+ def test_properly_renew_cookies
+ with_test_route_set do
+ get '/set_session_value'
+ get '/persistent_session_id'
+ session_id = response.body
+ get '/renew_session_id'
+ get '/persistent_session_id'
+ assert_not_equal response.body, session_id
+ end
+ end
+
def test_does_set_secure_cookies_over_https
with_test_route_set(:secure => true) do
get '/set_session_value', nil, 'HTTPS' => 'on'
diff --git a/activerecord/lib/active_record/railtie.rb b/activerecord/lib/active_record/railtie.rb
index d38588519b..bae2ded244 100644
--- a/activerecord/lib/active_record/railtie.rb
+++ b/activerecord/lib/active_record/railtie.rb
@@ -26,10 +26,12 @@ module ActiveRecord
load "active_record/railties/databases.rake"
end
- # When loading console, force ActiveRecord to be loaded to avoid cross
- # references when loading a constant for the first time.
- console do
- ActiveRecord::Base
+ # When loading console, force ActiveRecord::Base to be loaded
+ # to avoid cross references when loading a constant for the
+ # first time. Also, make it output to STDERR.
+ console do |sandbox|
+ require "active_record/railties/console_sandbox" if sandbox
+ ActiveRecord::Base.logger = Logger.new(STDERR)
end
initializer "active_record.initialize_timezone" do
diff --git a/railties/lib/rails/console/sandbox.rb b/activerecord/lib/active_record/railties/console_sandbox.rb
index 65a3d68619..65a3d68619 100644
--- a/railties/lib/rails/console/sandbox.rb
+++ b/activerecord/lib/active_record/railties/console_sandbox.rb
diff --git a/activesupport/activesupport.gemspec b/activesupport/activesupport.gemspec
index 37a74a9e62..c5b5b57dec 100644
--- a/activesupport/activesupport.gemspec
+++ b/activesupport/activesupport.gemspec
@@ -17,5 +17,5 @@ Gem::Specification.new do |s|
s.files = Dir['CHANGELOG', 'README.rdoc', 'lib/**/*']
s.require_path = 'lib'
- s.add_dependency('multi_json', '~> 1.0.0')
+ s.add_dependency('multi_json', '~> 1.0')
end
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb
index 4e82761e5d..dd01bbab1d 100644
--- a/railties/lib/rails/application.rb
+++ b/railties/lib/rails/application.rb
@@ -112,7 +112,7 @@ module Rails
def load_console(sandbox=false)
initialize_console(sandbox)
- railties.all { |r| r.load_console }
+ railties.all { |r| r.load_console(sandbox) }
super()
self
end
@@ -196,7 +196,6 @@ module Rails
def initialize_console(sandbox=false)
require "rails/console/app"
- require "rails/console/sandbox" if sandbox
require "rails/console/helpers"
end
end
diff --git a/railties/lib/rails/commands/console.rb b/railties/lib/rails/commands/console.rb
index dfd3c654ff..66dbb5d11e 100644
--- a/railties/lib/rails/commands/console.rb
+++ b/railties/lib/rails/commands/console.rb
@@ -34,10 +34,6 @@ module Rails
exit
end
end
-
- if defined?(ActiveRecord)
- ActiveRecord::Base.logger = Logger.new(STDERR)
- end
if options[:sandbox]
puts "Loading #{Rails.env} environment in sandbox (Rails #{Rails.version})"
diff --git a/railties/lib/rails/railtie.rb b/railties/lib/rails/railtie.rb
index 7fca565124..b183eb8ddd 100644
--- a/railties/lib/rails/railtie.rb
+++ b/railties/lib/rails/railtie.rb
@@ -173,8 +173,8 @@ module Rails
def eager_load!
end
- def load_console
- self.class.console.each(&:call)
+ def load_console(sandbox=false)
+ self.class.console.each { |block| block.call(sandbox) }
end
def load_tasks
diff --git a/railties/test/application/console_test.rb b/railties/test/application/console_test.rb
index 793e73556c..5ae6323345 100644
--- a/railties/test/application/console_test.rb
+++ b/railties/test/application/console_test.rb
@@ -8,9 +8,9 @@ class ConsoleTest < Test::Unit::TestCase
boot_rails
end
- def load_environment
+ def load_environment(sandbox = false)
require "#{rails_root}/config/environment"
- Rails.application.load_console
+ Rails.application.load_console(sandbox)
end
def test_app_method_should_return_integration_session
@@ -73,6 +73,20 @@ class ConsoleTest < Test::Unit::TestCase
helper.truncate('Once upon a time in a world far far away')
end
+ def test_with_sandbox
+ require 'rails/all'
+ value = false
+
+ Class.new(Rails::Railtie) do
+ console do |sandbox|
+ value = sandbox
+ end
+ end
+
+ load_environment(true)
+ assert value
+ end
+
def test_active_record_does_not_panic_when_referencing_an_observed_constant
add_to_config "config.active_record.observers = :user_observer"