diff --git a/railties/CHANGELOG b/railties/CHANGELOG index 250822db7e7f3..ad8ba43c174bb 100644 --- a/railties/CHANGELOG +++ b/railties/CHANGELOG @@ -1,5 +1,7 @@ *2.3.0 [Edge]* +* Enhanced Rails.root to take parameters that'll be join with the root, like Rails.root('app', 'controllers') => File.join(Rails.root, 'app', 'controllers') #1482 [Damian Janowski] + * Added view path support for engines [DHH] * Added that config/routes.rb files in engine plugins are automatically loaded (and reloaded when they change in dev mode) [DHH] diff --git a/railties/lib/initializer.rb b/railties/lib/initializer.rb index 0c06d1bf21b8b..5baaf81403e4d 100644 --- a/railties/lib/initializer.rb +++ b/railties/lib/initializer.rb @@ -48,12 +48,8 @@ def backtrace_cleaner end end - def root - if defined?(RAILS_ROOT) - RAILS_ROOT - else - nil - end + def root(*args) + File.join(RAILS_ROOT, *args.compact) if defined?(RAILS_ROOT) end def env diff --git a/railties/test/initializer_test.rb b/railties/test/initializer_test.rb index 2104412c5442e..33c81bc5ad887 100644 --- a/railties/test/initializer_test.rb +++ b/railties/test/initializer_test.rb @@ -311,3 +311,13 @@ def test_setting_another_default_locale end end end + +class RailsRootTest < Test::Unit::TestCase + def test_rails_dot_root_equals_rails_root + assert_equal RAILS_ROOT, Rails.root + end + + def test_rails_dot_root_accepts_arguments_for_file_dot_join + assert_equal File.join(RAILS_ROOT, 'app', 'controllers'), Rails.root('app', 'controllers') + end +end \ No newline at end of file