pathname2 1.8.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +5 -0
  4. data/CHANGES +171 -0
  5. data/LICENSE +177 -0
  6. data/MANIFEST +40 -0
  7. data/README +97 -0
  8. data/Rakefile +222 -0
  9. data/benchmarks/bench_pathname.rb +127 -0
  10. data/benchmarks/bench_plus.rb +34 -0
  11. data/certs/djberg96_pub.pem +26 -0
  12. data/examples/example_pathname.rb +25 -0
  13. data/lib/pathname2.rb +1140 -0
  14. data/pathname2.gemspec +46 -0
  15. data/test/test_pathname.rb +486 -0
  16. data/test/test_version.rb +17 -0
  17. data/test/windows/test_append.rb +59 -0
  18. data/test/windows/test_aref.rb +37 -0
  19. data/test/windows/test_ascend.rb +51 -0
  20. data/test/windows/test_children.rb +42 -0
  21. data/test/windows/test_clean.rb +50 -0
  22. data/test/windows/test_clean_bang.rb +50 -0
  23. data/test/windows/test_constructor.rb +48 -0
  24. data/test/windows/test_descend.rb +51 -0
  25. data/test/windows/test_drive_number.rb +58 -0
  26. data/test/windows/test_each.rb +28 -0
  27. data/test/windows/test_facade.rb +64 -0
  28. data/test/windows/test_is_absolute.rb +47 -0
  29. data/test/windows/test_is_relative.rb +46 -0
  30. data/test/windows/test_is_root.rb +44 -0
  31. data/test/windows/test_is_unc.rb +51 -0
  32. data/test/windows/test_join.rb +52 -0
  33. data/test/windows/test_long_path.rb +41 -0
  34. data/test/windows/test_misc.rb +33 -0
  35. data/test/windows/test_parent.rb +37 -0
  36. data/test/windows/test_pstrip.rb +42 -0
  37. data/test/windows/test_pstrip_bang.rb +46 -0
  38. data/test/windows/test_realpath.rb +39 -0
  39. data/test/windows/test_relative_path_from.rb +60 -0
  40. data/test/windows/test_root.rb +59 -0
  41. data/test/windows/test_short_path.rb +41 -0
  42. data/test/windows/test_to_a.rb +46 -0
  43. data/test/windows/test_undecorate.rb +47 -0
  44. data/test/windows/test_undecorate_bang.rb +53 -0
  45. metadata +176 -0
  46. metadata.gz.sig +1 -0
