mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/pathname.rb (Kernel#Pathname): new method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
eeda97f8e3
commit
7d274ff6fb
3 changed files with 54 additions and 6 deletions
|
@ -5,8 +5,16 @@ require 'pathname'
|
|||
|
||||
require 'fileutils'
|
||||
require 'tmpdir'
|
||||
require 'enumerator'
|
||||
|
||||
class TestPathname < Test::Unit::TestCase
|
||||
|
||||
if RUBY_VERSION < "1.9"
|
||||
FUNCALL = :__send__
|
||||
else
|
||||
FUNCALL = :funcall
|
||||
end
|
||||
|
||||
def self.define_assertion(name, &block)
|
||||
@defassert_num ||= {}
|
||||
@defassert_num[name] ||= 0
|
||||
|
@ -115,7 +123,7 @@ class TestPathname < Test::Unit::TestCase
|
|||
|
||||
# has_trailing_separator?(path) -> bool
|
||||
def has_trailing_separator?(path)
|
||||
Pathname.allocate.funcall(:has_trailing_separator?, path)
|
||||
Pathname.allocate.send(FUNCALL, :has_trailing_separator?, path)
|
||||
end
|
||||
|
||||
defassert(:has_trailing_separator?, false, "/")
|
||||
|
@ -124,11 +132,11 @@ class TestPathname < Test::Unit::TestCase
|
|||
defassert(:has_trailing_separator?, true, "a/")
|
||||
|
||||
def add_trailing_separator(path)
|
||||
Pathname.allocate.funcall(:add_trailing_separator, path)
|
||||
Pathname.allocate.send(FUNCALL, :add_trailing_separator, path)
|
||||
end
|
||||
|
||||
def del_trailing_separator(path)
|
||||
Pathname.allocate.funcall(:del_trailing_separator, path)
|
||||
Pathname.allocate.send(FUNCALL, :del_trailing_separator, path)
|
||||
end
|
||||
|
||||
defassert(:del_trailing_separator, "/", "/")
|
||||
|
@ -313,6 +321,10 @@ class TestPathname < Test::Unit::TestCase
|
|||
assert_equal(p1, p2)
|
||||
end
|
||||
|
||||
def test_initialize_nul
|
||||
assert_raise(ArgumentError) { Pathname.new("a\0") }
|
||||
end
|
||||
|
||||
class AnotherStringLike # :nodoc:
|
||||
def initialize(s) @s = s end
|
||||
def to_str() @s end
|
||||
|
@ -374,6 +386,9 @@ class TestPathname < Test::Unit::TestCase
|
|||
assert_equal(nil, "a" <=> Pathname.new("a"))
|
||||
end
|
||||
|
||||
def pathsub(path, pat, repl) Pathname.new(path).sub(pat, repl).to_s end
|
||||
defassert(:pathsub, "a.o", "a.c", /\.c\z/, ".o")
|
||||
|
||||
def root?(path)
|
||||
Pathname.new(path).root?
|
||||
end
|
||||
|
@ -464,4 +479,8 @@ class TestPathname < Test::Unit::TestCase
|
|||
Pathname.new("/usr/bin/ruby").each_filename {|f| result << f }
|
||||
assert_equal(%w[usr bin ruby], result)
|
||||
end
|
||||
|
||||
def test_kernel_pathname
|
||||
assert_equal(Pathname.new("a"), Pathname("a"))
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue