pathname2 1.8.3-universal-mingw32 → 1.8.4-universal-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- 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
|