Merge pull request #48 from takahashim/file-path

add File.path
This commit is contained in:
Tomoyuki Sahara
2015-11-22 07:12:23 +09:00
2 changed files with 19 additions and 0 deletions
+10
View File
@@ -170,4 +170,14 @@ class File < IO
ext = fname.split('.').last
ext.empty? ? '' : ".#{ext}"
end
def self.path(filename)
if filename.kind_of?(String)
filename
elsif filename.respond_to?(:to_path)
filename.to_path
else
raise TypeError, "no implicit conversion of #{filename.class} into String"
end
end
end
+9
View File
@@ -106,3 +106,12 @@ assert('File.expand_path (with ENV)') do
assert_equal "#{ENV['HOME']}/user", File.expand_path("user", ENV['HOME']), "relative with base_dir"
end
assert('File.path') do
assert_equal "", File.path("")
assert_equal "a/b/c", File.path("a/b/c")
assert_equal "a/../b/./c", File.path("a/../b/./c")
assert_raise(TypeError) { File.path(nil) }
assert_raise(TypeError) { File.path(123) }
end