Skip to content
Browse files

Make Rails.public_path return a Pathname

  • Loading branch information...
1 parent 0a50792 commit 26fe77b27dac099241f73e35d9dda896ca08dc1b @sikachu sikachu committed
Showing with 12 additions and 2 deletions.
  1. +2 −0 railties/CHANGELOG.md
  2. +1 −1 railties/lib/rails.rb
  3. +9 −1 railties/test/application/configuration_test.rb
View
2 railties/CHANGELOG.md
@@ -1,5 +1,7 @@
## Rails 4.0.0 (unreleased) ##
+* `Rails.public_path` now returns a Pathname object. *Prem Sichanugrist*
+
* Remove highly uncommon `config.assets.manifest` option for moving the manifest path.
This option is now unsupported in sprockets-rails.
View
2 railties/lib/rails.rb
@@ -127,7 +127,7 @@ def version
end
def public_path
- application && application.paths["public"].first
+ application && Pathname.new(application.paths["public"].first)
end
end
end
View
10 railties/test/application/configuration_test.rb
@@ -139,6 +139,14 @@ def teardown
assert_instance_of Pathname, Rails.root
end
+ test "Rails.public_path should be a Pathname" do
+ add_to_config <<-RUBY
+ config.paths["public"] = "somewhere"
+ RUBY
+ require "#{app_path}/config/environment"
+ assert_instance_of Pathname, Rails.public_path
+ end
+
test "initialize an eager loaded, cache classes app" do
add_to_config <<-RUBY
config.eager_load = true
@@ -227,7 +235,7 @@ def assert_utf8
RUBY
require "#{app_path}/config/application"
- assert_equal File.join(app_path, "somewhere"), Rails.public_path
+ assert_equal Pathname.new(app_path).join("somewhere"), Rails.public_path
end
test "config.secret_token is sent in env" do

0 comments on commit 26fe77b

Please sign in to comment.
Something went wrong with that request. Please try again.