pathname2 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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