pathname2 1.7.1 → 1.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES +3 -0
- data/README +4 -4
- data/Rakefile +6 -0
- data/lib/pathname2.rb +22 -7
- data/pathname2.gemspec +1 -1
- data/test/test_version.rb +1 -1
- data/test/windows/test_join.rb +52 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8eca512f0553c41d9258bf2b4bb6e5fb8a0eac4e
|
4
|
+
data.tar.gz: 5e96c3fbd0a6be1644a8e567786e040529f2cef2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90f5e288f86becab946179f1e2270bfb642cd267ea487cf31b4f617304912377da722e1196d324e1f408d0af2836d156a78e2711428abcfaed71338338b7d5ac
|
7
|
+
data.tar.gz: 982627ffc369693216c45d976f7ff6a76572aa83a973e601cd5ceb5c534fd27a3bef2e7f99425bcdcf3654017a34c2b1d4ff0898fa2d487845bb21ab48613d4e
|
data/CHANGES
CHANGED
data/README
CHANGED
@@ -14,8 +14,8 @@
|
|
14
14
|
require 'pathname2'
|
15
15
|
|
16
16
|
# Unix
|
17
|
-
path1 = "/foo/bar/baz"
|
18
|
-
path2 = "../zap"
|
17
|
+
path1 = Pathname.new("/foo/bar/baz")
|
18
|
+
path2 = Pathname.new("../zap")
|
19
19
|
|
20
20
|
path1 + path2 # "/foo/bar/zap"
|
21
21
|
path1 / path2 # "/foo/bar/zap" (same as +)
|
@@ -24,8 +24,8 @@
|
|
24
24
|
path1.to_a # ['foo','bar','baz']
|
25
25
|
|
26
26
|
# Windows
|
27
|
-
path1 = "C:/foo/bar/baz"
|
28
|
-
path2 = "../zap"
|
27
|
+
path1 = Pathname.new("C:/foo/bar/baz")
|
28
|
+
path2 = Pathname.new("../zap")
|
29
29
|
|
30
30
|
path1 + path2 # "C:\\foo\\bar\\zap"
|
31
31
|
path1.root # "C:\\"
|
data/Rakefile
CHANGED
@@ -132,6 +132,12 @@ namespace :test do
|
|
132
132
|
t.verbose = true
|
133
133
|
t.test_files = FileList["test/#{dir}/test_is_unc.rb"]
|
134
134
|
end
|
135
|
+
|
136
|
+
Rake::TestTask.new(:join) do |t|
|
137
|
+
t.warning = true
|
138
|
+
t.verbose = true
|
139
|
+
t.test_files = FileList["test/#{dir}/test_join.rb"]
|
140
|
+
end
|
135
141
|
|
136
142
|
Rake::TestTask.new(:long_path) do |t|
|
137
143
|
t.warning = true
|
data/lib/pathname2.rb
CHANGED
@@ -93,7 +93,7 @@ class Pathname < String
|
|
93
93
|
public
|
94
94
|
|
95
95
|
# The version of the pathname2 library
|
96
|
-
VERSION = '1.7.
|
96
|
+
VERSION = '1.7.2'
|
97
97
|
|
98
98
|
# The maximum length of a path
|
99
99
|
MAXPATH = 1024 unless defined? MAXPATH # Yes, I willfully violate POSIX
|
@@ -813,6 +813,26 @@ class Pathname < String
|
|
813
813
|
local_path
|
814
814
|
end
|
815
815
|
|
816
|
+
# Joins the given pathnames onto +self+ to create a new Pathname object.
|
817
|
+
#
|
818
|
+
# path = Pathname.new("C:/Users")
|
819
|
+
# path = path.join("foo", "Downloads") # => C:/Users/foo/Downloads
|
820
|
+
#
|
821
|
+
def join(*args)
|
822
|
+
args.unshift self
|
823
|
+
result = args.pop
|
824
|
+
result = self.class.new(result) unless result === self.class
|
825
|
+
return result if result.absolute?
|
826
|
+
|
827
|
+
args.reverse_each{ |path|
|
828
|
+
path = self.class.new(path) unless path === self.class
|
829
|
+
result = path + result
|
830
|
+
break if result.absolute?
|
831
|
+
}
|
832
|
+
|
833
|
+
result
|
834
|
+
end
|
835
|
+
|
816
836
|
# A custom pretty printer
|
817
837
|
def pretty_print(q)
|
818
838
|
if File::ALT_SEPARATOR
|
@@ -972,12 +992,7 @@ class Pathname < String
|
|
972
992
|
|
973
993
|
# File.expand_path
|
974
994
|
def expand_path(*args)
|
975
|
-
File.expand_path(self, *args)
|
976
|
-
end
|
977
|
-
|
978
|
-
# File.join
|
979
|
-
def join(*args)
|
980
|
-
File.join(self, *args)
|
995
|
+
self.class.new(File.expand_path(self, *args))
|
981
996
|
end
|
982
997
|
|
983
998
|
#--
|
data/pathname2.gemspec
CHANGED
data/test/test_version.rb
CHANGED
@@ -0,0 +1,52 @@
|
|
1
|
+
########################################################################
|
2
|
+
# test_join.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Pathname#join method.
|
5
|
+
########################################################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'pathname2'
|
8
|
+
|
9
|
+
class TC_Pathname_Join < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
@apath = Pathname.new("C:\\foo\\bar")
|
12
|
+
@rpath = Pathname.new("foo\\bar\\baz")
|
13
|
+
end
|
14
|
+
|
15
|
+
def assert_pathname_join(final, initial, *rest)
|
16
|
+
a = Pathname.new(final)
|
17
|
+
b = Pathname.new(initial)
|
18
|
+
assert_equal(a, b.join(*rest))
|
19
|
+
end
|
20
|
+
|
21
|
+
test "join method accepts one or more arguments" do
|
22
|
+
assert_nothing_raised{ @apath.join("foo") }
|
23
|
+
assert_nothing_raised{ @apath.join("foo", "bar") }
|
24
|
+
assert_nothing_raised{ @apath.join("foo", "bar", "baz") }
|
25
|
+
end
|
26
|
+
|
27
|
+
test "join method returns expected results when joining relative paths to an absolute path" do
|
28
|
+
assert_pathname_join("C:\\foo", "C:\\", "foo")
|
29
|
+
assert_pathname_join("C:\\foo\\bar", "C:\\foo", "bar")
|
30
|
+
assert_pathname_join("C:\\foo\\bar\\baz", "C:\\foo", "bar", "baz")
|
31
|
+
end
|
32
|
+
|
33
|
+
test "join method returns expected results when joining relative paths to a relative path" do
|
34
|
+
assert_pathname_join("foo\\bar", "foo", "bar")
|
35
|
+
assert_pathname_join("foo\\bar\\baz", "foo", "bar", "baz")
|
36
|
+
end
|
37
|
+
|
38
|
+
test "join method returns expected results when joining an absolute path to an absolute path" do
|
39
|
+
assert_pathname_join("D:\\", "C:\\", "D:\\")
|
40
|
+
assert_pathname_join("D:\\foo", "C:\\", "D:\\", "foo")
|
41
|
+
assert_pathname_join("D:\\", "C:\\", "foo", "bar", "D:\\")
|
42
|
+
end
|
43
|
+
|
44
|
+
test "join returns an instance of Pathname" do
|
45
|
+
assert_kind_of(Pathname, @apath.join("foo"))
|
46
|
+
end
|
47
|
+
|
48
|
+
def teardown
|
49
|
+
@apath = nil
|
50
|
+
@rpath = nil
|
51
|
+
end
|
52
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pathname2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: facade
|
@@ -94,6 +94,7 @@ files:
|
|
94
94
|
- test/windows/test_is_relative.rb
|
95
95
|
- test/windows/test_is_root.rb
|
96
96
|
- test/windows/test_is_unc.rb
|
97
|
+
- test/windows/test_join.rb
|
97
98
|
- test/windows/test_long_path.rb
|
98
99
|
- test/windows/test_misc.rb
|
99
100
|
- test/windows/test_parent.rb
|