From 6df5f314ac7809e2aedc22a961cf31c4e3f21d42 Mon Sep 17 00:00:00 2001 From: kazu Date: Tue, 25 Mar 2014 14:42:36 +0000 Subject: [PATCH] remove unnecessary unshift * ext/pathname/lib/pathname.rb (Pathname#join): remove unnecessary unshift. * test/pathname/test_pathname.rb (TestPathname#test_join): add tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ ext/pathname/lib/pathname.rb | 3 +-- test/pathname/test_pathname.rb | 8 ++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index ba86ab5dd5..a65c66a3ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Tue Mar 25 23:32:25 2014 Kazuhiro NISHIYAMA + + * ext/pathname/lib/pathname.rb (Pathname#join): remove unnecessary + unshift. + + * test/pathname/test_pathname.rb (TestPathname#test_join): add tests. + Tue Mar 25 16:47:36 2014 Nobuyoshi Nakada * parse.y (lex_state_e, parser_params, f_arglist, parser_yylex): diff --git a/ext/pathname/lib/pathname.rb b/ext/pathname/lib/pathname.rb index 20c92e23dc..bbcb5e4e2a 100644 --- a/ext/pathname/lib/pathname.rb +++ b/ext/pathname/lib/pathname.rb @@ -384,7 +384,6 @@ class Pathname # #=> true # def join(*args) - args.unshift self result = args.pop result = Pathname.new(result) unless Pathname === result return result if result.absolute? @@ -393,7 +392,7 @@ class Pathname result = arg + result return result if result.absolute? } - result + self + result end # diff --git a/test/pathname/test_pathname.rb b/test/pathname/test_pathname.rb index ed79b5b8f5..94bd8d8872 100644 --- a/test/pathname/test_pathname.rb +++ b/test/pathname/test_pathname.rb @@ -234,6 +234,14 @@ class TestPathname < Test::Unit::TestCase def test_join r = Pathname("a").join(Pathname("b"), Pathname("c")) assert_equal(Pathname("a/b/c"), r) + r = Pathname("/a").join(Pathname("b"), Pathname("c")) + assert_equal(Pathname("/a/b/c"), r) + r = Pathname("/a").join(Pathname("/b"), Pathname("c")) + assert_equal(Pathname("/b/c"), r) + r = Pathname("/a").join(Pathname("/b"), Pathname("/c")) + assert_equal(Pathname("/c"), r) + r = Pathname("/a").join("/b", "/c") + assert_equal(Pathname("/c"), r) end def test_absolute