pathname2 1.8.3-universal-mingw32 → 1.8.4-universal-mingw32
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +3 -2
- data.tar.gz.sig +0 -0
- data/{CHANGES → CHANGES.md} +34 -29
- data/Gemfile +3 -0
- data/{MANIFEST → MANIFEST.md} +4 -3
- data/README.md +98 -0
- data/Rakefile +1 -1
- data/lib/pathname2.rb +13 -6
- data/pathname2.gemspec +4 -6
- data/test/test_version.rb +1 -1
- metadata +9 -9
- metadata.gz.sig +0 -0
- data/README +0 -97
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7c547bc754fe54425253b26b3257b5342fd3a05ceee78f98242d1b7f4631e5b
|
4
|
+
data.tar.gz: 4b1350a0c4245ef3e9b374dfd58f8e0c3edffd4409a9e8dcccca2bff4934a7d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e25bdf0d5f900da0b905f7693aedb44341d6ed1135cc949c9e87b761a3e34feb574b92daf5d750690a3323ee83a36ca30cdc33f00a6c729235c541bfd81f377a
|
7
|
+
data.tar.gz: 53b03e808347bb7a070370b5e1834a8fcc646194196d9fb8558be2fc58f1df76239e9a96d37e2a3aaa5eb8a74f03b6e03dd736e5a116ab076cd0038934bc35be
|
checksums.yaml.gz.sig
CHANGED
@@ -1,2 +1,3 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
,�q�����dٍOK5� �i�=����Ń*����Bȶ�0.����=e�YUs��CI[e�k�on�ޤ��2�iw_
|
2
|
+
��ځ�����<�),��>3�%sz����O��X�.t��Њ^�mw2e���D�61�9_��~�$NEU ��iy��V%���t`(6,�3�Z(�g��w(��
|
3
|
+
.�t��߱�M�Hǒ�Zb@A�WS�Hf'��10��_s_Rt� ���Qo�WK�e,yx�������m��'�q��y�nCi
|
data.tar.gz.sig
CHANGED
Binary file
|
data/{CHANGES → CHANGES.md}
RENAMED
@@ -1,51 +1,56 @@
|
|
1
|
-
|
1
|
+
## 1.8.4 - 19-Jan-2021
|
2
|
+
* Cleaned up the Rubocop warnings.
|
3
|
+
* Added a Gemfile.
|
4
|
+
* Some minor updates to the gemspec and Rakefile.
|
5
|
+
|
6
|
+
## 1.8.3 - 30-Aug-2020
|
2
7
|
* Updated the tests to match the version. Thanks go to Cédric Boutillier for the spot.
|
3
8
|
* Fixed a redefinition warning for the :children method.
|
4
9
|
* Fixed a Fixnum deprecation warning.
|
5
10
|
|
6
|
-
|
11
|
+
## 1.8.2 - 21-Jul-2020
|
7
12
|
* Added a LICENSE file as required by the Apache-2.0 license.
|
8
13
|
|
9
|
-
|
14
|
+
## 1.8.1 - 31-Jan-2019
|
10
15
|
* The VERSION constant is now frozen.
|
11
16
|
* Added metadata to the gemspec.
|
12
17
|
* Fixed missing hyphen in license name.
|
13
18
|
* Updated cert, should be good for about 10 years.
|
14
19
|
|
15
|
-
|
20
|
+
## 1.8.0 - 19-Jun-2016
|
16
21
|
* Changed license to Apache-2.0.
|
17
22
|
* Some cleanup and updates to the Rakefile and benchmarks.
|
18
23
|
* Refactored some realpath tests so they're not touching system files like
|
19
24
|
/dev/stdin any more. Thanks go to Michael R. Crusoe for pointing out the
|
20
25
|
potential pitfalls of doing that.
|
21
26
|
|
22
|
-
|
27
|
+
## 1.7.4 - 7-Sep-2015
|
23
28
|
* This gem is now signed.
|
24
29
|
* Rakefile now assumes Rubygems 2.x for some tasks.
|
25
30
|
|
26
|
-
|
31
|
+
## 1.7.3 - 24-Apr-2014
|
27
32
|
* The basename and dirname methods now return Pathname objects.
|
28
33
|
|
29
|
-
|
34
|
+
## 1.7.2 - 23-Apr-2014
|
30
35
|
* The join and expand_path methods now return Pathname objects.
|
31
36
|
|
32
|
-
|
37
|
+
## 1.7.1 - 28-Mar-2014
|
33
38
|
* Updated gemspec for Windows vs Unix.
|
34
39
|
* Updated README and MANIFEST.
|
35
40
|
|
36
|
-
|
41
|
+
## 1.7.0 - 28-Mar-2014
|
37
42
|
* Windows now uses FFI internally instead of win32-api.
|
38
43
|
* Added a custom pretty_print method for the pp library.
|
39
44
|
* Reorganized the test suite for Windows, and added many
|
40
45
|
more test tasks to the Rakefile.
|
41
46
|
|
42
|
-
|
47
|
+
## 1.6.5 - 19-Sep-2011
|
43
48
|
* Added the String#to_path instance method. This returns a Pathname
|
44
49
|
object.
|
45
50
|
* The architecture for the Windows gem is now "universal", and some
|
46
51
|
gemspec dependencies were simplified.
|
47
52
|
|
48
|
-
|
53
|
+
## 1.6.4 - 20-Jan-2011
|
49
54
|
* Explicitly remove the Pathname const if it is already defined in order
|
50
55
|
to avoid a superclass mismatch error. This library assumes that if you
|
51
56
|
require pathname2, you want my version of the Pathname class.
|
@@ -54,13 +59,13 @@
|
|
54
59
|
* Some Rakefile and gemspec tweaks.
|
55
60
|
* Some updates to the test suite, including some specifically for Windows 7.
|
56
61
|
|
57
|
-
|
62
|
+
## 1.6.3 - 2-Oct-2009
|
58
63
|
* Updated Windows platform handling code to include mingw and cygwin.
|
59
64
|
* Added the :gem rake task.
|
60
65
|
* Minor gemspec updates.
|
61
66
|
* Some minor test suite updates.
|
62
67
|
|
63
|
-
|
68
|
+
## 1.6.2 - 4-Aug-2009
|
64
69
|
* Now compatible with Ruby 1.9.x.
|
65
70
|
* License changed to Artistic 2.0.
|
66
71
|
* Added the Pathname.pwd method as a synonym for Pathname.new(Dir.pwd).
|
@@ -70,14 +75,14 @@
|
|
70
75
|
* Now compatible with Ruby 1.9.x.
|
71
76
|
* Bumped required version of the facade library to 1.0.4.
|
72
77
|
|
73
|
-
|
78
|
+
## 1.6.1 - 8-Nov-2008
|
74
79
|
* Added the Pathname#[] method, which accepts an index, an index plus a
|
75
80
|
length, or a range, and returns appropriate the path element(s).
|
76
81
|
* Refactoring the platform checking in the test suite to use rbconfig instead
|
77
82
|
of RUBY_PLATFORM.
|
78
83
|
* More inline documentation examples.
|
79
84
|
|
80
|
-
|
85
|
+
## 1.6.0 - 13-July-2008
|
81
86
|
* The facade for ftools (and ftools itself) has been removed. The ftools
|
82
87
|
library is deprecated in favor of FileUtils.
|
83
88
|
* PathnameError is now Pathname::Error.
|
@@ -90,7 +95,7 @@
|
|
90
95
|
* Changed platform checking to use rbconfig instead of RUBY_PLATFORM to avoid
|
91
96
|
potential issues with other Ruby implementation.
|
92
97
|
|
93
|
-
|
98
|
+
## 1.5.2 - 9-Mar-2007
|
94
99
|
* Bug fix for the Pathname#realpath method where it was not handling recursive
|
95
100
|
symlinks. The C version was also fixed, but it only affected platforms that
|
96
101
|
don't have the realpath() function.
|
@@ -102,7 +107,7 @@
|
|
102
107
|
* Added a Rakefile. You can now build, clean, and test and install (both the
|
103
108
|
pure Ruby and C versions).
|
104
109
|
|
105
|
-
|
110
|
+
## 1.5.1 - 28-Aug-2006
|
106
111
|
* Added the Kernel#pn method as a shortcut for Pathname.new.
|
107
112
|
* The Pathname#readlink now properly handles symbolic links. The 'fix'
|
108
113
|
from 1.4.4 did not work.
|
@@ -111,33 +116,33 @@
|
|
111
116
|
* Added the '/' alias for '+'. So, p1 / p2 is the same as p1 + p2.
|
112
117
|
* The windows-pr package is now required on MS Windows.
|
113
118
|
|
114
|
-
|
119
|
+
## 1.5.0 - 17-Apr-2006
|
115
120
|
* Better subclass handling, in that some methods that previously returned
|
116
121
|
hardcoded Pathname.new now return self.class.new.
|
117
122
|
* File URL's are now handled on Unix as well (using the 'uri' package).
|
118
123
|
* Some comment changes/clarifications.
|
119
124
|
* Added the PathnameError class to the pure Ruby version.
|
120
125
|
|
121
|
-
|
126
|
+
## 1.4.4 - 23-Mar-2006
|
122
127
|
* If the path is a symbolic link the Pathname#realpath method
|
123
128
|
now returns the absolute path of that link, i.e. the result
|
124
129
|
of File.readlink (as a Pathname object).
|
125
130
|
|
126
|
-
|
131
|
+
## 1.4.3 - 3-Mar-2006
|
127
132
|
* Added the Pathname#realpath method.
|
128
133
|
|
129
|
-
|
134
|
+
## 1.4.2 - 22-Feb-2006
|
130
135
|
* Fixed the Pathname#relative_path_from method for Windows. This really only
|
131
136
|
affected edge cases that you probably never saw anyway.
|
132
137
|
* Added corresponding tests for Windows.
|
133
138
|
|
134
|
-
|
139
|
+
## 1.4.1 - 18-Feb-2006
|
135
140
|
* Added the Pathname#parent method.
|
136
141
|
* Added the Pathname#relative_path_from method.
|
137
142
|
* Bug fix for Pathname#pstrip on *nix.
|
138
143
|
* Corresponding test suite additions.
|
139
144
|
|
140
|
-
|
145
|
+
## 1.4.0 - 19-Dec-2005
|
141
146
|
* Added destructive and non-destructive methods for some methods - pstrip,
|
142
147
|
pstrip!, undecorate, undecorate!, clean and clean!.
|
143
148
|
* Added a C extension version of this package. You can use the C version
|
@@ -151,26 +156,26 @@
|
|
151
156
|
* Added the bench_pathname.rb script to let you benchmark all Pathname
|
152
157
|
methods.
|
153
158
|
|
154
|
-
|
159
|
+
## 1.3.1 - 21-Nov-2005
|
155
160
|
* Added the Pathname#children method.
|
156
161
|
* Added tests for the Pathname#children method.
|
157
162
|
|
158
|
-
|
163
|
+
## 1.3.0 - 28-Oct-2005
|
159
164
|
* Added the short_path and long_path methods for MS Windows.
|
160
165
|
* Optimization for the '+' method on Unix.
|
161
166
|
* Added some examples under the 'examples' directory.
|
162
167
|
* More tests added and some minor changes to the test suite in general.
|
163
168
|
|
164
|
-
|
169
|
+
## 1.2.1 - 1-Sep-2005
|
165
170
|
* Bug fix for the ascend and descend methods wrt Windows and UNC paths.
|
166
171
|
* More tests added for ascend and descend methods.
|
167
172
|
|
168
|
-
|
173
|
+
## 1.2.0 - 29-Aug-2005
|
169
174
|
* Added the 'ascend' and 'descend' methods.
|
170
175
|
* Added corresponding test suite additions.
|
171
176
|
|
172
|
-
|
177
|
+
## 1.1.0 - 13-Jul-2005
|
173
178
|
* Added the 'find' facade.
|
174
179
|
|
175
|
-
|
180
|
+
## 1.0.0 - 11-Jun-2005
|
176
181
|
* Initial release
|
data/Gemfile
ADDED
data/{MANIFEST → MANIFEST.md}
RENAMED
data/README.md
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
## Description
|
2
|
+
A drop-in replacement for the current Pathname class.
|
3
|
+
|
4
|
+
## Prerequisites
|
5
|
+
* facade
|
6
|
+
* ffi (Windows only)
|
7
|
+
* test-unit (testing only)
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
`gem install pathname2`
|
11
|
+
|
12
|
+
## Synopsis
|
13
|
+
```ruby
|
14
|
+
require 'pathname2'
|
15
|
+
|
16
|
+
# Unix
|
17
|
+
path1 = Pathname.new("/foo/bar/baz")
|
18
|
+
path2 = Pathname.new("../zap")
|
19
|
+
|
20
|
+
path1 + path2 # "/foo/bar/zap"
|
21
|
+
path1 / path2 # "/foo/bar/zap" (same as +)
|
22
|
+
path1.exists? # Does this path exist?
|
23
|
+
path1.dirname # "/foo/bar"
|
24
|
+
path1.to_a # ['foo','bar','baz']
|
25
|
+
|
26
|
+
# Windows
|
27
|
+
path1 = Pathname.new("C:/foo/bar/baz")
|
28
|
+
path2 = Pathname.new("../zap")
|
29
|
+
|
30
|
+
path1 + path2 # "C:\\foo\\bar\\zap"
|
31
|
+
path1.root # "C:\\"
|
32
|
+
path1.to_a # ['C:','foo','bar','baz']
|
33
|
+
```
|
34
|
+
|
35
|
+
## Windows Notes
|
36
|
+
All forward slashes are converted to backslashes for Pathname objects.
|
37
|
+
|
38
|
+
## Differences between Unix and Windows
|
39
|
+
If your pathname consists solely of ".", or "..", the return
|
40
|
+
value for Pathname#clean will be different. On Win32, "\\" is returned,
|
41
|
+
while on Unix "." is returned. I consider this an extreme edge case and
|
42
|
+
will not worry myself with it.
|
43
|
+
|
44
|
+
## Differences between Pathname in the standard library and this version
|
45
|
+
* It is a subclass of String (and thus, mixes in Enumerable).
|
46
|
+
* It has sensical `to_a` and `root` instance methods.
|
47
|
+
* It works on Windows and Unix. The current implementation does not work
|
48
|
+
with Windows path names very well, and not at all when it comes to UNC
|
49
|
+
paths.
|
50
|
+
* The `Pathname#cleanpath` method works differently - it always returns
|
51
|
+
a canonical pathname. In addition, there is no special consideration
|
52
|
+
for symlinks (yet), though I'm not sure it warrants it.
|
53
|
+
* The `Pathname#+` method auto cleans.
|
54
|
+
* It uses a facade for all File and Dir methods, as well as most FileUtils
|
55
|
+
methods.
|
56
|
+
* `Pathname#clean` works slightly differently. In the stdlib version,
|
57
|
+
`Pathname#clean("../a")` returns "../a". In this version, it returns "a".
|
58
|
+
This affects other methods, such as `Pathname#relative_path_from`.
|
59
|
+
* Accepts file urls and converts them to paths automatically, e.g.
|
60
|
+
file:///foo%20bar/baz becomes '/foo/bar/baz'.
|
61
|
+
* Adds a Kernel level `pn` method as a shortcut.
|
62
|
+
* Allows you to add paths together with the '/' operator.
|
63
|
+
|
64
|
+
## Method Priority
|
65
|
+
Because there is some overlap in method names between File, Dir, and
|
66
|
+
FileUtils, the priority is as follows:
|
67
|
+
|
68
|
+
* File
|
69
|
+
* Dir
|
70
|
+
* FileUtils
|
71
|
+
|
72
|
+
In other words, whichever of these defines a given method first is the
|
73
|
+
method that is used by the pathname2 library.
|
74
|
+
|
75
|
+
## Known Issues
|
76
|
+
On MS Windows, some methods may not work on pathnames greater than 260
|
77
|
+
characters because of internal function limitations.
|
78
|
+
|
79
|
+
Any issues you find should be reported on the project page at
|
80
|
+
https://github.com/djberg96/pathname2
|
81
|
+
|
82
|
+
## Future Plans
|
83
|
+
None at this time. Suggestions welcome.
|
84
|
+
|
85
|
+
## License
|
86
|
+
Apache-2.0
|
87
|
+
|
88
|
+
## Copyright
|
89
|
+
(C) 2003-2021 Daniel J. Berger
|
90
|
+
All rights reserved.
|
91
|
+
|
92
|
+
## Warranty
|
93
|
+
This library is provided "as is" and without any express or
|
94
|
+
implied warranties, including, without limitation, the implied
|
95
|
+
warranties of merchantability and fitness for a particular purpose.
|
96
|
+
|
97
|
+
## Author
|
98
|
+
Daniel J. Berger
|
data/Rakefile
CHANGED
data/lib/pathname2.rb
CHANGED
@@ -64,10 +64,10 @@ class Pathname < String
|
|
64
64
|
:chdir, :entries, :glob, :foreach, :mkdir, :open, :children
|
65
65
|
]
|
66
66
|
|
67
|
-
private
|
68
|
-
|
69
67
|
alias :_plus_ :+ # Used to prevent infinite loops in some cases
|
70
68
|
|
69
|
+
protected :_plus_
|
70
|
+
|
71
71
|
if File::ALT_SEPARATOR
|
72
72
|
extend FFI::Library
|
73
73
|
ffi_lib :shlwapi
|
@@ -88,12 +88,17 @@ class Pathname < String
|
|
88
88
|
|
89
89
|
attach_function :GetLongPathNameW, [:buffer_in, :buffer_out, :ulong], :ulong
|
90
90
|
attach_function :GetShortPathNameW, [:buffer_in, :pointer, :ulong], :ulong
|
91
|
+
|
92
|
+
private_class_method :PathAppendW, :PathCanonicalizeW, :PathCreateFromUrlW
|
93
|
+
private_class_method :PathGetDriveNumberW, :PathIsRelativeW, :PathIsRelativeW
|
94
|
+
private_class_method :PathIsRootW, :PathIsUNCW, :PathIsURLW, :PathRemoveBackslashW
|
95
|
+
private_class_method :PathStripToRootW, :PathUndecorateW, :GetLongPathNameW, :GetShortPathNameW
|
91
96
|
end
|
92
97
|
|
93
98
|
public
|
94
99
|
|
95
100
|
# The version of the pathname2 library
|
96
|
-
VERSION = '1.8.
|
101
|
+
VERSION = '1.8.4'.freeze
|
97
102
|
|
98
103
|
# The maximum length of a path
|
99
104
|
MAXPATH = 1024 unless defined? MAXPATH # Yes, I willfully violate POSIX
|
@@ -809,7 +814,7 @@ class Pathname < String
|
|
809
814
|
raise ArgumentError if level < 0
|
810
815
|
local_path = self.dup
|
811
816
|
|
812
|
-
level.times{
|
817
|
+
level.times{ local_path = File.dirname(local_path) }
|
813
818
|
self.class.new(local_path)
|
814
819
|
end
|
815
820
|
|
@@ -854,8 +859,8 @@ class Pathname < String
|
|
854
859
|
# If +self+ is ".", yielded pathnames begin with a filename in the current
|
855
860
|
# current directory, not ".".
|
856
861
|
#
|
857
|
-
def find
|
858
|
-
require
|
862
|
+
def find
|
863
|
+
require 'find'
|
859
864
|
if self == "."
|
860
865
|
Find.find(self){ |f| yield self.class.new(f.sub(%r{\A\./}, '')) }
|
861
866
|
else
|
@@ -1119,11 +1124,13 @@ module Kernel
|
|
1119
1124
|
instance_eval{ Pathname.new(yield) }
|
1120
1125
|
end
|
1121
1126
|
|
1127
|
+
# rubocop:disable Lint/ShadowedException
|
1122
1128
|
begin
|
1123
1129
|
remove_method(:Pathname)
|
1124
1130
|
rescue NoMethodError, NameError
|
1125
1131
|
# Do nothing, not defined.
|
1126
1132
|
end
|
1133
|
+
# rubocop:enable Lint/ShadowedException
|
1127
1134
|
|
1128
1135
|
# Synonym for Pathname.new
|
1129
1136
|
#
|
data/pathname2.gemspec
CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'pathname2'
|
5
|
-
spec.version = '1.8.
|
5
|
+
spec.version = '1.8.4'
|
6
6
|
spec.author = 'Daniel J. Berger'
|
7
7
|
spec.license = 'Apache-2.0'
|
8
8
|
spec.email = 'djberg96@gmail.com'
|
@@ -11,8 +11,6 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
|
12
12
|
spec.cert_chain = ['certs/djberg96_pub.pem']
|
13
13
|
|
14
|
-
spec.extra_rdoc_files = ['README', 'CHANGES', 'MANIFEST']
|
15
|
-
|
16
14
|
spec.add_dependency('facade')
|
17
15
|
spec.add_development_dependency('test-unit')
|
18
16
|
spec.add_development_dependency('rake')
|
@@ -20,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
20
18
|
spec.metadata = {
|
21
19
|
'homepage_uri' => 'https://github.com/djberg96/pathname2',
|
22
20
|
'bug_tracker_uri' => 'https://github.com/djberg96/pathname2/issues',
|
23
|
-
'changelog_uri' => 'https://github.com/djberg96/pathname2/blob/ffi/CHANGES',
|
21
|
+
'changelog_uri' => 'https://github.com/djberg96/pathname2/blob/ffi/CHANGES.md',
|
24
22
|
'documentation_uri' => 'https://github.com/djberg96/pathname2/wiki',
|
25
23
|
'source_code_uri' => 'https://github.com/djberg96/pathname2',
|
26
24
|
'wiki_uri' => 'https://github.com/djberg96/pathname2/wiki'
|
@@ -28,10 +26,10 @@ Gem::Specification.new do |spec|
|
|
28
26
|
|
29
27
|
if File::ALT_SEPARATOR
|
30
28
|
spec.add_dependency('ffi')
|
31
|
-
spec.test_files =
|
29
|
+
spec.test_files = Dir['test/windows/*.rb', 'test/test_version.rb']
|
32
30
|
spec.platform = Gem::Platform.new(['universal', 'mingw32'])
|
33
31
|
else
|
34
|
-
spec.test_files =
|
32
|
+
spec.test_files = Dir['test/test_pathname.rb', 'test/test_version.rb']
|
35
33
|
end
|
36
34
|
|
37
35
|
spec.description = <<-EOF
|
data/test/test_version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pathname2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.4
|
5
5
|
platform: universal-mingw32
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
@@ -104,26 +104,26 @@ description: |2
|
|
104
104
|
email: djberg96@gmail.com
|
105
105
|
executables: []
|
106
106
|
extensions: []
|
107
|
-
extra_rdoc_files:
|
108
|
-
- README
|
109
|
-
- CHANGES
|
110
|
-
- MANIFEST
|
107
|
+
extra_rdoc_files: []
|
111
108
|
files:
|
112
109
|
- benchmarks
|
113
110
|
- benchmarks/bench_pathname.rb
|
114
111
|
- benchmarks/bench_plus.rb
|
115
112
|
- certs
|
116
113
|
- certs/djberg96_pub.pem
|
117
|
-
- CHANGES
|
114
|
+
- CHANGES.md
|
118
115
|
- examples
|
119
116
|
- examples/example_pathname.rb
|
117
|
+
- Gemfile
|
120
118
|
- lib
|
121
119
|
- lib/pathname2.rb
|
122
120
|
- LICENSE
|
123
|
-
- MANIFEST
|
121
|
+
- MANIFEST.md
|
124
122
|
- pathname2.gemspec
|
125
123
|
- Rakefile
|
126
|
-
- README
|
124
|
+
- README.md
|
125
|
+
- spec
|
126
|
+
- spec/unix
|
127
127
|
- test
|
128
128
|
- test/test_pathname.rb
|
129
129
|
- test/test_version.rb
|
@@ -162,7 +162,7 @@ licenses:
|
|
162
162
|
metadata:
|
163
163
|
homepage_uri: https://github.com/djberg96/pathname2
|
164
164
|
bug_tracker_uri: https://github.com/djberg96/pathname2/issues
|
165
|
-
changelog_uri: https://github.com/djberg96/pathname2/blob/ffi/CHANGES
|
165
|
+
changelog_uri: https://github.com/djberg96/pathname2/blob/ffi/CHANGES.md
|
166
166
|
documentation_uri: https://github.com/djberg96/pathname2/wiki
|
167
167
|
source_code_uri: https://github.com/djberg96/pathname2
|
168
168
|
wiki_uri: https://github.com/djberg96/pathname2/wiki
|
metadata.gz.sig
CHANGED
Binary file
|
data/README
DELETED
@@ -1,97 +0,0 @@
|
|
1
|
-
== Description
|
2
|
-
A drop-in replacement for the current Pathname class.
|
3
|
-
|
4
|
-
== Prerequisites
|
5
|
-
* facade
|
6
|
-
* ffi (Windows only)
|
7
|
-
* test-unit (testing only)
|
8
|
-
|
9
|
-
== Installation
|
10
|
-
|
11
|
-
gem install pathname2
|
12
|
-
|
13
|
-
== Synopsis
|
14
|
-
require 'pathname2'
|
15
|
-
|
16
|
-
# Unix
|
17
|
-
path1 = Pathname.new("/foo/bar/baz")
|
18
|
-
path2 = Pathname.new("../zap")
|
19
|
-
|
20
|
-
path1 + path2 # "/foo/bar/zap"
|
21
|
-
path1 / path2 # "/foo/bar/zap" (same as +)
|
22
|
-
path1.exists? # Does this path exist?
|
23
|
-
path1.dirname # "/foo/bar"
|
24
|
-
path1.to_a # ['foo','bar','baz']
|
25
|
-
|
26
|
-
# Windows
|
27
|
-
path1 = Pathname.new("C:/foo/bar/baz")
|
28
|
-
path2 = Pathname.new("../zap")
|
29
|
-
|
30
|
-
path1 + path2 # "C:\\foo\\bar\\zap"
|
31
|
-
path1.root # "C:\\"
|
32
|
-
path1.to_a # ['C:','foo','bar','baz']
|
33
|
-
|
34
|
-
== Windows Notes
|
35
|
-
All forward slashes are converted to backslashes for Pathname objects.
|
36
|
-
|
37
|
-
== Differences between Unix and Windows
|
38
|
-
If your pathname consists solely of ".", or "..", the return
|
39
|
-
value for Pathname#clean will be different. On Win32, "\\" is returned,
|
40
|
-
while on Unix "." is returned. I consider this an extreme edge case and
|
41
|
-
will not worry myself with it.
|
42
|
-
|
43
|
-
== Differences between Pathname in the standard library and this version
|
44
|
-
* It is a subclass of String (and thus, mixes in Enumerable).
|
45
|
-
* It has sensical to_a and root instance methods.
|
46
|
-
* It works on Windows and Unix. The current implementation does not work
|
47
|
-
with Windows path names very well, and not at all when it comes to UNC
|
48
|
-
paths.
|
49
|
-
* The Pathname#cleanpath method works differently - it always returns
|
50
|
-
a canonical pathname. In addition, there is no special consideration
|
51
|
-
for symlinks (yet), though I'm not sure it warrants it.
|
52
|
-
* The Pathname#+ method auto cleans.
|
53
|
-
* It uses a facade for all File and Dir methods, as well as most FileUtils
|
54
|
-
methods.
|
55
|
-
* Pathname#clean works slightly differently. In the stdlib version,
|
56
|
-
Pathname#clean("../a") returns "../a". In this version, it returns "a".
|
57
|
-
This affects other methods, such as Pathname#relative_path_from.
|
58
|
-
* Accepts file urls and converts them to paths automatically, e.g.
|
59
|
-
file:///foo%20bar/baz becomes '/foo/bar/baz'.
|
60
|
-
* Adds a Kernel level +pn+ method as a shortcut.
|
61
|
-
* Allows you to add paths together with the '/' operator.
|
62
|
-
|
63
|
-
== Method Priority
|
64
|
-
Because there is some overlap in method names between File, Dir, and
|
65
|
-
FileUtils, the priority is as follows:
|
66
|
-
|
67
|
-
* File
|
68
|
-
* Dir
|
69
|
-
* FileUtils
|
70
|
-
|
71
|
-
In other words, whichever of these defines a given method first is the
|
72
|
-
method that is used by the pathname2 library.
|
73
|
-
|
74
|
-
== Known Issues
|
75
|
-
On MS Windows, some methods may not work on pathnames greater than 260
|
76
|
-
characters because of internal function limitations.
|
77
|
-
|
78
|
-
Any issues you find should be reported on the project page at
|
79
|
-
https://github.com/djberg96/pathname2
|
80
|
-
|
81
|
-
== Future Plans
|
82
|
-
Suggestions welcome.
|
83
|
-
|
84
|
-
== License
|
85
|
-
Apache-2.0
|
86
|
-
|
87
|
-
== Copyright
|
88
|
-
(C) 2003-2020 Daniel J. Berger
|
89
|
-
All rights reserved.
|
90
|
-
|
91
|
-
== Warranty
|
92
|
-
This library is provided "as is" and without any express or
|
93
|
-
implied warranties, including, without limitation, the implied
|
94
|
-
warranties of merchantability and fitness for a particular purpose.
|
95
|
-
|
96
|
-
== Author
|
97
|
-
Daniel J. Berger
|