Permalink
Browse files

Remove deprecated access to connection specification using a string a…

…cessor.

Now all strings will be handled as a URL.
  • Loading branch information...
rafaelfranca committed Jan 4, 2015
1 parent a939506 commit efdc20f36ccc37afbb2705eb9acca76dd8aabd4f
@@ -1,3 +1,9 @@
* Remove deprecated access to connection specification using a string acessor.
Now all strings will be handled as a URL.
*Rafael Mendonça França*
* Change the default `null` value for `timestamps` to `false`.
*Rafael Mendonça França*
@@ -1,5 +1,4 @@
require 'uri'
require 'active_support/core_ext/string/filters'
module ActiveRecord
module ConnectionAdapters
@@ -210,30 +209,12 @@ def resolve_connection(spec)
when Symbol
resolve_symbol_connection spec
when String
resolve_string_connection spec
resolve_url_connection spec
when Hash
resolve_hash_connection spec
end
end
def resolve_string_connection(spec)
# Rails has historically accepted a string to mean either
# an environment key or a URL spec, so we have deprecated
# this ambiguous behaviour and in the future this function
# can be removed in favor of resolve_url_connection.
if configurations.key?(spec) || spec !~ /:/
ActiveSupport::Deprecation.warn(<<-MSG.squish)
Passing a string to ActiveRecord::Base.establish_connection for a
configuration lookup is deprecated, please pass a symbol
(#{spec.to_sym.inspect}) instead.
MSG
resolve_symbol_connection(spec)
else
resolve_url_connection(spec)
end
end
# Takes the environment such as +:production+ or +:development+.
# This requires that the @configurations was initialized with a key that
# matches.
@@ -51,34 +51,6 @@ def test_resolver_with_database_uri_and_current_env_symbol_key_and_rack_env
assert_equal expected, actual
end
def test_resolver_with_database_uri_and_and_current_env_string_key
ENV['DATABASE_URL'] = "postgres://localhost/foo"
config = { "default_env" => { "adapter" => "not_postgres", "database" => "not_foo" } }
actual = assert_deprecated { resolve_spec("default_env", config) }
expected = { "adapter"=>"postgresql", "database"=>"foo", "host"=>"localhost" }
assert_equal expected, actual
end
def test_resolver_with_database_uri_and_and_current_env_string_key_and_rails_env
ENV['DATABASE_URL'] = "postgres://localhost/foo"
ENV['RAILS_ENV'] = "foo"
config = { "not_production" => {"adapter" => "not_postgres", "database" => "not_foo" } }
actual = assert_deprecated { resolve_spec("foo", config) }
expected = { "adapter" => "postgresql", "database" => "foo", "host" => "localhost" }
assert_equal expected, actual
end
def test_resolver_with_database_uri_and_and_current_env_string_key_and_rack_env
ENV['DATABASE_URL'] = "postgres://localhost/foo"
ENV['RACK_ENV'] = "foo"
config = { "not_production" => {"adapter" => "not_postgres", "database" => "not_foo" } }
actual = assert_deprecated { resolve_spec("foo", config) }
expected = { "adapter" => "postgresql", "database" => "foo", "host" => "localhost" }
assert_equal expected, actual
end
def test_resolver_with_database_uri_and_known_key
ENV['DATABASE_URL'] = "postgres://localhost/foo"
config = { "production" => { "adapter" => "not_postgres", "database" => "not_foo", "host" => "localhost" } }
@@ -95,16 +67,6 @@ def test_resolver_with_database_uri_and_unknown_symbol_key
end
end
def test_resolver_with_database_uri_and_unknown_string_key
ENV['DATABASE_URL'] = "postgres://localhost/foo"
config = { "not_production" => { "adapter" => "not_postgres", "database" => "not_foo" } }
assert_deprecated do
assert_raises AdapterNotSpecified do
resolve_spec("production", config)
end
end
end
def test_resolver_with_database_uri_and_supplied_url
ENV['DATABASE_URL'] = "not-postgres://not-localhost/not_foo"
config = { "production" => { "adapter" => "also_not_postgres", "database" => "also_not_foo" } }

0 comments on commit efdc20f

Please sign in to comment.