pathutil 0.12.0 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pathutil.rb +42 -11
- data/lib/pathutil/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 998b0160c81f9d70824ce3ee6bee7bc6021bdbb1
|
4
|
+
data.tar.gz: 7920dceb659c96586f4e74c39185a14a9e802deb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90d19782deb8cf0a436d6cc595a21d4e705f4fbfe32dfb20b7cbc4a518fe817f0f7c7117a3a5ed03dc39b20ed09aa96ca708716a845be448bbed4f18e0ed1479
|
7
|
+
data.tar.gz: af99f3f934c28c2770f2feab2cdfc59c77512fc9a064edca968cca3474d10257dff75a2a40ad7ef17dc39ae5d0fd0b7b122c82765dba31ae60c20aa4ed487beb
|
data/lib/pathutil.rb
CHANGED
@@ -22,6 +22,28 @@ class Pathutil
|
|
22
22
|
return @path = path.to_s
|
23
23
|
end
|
24
24
|
|
25
|
+
# --
|
26
|
+
# Make a path relative.
|
27
|
+
# --
|
28
|
+
|
29
|
+
def relative
|
30
|
+
return self if relative?
|
31
|
+
self.class.new(strip_windows_drive.gsub(
|
32
|
+
%r!\A(\\+|/+)!, ""
|
33
|
+
))
|
34
|
+
end
|
35
|
+
|
36
|
+
# --
|
37
|
+
# Make a path absolute
|
38
|
+
# --
|
39
|
+
|
40
|
+
def absolute
|
41
|
+
return self if absolute?
|
42
|
+
self.class.new("/").join(
|
43
|
+
@path
|
44
|
+
)
|
45
|
+
end
|
46
|
+
|
25
47
|
# --
|
26
48
|
# @see Pathname#cleanpath.
|
27
49
|
# @note This is a wholesale rip and cleanup of Pathname#cleanpath
|
@@ -172,7 +194,9 @@ class Pathutil
|
|
172
194
|
# @return true|false
|
173
195
|
# --
|
174
196
|
def absolute?
|
175
|
-
|
197
|
+
return !!(
|
198
|
+
@path =~ %r!\A(?:[A-Za-z]:)?(?:\\+|/+)!
|
199
|
+
)
|
176
200
|
end
|
177
201
|
|
178
202
|
# --
|
@@ -417,15 +441,10 @@ class Pathutil
|
|
417
441
|
# @return Pathutil
|
418
442
|
# --
|
419
443
|
def enforce_root(root)
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
else
|
425
|
-
Pathutil.new(File.join(
|
426
|
-
root, curr
|
427
|
-
))
|
428
|
-
end
|
444
|
+
return self if in_path?(root)
|
445
|
+
self.class.new(root).join(
|
446
|
+
self
|
447
|
+
)
|
429
448
|
end
|
430
449
|
|
431
450
|
# --
|
@@ -577,6 +596,16 @@ class Pathutil
|
|
577
596
|
))
|
578
597
|
end
|
579
598
|
|
599
|
+
# --
|
600
|
+
# Strips the windows drive from the path.
|
601
|
+
# --
|
602
|
+
|
603
|
+
def strip_windows_drive(path = @path)
|
604
|
+
self.class.new(path.gsub(
|
605
|
+
%r!\A[A-Za-z]:(?:\\+|/+)!, ""
|
606
|
+
))
|
607
|
+
end
|
608
|
+
|
580
609
|
# --
|
581
610
|
# rubocop:disable Metrics/AbcSize
|
582
611
|
# rubocop:disable Metrics/CyclomaticComplexity
|
@@ -625,7 +654,8 @@ class Pathutil
|
|
625
654
|
|
626
655
|
return self.class.new("/") if _out == [""].freeze
|
627
656
|
return self.class.new(".") if _out.empty? && (end_with?(".") || relative?)
|
628
|
-
return self.class.new(_out.join("/")).join("") if @path =~ %r!/\z!
|
657
|
+
return self.class.new(_out.join("/")).join("") if @path =~ %r!/\z! \
|
658
|
+
&& _out.last != "." && _out.last != ".."
|
629
659
|
self.class.new(_out.join("/"))
|
630
660
|
end
|
631
661
|
|
@@ -868,6 +898,7 @@ class Pathutil
|
|
868
898
|
alias make_symlink symlink
|
869
899
|
alias cleanpath_conservative conservative_cleanpath
|
870
900
|
alias cleanpath_aggressive aggressive_cleanpath
|
901
|
+
alias prepend enforce_root
|
871
902
|
alias fnmatch fnmatch?
|
872
903
|
alias make_link link
|
873
904
|
alias first dirname
|
data/lib/pathutil/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pathutil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordon Bedwell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: forwardable-extended
|