@@ -0,0 +1,42 @@
1
+ ########################################################################
2
+ # test_pstrip.rb
3
+ #
4
+ # Test suite for the Pathname#pstrip method
5
+ ########################################################################
6
+ require 'test-unit'
7
+ require 'pathname2'
8
+
9
+ class TC_Pathname_Pstrip < Test::Unit::TestCase
10
+ def setup
11
+ @path = Pathname.new("C:/Program Files////")
12
+ end
13
+
14
+ test "pstrip basic functionality" do
15
+ assert_respond_to(@path, :pstrip)
16
+ assert_nothing_raised{ @path.pstrip }
17
+ assert_kind_of(Pathname, @path.pstrip)
18
+ end
19
+
20
+ test "pstrip returns expected result for path with trailing slashes" do
21
+ assert_equal("C:\\Program Files", @path.pstrip)
22
+ assert_equal("C:\\Program Files", Pathname.new("C:\\Program Files\\\\").pstrip)
23
+ assert_equal("C:\\Program Files", Pathname.new("C:\\Program Files//\\").pstrip)
24
+ end
25
+
26
+ test "pstrip returns the path as is if it does not contain a trailing slash" do
27
+ assert_equal("C:\\Program Files", Pathname.new("C:\\Program Files").pstrip)
28
+ assert_equal("", Pathname.new("").pstrip)
29
+ end
30
+
31
+ test "pstrip method is not destructive" do
32
+ str = 'C:/Program Files////'
33
+ assert_nothing_raised{ Pathname.new(str).pstrip }
34
+ assert_equal('C:/Program Files////', str)
35
+ end
36
+
37
+ def teardown
38
+ @abs_path = nil
39
+ @unc_path = nil
40
+ @rel_path = nil
41
+ end
42
+ end
@@ -0,0 +1,46 @@
1
+ ########################################################################
2
+ # test_pstrip_bang.rb
3
+ #
4
+ # Test suite for the Pathname#pstrip! method
5
+ ########################################################################
6
+ require 'test-unit'
7
+ require 'pathname2'
8
+
9
+ class TC_Pathname_PstripBang < Test::Unit::TestCase
10
+ def setup
11
+ @path = Pathname.new("C:/Program Files////")
12
+ end
13
+
14
+ test "pstrip! basic functionality" do
15
+ assert_respond_to(@path, :pstrip!)
16
+ assert_nothing_raised{ @path.pstrip! }
17
+ assert_kind_of(Pathname, @path.pstrip!)
18
+ end
19
+
20
+ test "pstrip! returns expected result for path with trailing slashes" do
21
+ assert_equal("C:\\Program Files", @path.pstrip!)
22
+ assert_equal("C:\\Program Files", Pathname.new("C:\\Program Files\\\\").pstrip!)
23
+ assert_equal("C:\\Program Files", Pathname.new("C:\\Program Files//\\").pstrip!)
24
+ end
25
+
26
+ test "pstrip! returns the path as is if it does not contain a trailing slash" do
27
+ assert_equal("C:\\Program Files", Pathname.new("C:\\Program Files").pstrip!)
28
+ assert_equal("", Pathname.new("").pstrip!)
29
+ end
30
+
31
+ test "pstrip! alters pathname object" do
32
+ path = Pathname.new('C:/Program Files////')
33
+ assert_nothing_raised{ path.pstrip! }
34
+ assert_equal('C:\Program Files', path.to_s)
35
+ end
36
+
37
+ test "pstrip! method does not modify original constructor argument" do
38
+ str = 'C:/Program Files////'
39
+ assert_nothing_raised{ Pathname.new(str).pstrip! }
40
+ assert_equal('C:/Program Files////', str)
41
+ end
42
+
43
+ def teardown
44
+ @path = nil
45
+ end
46
+ end
@@ -0,0 +1,39 @@
1
+ ########################################################################
2
+ # test_realpath.rb
3
+ #
4
+ # Test suite for the Pathname#realpath method
5
+ ########################################################################
6
+ require 'test-unit'
7
+ require 'pathname2'
8
+
9
+ class TC_Pathname_Realpath < Test::Unit::TestCase
10
+ def setup
11
+ @cwd = Dir.pwd.tr('/', "\\")
12
+ @path = Pathname.new(Dir.pwd)
13
+ end
14
+
15
+ test "realpath basic functionality" do
16
+ assert_respond_to(@path, :realpath)
17
+ assert_nothing_raised{ @path.realpath }
18
+ assert_kind_of(String, @path.realpath)
19
+ end
20
+
21
+ test "realpath returns the expected result" do
22
+ assert_equal(@cwd, @path.realpath)
23
+ end
24
+
25
+ test "realpath fails if the path does not exist" do
26
+ assert_raise(Errno::ENOENT){ Pathname.new("C:/Bogus/AlsoBogus").realpath }
27
+ end
28
+
29
+ test "realpath method is not destructive" do
30
+ str = 'C:/Program Files'
31
+ assert_nothing_raised{ Pathname.new(str).realpath }
32
+ assert_equal('C:/Program Files', str)
33
+ end
34
+
35
+ def teardown
36
+ @cwd = nil
37
+ @path = nil
38
+ end
39
+ end
@@ -0,0 +1,60 @@
1
+ ########################################################################
2
+ # test_relative_path_from.rb
3
+ #
4
+ # Test suite for the Pathname#relative_path_from method.
5
+ ########################################################################
6
+ require 'test-unit'
7
+ require 'pathname2'
8
+
9
+ class TC_Pathname_RelativePathFrom < Test::Unit::TestCase
10
+ def assert_relpath(result, dest, base)
11
+ assert_equal(result, Pathname.new(dest).relative_path_from(base))
12
+ end
13
+
14
+ def assert_relative_path_error(to, from)
15
+ assert_raise(ArgumentError){ Pathname.new(to).relative_path_from(from) }
16
+ end
17
+
18
+ test "relative_path_from works as expected between two relative paths" do
19
+ assert_relpath("..\\a", 'a', 'b')
20
+ assert_relpath("..\\a", 'a', 'b/')
21
+ assert_relpath("..\\a", 'a/', 'b')
22
+ assert_relpath("..\\a", 'a/', 'b/')
23
+ assert_relpath("..\\b", "a\\b", "a\\c")
24
+ assert_relpath("..\\a", "..\\a", "..\\b")
25
+ assert_relpath("..\\b\\c", "a\\b\\c", "a\\d")
26
+ assert_relpath("..", "a\\..", "a")
27
+ assert_relpath(".", "a\\..\\b", "b")
28
+ assert_relpath("a", "a", "b\\..")
29
+ assert_relpath("b\\c", "b\\c", "b\\..")
30
+ end
31
+
32
+ test "relative_path_from works as expected between two absolute paths" do
33
+ assert_relpath("..\\a", "c:\\a", "c:\\b")
34
+ assert_relpath("..\\a", "c:\\a", "c:\\b\\")
35
+ assert_relpath("..\\a", "c:\\a\\", "c:\\b")
36
+ assert_relpath("..\\a", "c:\\a\\", "c:\\b\\")
37
+ assert_relpath("c\\d", "c:\\a\\b\\c\\d", "c:\\a\\b")
38
+ assert_relpath("..\\..", "c:\\a\\b", "c:\\a\\b\\c\\d")
39
+ assert_relpath("..\\..\\..\\..\\e", "c:\\e", "c:\\a\\b\\c\\d")
40
+ assert_relpath("..\\a", "c:\\..\\a", "c:\\b")
41
+ assert_relpath(".", "c:\\a\\..\\..\\b", "c:\\b")
42
+ end
43
+
44
+ test "relative_path_from works as expected between for . and .." do
45
+ assert_relpath("a", "a", ".")
46
+ assert_relpath("..", ".", "a")
47
+ assert_relpath(".", ".", ".")
48
+ assert_relpath(".", "..", "..")
49
+ assert_relpath("..", "..", ".")
50
+ end
51
+
52
+ test "relative_path_from is not allowed between relative and absolute paths" do
53
+ assert_relative_path_error("c:\\", ".")
54
+ assert_relative_path_error(".", "c:\\")
55
+ assert_relative_path_error("a", "..")
56
+ assert_relative_path_error(".", "..")
57
+ assert_relative_path_error("C:\\Temp", "D:\\Temp")
58
+ assert_relative_path_error("\\\\Server\\Temp", "D:\\Temp")
59
+ end
60
+ end
@@ -0,0 +1,59 @@
1
+ ########################################################################
2
+ # test_root.rb
3
+ #
4
+ # Test suite for the Pathname#root method
5
+ ########################################################################
6
+ require 'test-unit'
7
+ require 'pathname2'
8
+
9
+ class TC_Pathname_Root < Test::Unit::TestCase
10
+ def setup
11
+ @abs_path = Pathname.new("C:\\Program Files")
12
+ @unc_path = Pathname.new("\\\\foo\\bar\\baz")
13
+ @rel_path = Pathname.new("foo\\bar\\baz")
14
+ end
15
+
16
+ test "root method returns expected results for absolute paths" do
17
+ assert_equal("C:\\", @abs_path.root)
18
+ end
19
+
20
+ test "root method returns expected results for paths with forward slashes" do
21
+ assert_equal("C:\\", Pathname.new("C:/Program Files").root)
22
+ end
23
+
24
+ test "root method returns expected results for unc paths" do
25
+ assert_equal("\\\\foo\\bar", @unc_path.root)
26
+ assert_equal("\\\\foo", Pathname.new("\\\\foo").root)
27
+ assert_equal("\\\\", Pathname.new("\\\\").root)
28
+ end
29
+
30
+ test "root method returns dot for relative paths" do
31
+ assert_equal('.', @rel_path.root)
32
+ end
33
+
34
+ test "root method returns expected result for root path" do
35
+ assert_equal("Z:\\", Pathname.new("Z:\\").root)
36
+ assert_equal("\\\\foo\\bar", Pathname.new("\\\\foo\\bar").root)
37
+ end
38
+
39
+ test "root method returns expected result for empty string" do
40
+ assert_equal(".", Pathname.new("").root)
41
+ end
42
+
43
+ test "root method returns expected result for dot and dotdot" do
44
+ assert_equal(".", Pathname.new("..").root)
45
+ assert_equal(".", Pathname.new(".").root)
46
+ end
47
+
48
+ test "root method is not destructive" do
49
+ str = 'C:/Program Files'
50
+ assert_nothing_raised{ Pathname.new(str).root }
51
+ assert_equal('C:/Program Files', str)
52
+ end
53
+
54
+ def teardown
55
+ @abs_path = nil
56
+ @unc_path = nil
57
+ @rel_path = nil
58
+ end
59
+ end
@@ -0,0 +1,41 @@
1
+ ########################################################################
2
+ # test_short_path.rb
3
+ #
4
+ # Test suite for the Pathname#short_path method
5
+ ########################################################################
6
+ require 'test-unit'
7
+ require 'pathname2'
8
+
9
+ class TC_Pathname_ShortPath < Test::Unit::TestCase
10
+ def setup
11
+ @abs_path = Pathname.new("C:\\Program Files")
12
+ end
13
+
14
+ test "short_path basic functionality" do
15
+ assert_respond_to(@abs_path, :short_path)
16
+ assert_nothing_raised{ @abs_path.short_path }
17
+ assert_kind_of(String, @abs_path.short_path)
18
+ end
19
+
20
+ test "short_path returns the expected result" do
21
+ assert_equal("C:\\PROGRA~1", @abs_path.short_path)
22
+ end
23
+
24
+ test "short_path returns the same string if it's already short" do
25
+ assert_equal("C:\\", Pathname.new("C:/").short_path)
26
+ end
27
+
28
+ test "short_path fails if the path does not exist" do
29
+ assert_raise(Errno::ESRCH){ Pathname.new("C:/Bogus/AlsoBogus").short_path }
30
+ end
31
+
32
+ test "short_path method is not destructive" do
33
+ str = 'C:/Program Files'
34
+ assert_nothing_raised{ Pathname.new(str).short_path }
35
+ assert_equal('C:/Program Files', str)
36
+ end
37
+
38
+ def teardown
39
+ @abs_path = nil
40
+ end
41
+ end
@@ -0,0 +1,46 @@
1
+ ########################################################################
2
+ # test_to_a.rb
3
+ #
4
+ # Test suite for the Pathname#to_a method.
5
+ ########################################################################
6
+ require 'test-unit'
7
+ require 'pathname2'
8
+
9
+ class TC_Pathname_ToA < Test::Unit::TestCase
10
+ def setup
11
+ @path = Pathname.new('C:/Program Files/foo')
12
+ end
13
+
14
+ test "to_a basic functionality" do
15
+ assert_respond_to(@path, :to_a)
16
+ assert_nothing_raised{ @path.to_a }
17
+ assert_kind_of(Array, @path.to_a)
18
+ end
19
+
20
+ test "to_a returns the expected results for standard paths" do
21
+ assert_equal(['C:'], Pathname.new('C:/').to_a)
22
+ assert_equal(['C:', 'Program Files'], Pathname.new('C:/Program Files').to_a)
23
+ assert_equal(['C:', 'Program Files', 'Stuff'], Pathname.new('C:/Program Files/Stuff').to_a)
24
+ assert_equal(['C:', 'Users'], Pathname.new("C:\\Users").to_a)
25
+ end
26
+
27
+ test "to_a returns the expected results for unc paths" do
28
+ assert_equal(['foo', 'bar', 'baz'], Pathname.new('//foo/bar/baz').to_a)
29
+ assert_equal(['foo', 'bar'], Pathname.new('//foo/bar').to_a)
30
+ assert_equal(['foo'], Pathname.new('//foo').to_a)
31
+ end
32
+
33
+ test "to_a returns the expected results for empty strings and empty unc paths" do
34
+ assert_equal([], Pathname.new('').to_a)
35
+ assert_equal([], Pathname.new('//').to_a)
36
+ end
37
+
38
+ test "to_a does not modify receiver" do
39
+ @path.to_a
40
+ assert_equal('C:\Program Files\foo', @path)
41
+ end
42
+
43
+ def teardown
44
+ @path = nil
45
+ end
46
+ end
@@ -0,0 +1,47 @@
1
+ ########################################################################
2
+ # test_undecorate.rb
3
+ #
4
+ # Test suite for the Pathname#undecorate method
5
+ ########################################################################
6
+ require 'test-unit'
7
+ require 'pathname2'
8
+
9
+ class TC_Pathname_Undecorate < Test::Unit::TestCase
10
+ def setup
11
+ @std = Pathname.new('C:/Path/File.txt')
12
+ end
13
+
14
+ test "undecorate basic functionality" do
15
+ assert_respond_to(@std, :undecorate)
16
+ assert_nothing_raised{ @std.undecorate }
17
+ end
18
+
19
+ test "undecorate returns a Pathname object" do
20
+ assert_kind_of(Pathname, @std.undecorate)
21
+ end
22
+
23
+ test "undecorate method returns an already undecorated path unchanged" do
24
+ assert_equal('C:\Path\File.txt', Pathname.new('C:\Path\File.txt').undecorate)
25
+ assert_equal('\\foo\bar', Pathname.new('\\foo\bar').undecorate)
26
+ end
27
+
28
+ test "undecorate returns expected result for standard path" do
29
+ assert_equal('C:\Path\File', Pathname.new('C:\Path\File[12]').undecorate)
30
+ assert_equal('C:\Path\[3].txt', Pathname.new('C:\Path\[3].txt').undecorate)
31
+ end
32
+
33
+ test "undecorate returns expected result for UNC path" do
34
+ assert_equal('\\foo\bar.txt',Pathname.new('\\foo\bar[5].txt').undecorate)
35
+ assert_equal('\\foo\bar', Pathname.new('\\foo\bar[5]').undecorate)
36
+ end
37
+
38
+ test "undecorate does not modify the original string" do
39
+ str = 'C:/Path/File.txt'
40
+ assert_nothing_raised{ Pathname.new(str).undecorate }
41
+ assert_equal('C:/Path/File.txt', str)
42
+ end
43
+
44
+ def teardown
45
+ @std = nil
46
+ end
47
+ end
@@ -0,0 +1,53 @@
1
+ ########################################################################
2
+ # test_undecorate_bang.rb
3
+ #
4
+ # Test suite for the Pathname#undecorate! method
5
+ ########################################################################
6
+ require 'test-unit'
7
+ require 'pathname2'
8
+
9
+ class TC_Pathname_UndecorateBang < Test::Unit::TestCase
10
+ def setup
11
+ @std = Pathname.new('C:/Path/File.txt')
12
+ end
13
+
14
+ test "undecorate! basic functionality" do
15
+ assert_respond_to(@std, :undecorate!)
16
+ assert_nothing_raised{ @std.undecorate! }
17
+ end
18
+
19
+ test "undecorate! returns a Pathname object" do
20
+ assert_kind_of(Pathname, @std.undecorate!)
21
+ end
22
+
23
+ test "undecorate! method returns an already undecorated path unchanged" do
24
+ assert_equal('C:\Path\File.txt', Pathname.new('C:\Path\File.txt').undecorate!)
25
+ assert_equal('\\foo\bar', Pathname.new('\\foo\bar').undecorate!)
26
+ end
27
+
28
+ test "undecorate! returns expected result for standard path" do
29
+ assert_equal('C:\Path\File', Pathname.new('C:\Path\File[12]').undecorate!)
30
+ assert_equal('C:\Path\[3].txt', Pathname.new('C:\Path\[3].txt').undecorate!)
31
+ end
32
+
33
+ test "undecorate! returns expected result for UNC path" do
34
+ assert_equal('\\foo\bar.txt',Pathname.new('\\foo\bar[5].txt').undecorate!)
35
+ assert_equal('\\foo\bar', Pathname.new('\\foo\bar[5]').undecorate!)
36
+ end
37
+
38
+ test "undecorate! does not modify the original string" do
39
+ str = 'C:/Path/File.txt'
40
+ assert_nothing_raised{ Pathname.new(str).undecorate }
41
+ assert_equal('C:/Path/File.txt', str)
42
+ end
43
+
44
+ test "undecorate does modify the object itself" do
45
+ path = Pathname.new('C:\Path\File[12]')
46
+ assert_nothing_raised{ path.undecorate! }
47
+ assert_equal('C:\Path\File', path)
48
+ end
49
+
50
+ def teardown
51
+ @std = nil
52
+ end
53
+ end
metadata ADDED
@@ -0,0 +1,176 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pathname2
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.8.2
5
+ platform: ruby
6
+ authors:
7
+ - Daniel J. Berger
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MREwDwYDVQQDDAhkamJl
14
+ cmc5NjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
15
+ MB4XDTE4MDMxODE1MjIwN1oXDTI4MDMxNTE1MjIwN1owPzERMA8GA1UEAwwIZGpi
16
+ ZXJnOTYxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
17
+ bTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBALgfaroVM6CI06cxr0/h
18
+ A+j+pc8fgpRgBVmHFaFunq28GPC3IvW7Nvc3Y8SnAW7pP1EQIbhlwRIaQzJ93/yj
19
+ u95KpkP7tA9erypnV7dpzBkzNlX14ACaFD/6pHoXoe2ltBxk3CCyyzx70mTqJpph
20
+ 75IB03ni9a8yqn8pmse+s83bFJOAqddSj009sGPcQO+QOWiNxqYv1n5EHcvj2ebO
21
+ 6hN7YTmhx7aSia4qL/quc4DlIaGMWoAhvML7u1fmo53CYxkKskfN8MOecq2vfEmL
22
+ iLu+SsVVEAufMDDFMXMJlvDsviolUSGMSNRTujkyCcJoXKYYxZSNtIiyd9etI0X3
23
+ ctu0uhrFyrMZXCedutvXNjUolD5r9KGBFSWH1R9u2I3n3SAyFF2yzv/7idQHLJJq
24
+ 74BMnx0FIq6fCpu5slAipvxZ3ZkZpEXZFr3cIBtO1gFvQWW7E/Y3ijliWJS1GQFq
25
+ 058qERadHGu1yu1dojmFRo6W2KZvY9al2yIlbkpDrD5MYQIDAQABo3cwdTAJBgNV
26
+ HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUFZsMapgzJimzsbaBG2Tm8j5e
27
+ AzgwHQYDVR0RBBYwFIESZGpiZXJnOTZAZ21haWwuY29tMB0GA1UdEgQWMBSBEmRq
28
+ YmVyZzk2QGdtYWlsLmNvbTANBgkqhkiG9w0BAQsFAAOCAYEAW2tnYixXQtKxgGXq
29
+ /3iSWG2bLwvxS4go3srO+aRXZHrFUMlJ5W0mCxl03aazxxKTsVVpZD8QZxvK91OQ
30
+ h9zr9JBYqCLcCVbr8SkmYCi/laxIZxsNE5YI8cC8vvlLI7AMgSfPSnn/Epq1GjGY
31
+ 6L1iRcEDtanGCIvjqlCXO9+BmsnCfEVehqZkQHeYczA03tpOWb6pon2wzvMKSsKH
32
+ ks0ApVdstSLz1kzzAqem/uHdG9FyXdbTAwH1G4ZPv69sQAFAOCgAqYmdnzedsQtE
33
+ 1LQfaQrx0twO+CZJPcRLEESjq8ScQxWRRkfuh2VeR7cEU7L7KqT10mtUwrvw7APf
34
+ DYoeCY9KyjIBjQXfbj2ke5u1hZj94Fsq9FfbEQg8ygCgwThnmkTrrKEiMSs3alYR
35
+ ORVCZpRuCPpmC8qmqxUnARDArzucjaclkxjLWvCVHeFa9UP7K3Nl9oTjJNv+7/jM
36
+ WZs4eecIcUc4tKdHxcAJ0MO/Dkqq7hGaiHpwKY76wQ1+8xAh
37
+ -----END CERTIFICATE-----
38
+ date:
39
+ dependencies:
40
+ - !ruby/object:Gem::Dependency
41
+ name: facade
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: test-unit
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rake
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ description: |2
83
+ The pathname2 library provides an implementation of the Pathname
84
+ class different from the one that ships as part of the Ruby standard
85
+ library. It is a subclass of String, though several methods have been
86
+ overridden to better fit a path context. In addition, it supports file
87
+ URL's as paths, provides additional methods for Windows paths, and
88
+ handles UNC paths on Windows properly. See the README file for more
89
+ details.
90
+ email: djberg96@gmail.com
91
+ executables: []
92
+ extensions: []
93
+ extra_rdoc_files:
94
+ - README
95
+ - CHANGES
96
+ - MANIFEST
97
+ files:
98
+ - LICENSE
99
+ - test
100
+ - test/test_pathname.rb
101
+ - test/windows
102
+ - test/windows/test_long_path.rb
103
+ - test/windows/test_short_path.rb
104
+ - test/windows/test_parent.rb
105
+ - test/windows/test_root.rb
106
+ - test/windows/test_undecorate_bang.rb
107
+ - test/windows/test_clean.rb
108
+ - test/windows/test_clean_bang.rb
109
+ - test/windows/test_pstrip_bang.rb
110
+ - test/windows/test_facade.rb
111
+ - test/windows/test_is_absolute.rb
112
+ - test/windows/test_realpath.rb
113
+ - test/windows/test_children.rb
114
+ - test/windows/test_pstrip.rb
115
+ - test/windows/test_relative_path_from.rb
116
+ - test/windows/test_constructor.rb
117
+ - test/windows/test_join.rb
118
+ - test/windows/test_is_relative.rb
119
+ - test/windows/test_is_root.rb
120
+ - test/windows/test_append.rb
121
+ - test/windows/test_is_unc.rb
122
+ - test/windows/test_aref.rb
123
+ - test/windows/test_misc.rb
124
+ - test/windows/test_ascend.rb
125
+ - test/windows/test_each.rb
126
+ - test/windows/test_descend.rb
127
+ - test/windows/test_undecorate.rb
128
+ - test/windows/test_drive_number.rb
129
+ - test/windows/test_to_a.rb
130
+ - test/test_version.rb
131
+ - pathname2.gemspec
132
+ - CHANGES
133
+ - MANIFEST
134
+ - README
135
+ - Rakefile
136
+ - certs
137
+ - certs/djberg96_pub.pem
138
+ - examples
139
+ - examples/example_pathname.rb
140
+ - benchmarks
141
+ - benchmarks/bench_pathname.rb
142
+ - benchmarks/bench_plus.rb
143
+ - lib
144
+ - lib/pathname2.rb
145
+ homepage: https://github.com/djberg96/pathname2
146
+ licenses:
147
+ - Apache-2.0
148
+ metadata:
149
+ homepage_uri: https://github.com/djberg96/pathname2
150
+ bug_tracker_uri: https://github.com/djberg96/pathname2/issues
151
+ changelog_uri: https://github.com/djberg96/pathname2/blob/ffi/CHANGES
152
+ documentation_uri: https://github.com/djberg96/pathname2/wiki
153
+ source_code_uri: https://github.com/djberg96/pathname2
154
+ wiki_uri: https://github.com/djberg96/pathname2/wiki
155
+ post_install_message:
156
+ rdoc_options: []
157
+ require_paths:
158
+ - lib
159
+ required_ruby_version: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ required_rubygems_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ requirements: []
170
+ rubygems_version: 3.0.3
171
+ signing_key:
172
+ specification_version: 4
173
+ summary: An alternate implementation of the Pathname class
174
+ test_files:
175
+ - test/test_pathname.rb
176
+ - test/test_version.rb