path_expander 1.0.2 → 1.1.1
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 +5 -5
- checksums.yaml.gz.sig +0 -0
- data/History.rdoc +30 -1
- data/lib/path_expander.rb +29 -7
- data/test/test_path_expander.rb +30 -1
- data.tar.gz.sig +0 -0
- metadata +28 -23
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 95157151cd3523ba3bcd9ca1668dbfa436e87b9dfabb3431ca218ea66571c436
|
4
|
+
data.tar.gz: b0714ed15b27ae4b4dc16f1f87ec20dd2732299ffbadff80b9e51ba004855ef6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c53f545816dc9c6341c1bddfede9b4ef137e64100dd4883df1ee7bf81d4df2adf91f78fabfa2ce431d1f85c03d65941dadd6e1e8b50de6f27ab9a63724da1398
|
7
|
+
data.tar.gz: 017eb994f9a635e8b780d326a364cae4fc82fd3852cd792c8819ccb9550539b14f49fc01a68b076a7fb367a7e6020099b7dfb9d6f5134cc33cb464ea13fabf9d
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,33 @@
|
|
1
|
+
=== 1.1.1 / 2022-07-03
|
2
|
+
|
3
|
+
* 1 bug fix:
|
4
|
+
|
5
|
+
* Process plain '-' as a file, not an option.
|
6
|
+
|
7
|
+
=== 1.1.0 / 2019-09-22
|
8
|
+
|
9
|
+
* 1 minor enhancement:
|
10
|
+
|
11
|
+
* Added a default path (default: ".") to scan if no files are initially found.
|
12
|
+
|
13
|
+
=== 1.0.5 / 2019-09-14
|
14
|
+
|
15
|
+
* 1 bug fix:
|
16
|
+
|
17
|
+
* Fixed a deprecation warning from File.exists?
|
18
|
+
|
19
|
+
=== 1.0.4 / 2019-05-26
|
20
|
+
|
21
|
+
* 1 bug fix:
|
22
|
+
|
23
|
+
* Sorted the output from expand_dirs_to_files. (deivid-rodriguez)
|
24
|
+
|
25
|
+
=== 1.0.3 / 2018-03-16
|
26
|
+
|
27
|
+
* 1 bug fix:
|
28
|
+
|
29
|
+
* Don't process files if path expands to root directory. Prevents -n /./ from hanging.
|
30
|
+
|
1
31
|
=== 1.0.2 / 2017-05-09
|
2
32
|
|
3
33
|
* 1 bug fix:
|
@@ -15,4 +45,3 @@
|
|
15
45
|
* 1 major enhancement
|
16
46
|
|
17
47
|
* Birthday!
|
18
|
-
|
data/lib/path_expander.rb
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
# PathExpander.
|
14
14
|
|
15
15
|
class PathExpander
|
16
|
-
VERSION = "1.
|
16
|
+
VERSION = "1.1.1" # :nodoc:
|
17
17
|
|
18
18
|
##
|
19
19
|
# The args array to process.
|
@@ -25,13 +25,20 @@ class PathExpander
|
|
25
25
|
|
26
26
|
attr_accessor :glob
|
27
27
|
|
28
|
+
##
|
29
|
+
# The path to scan if no paths are found in the initial scan.
|
30
|
+
|
31
|
+
attr_accessor :path
|
32
|
+
|
28
33
|
##
|
29
34
|
# Create a new path expander that operates on args and expands via
|
30
|
-
# glob as necessary.
|
35
|
+
# glob as necessary. Takes an optional +path+ arg to fall back on if
|
36
|
+
# no paths are found on the initial scan (see #process_args).
|
31
37
|
|
32
|
-
def initialize args, glob
|
38
|
+
def initialize args, glob, path = "."
|
33
39
|
self.args = args
|
34
40
|
self.glob = glob
|
41
|
+
self.path = path
|
35
42
|
end
|
36
43
|
|
37
44
|
##
|
@@ -46,7 +53,7 @@ class PathExpander
|
|
46
53
|
else
|
47
54
|
p
|
48
55
|
end
|
49
|
-
}.flatten
|
56
|
+
}.flatten.sort
|
50
57
|
end
|
51
58
|
|
52
59
|
##
|
@@ -67,28 +74,40 @@ class PathExpander
|
|
67
74
|
# -not_a_path :: Add to flags to be processed.
|
68
75
|
# dir_path :: Expand and add to files to be processed.
|
69
76
|
# file_path :: Add to files to be processed.
|
77
|
+
# - :: Add "-" (stdin) to files to be processed.
|
70
78
|
#
|
71
79
|
# See expand_dirs_to_files for details on how expansion occurs.
|
72
80
|
#
|
73
81
|
# Subtraction happens last, regardless of argument ordering.
|
82
|
+
#
|
83
|
+
# If no files are found (which is not the same as having an empty
|
84
|
+
# file list after subtraction), then fall back to expanding on the
|
85
|
+
# default #path given to initialize.
|
74
86
|
|
75
87
|
def process_args
|
76
88
|
pos_files = []
|
77
89
|
neg_files = []
|
78
90
|
flags = []
|
91
|
+
clean = true
|
79
92
|
|
80
93
|
args.each do |arg|
|
81
94
|
case arg
|
82
95
|
when /^@(.*)/ then # push back on, so they can have dirs/-/@ as well
|
96
|
+
clean = false
|
83
97
|
args.concat process_file $1
|
98
|
+
when "-" then
|
99
|
+
pos_files << arg
|
84
100
|
when /^-(.*)/ then
|
85
101
|
if File.exist? $1 then
|
102
|
+
clean = false
|
86
103
|
neg_files += expand_dirs_to_files($1)
|
87
104
|
else
|
88
105
|
flags << arg
|
89
106
|
end
|
90
107
|
else
|
91
|
-
|
108
|
+
root_path = File.expand_path(arg) == "/" # eg: -n /./
|
109
|
+
if File.exist? arg and not root_path then
|
110
|
+
clean = false
|
92
111
|
pos_files += expand_dirs_to_files(arg)
|
93
112
|
else
|
94
113
|
flags << arg
|
@@ -96,7 +115,10 @@ class PathExpander
|
|
96
115
|
end
|
97
116
|
end
|
98
117
|
|
99
|
-
|
118
|
+
files = pos_files - neg_files
|
119
|
+
files += expand_dirs_to_files(self.path) if files.empty? && clean
|
120
|
+
|
121
|
+
[files, flags]
|
100
122
|
end
|
101
123
|
|
102
124
|
##
|
@@ -143,7 +165,7 @@ class PathExpander
|
|
143
165
|
def filter_files files, ignore
|
144
166
|
ignore_paths = if ignore.respond_to? :read then
|
145
167
|
ignore.read
|
146
|
-
elsif File.
|
168
|
+
elsif File.exist? ignore then
|
147
169
|
File.read ignore
|
148
170
|
end
|
149
171
|
|
data/test/test_path_expander.rb
CHANGED
@@ -24,7 +24,7 @@ class TestPathExpander < Minitest::Test
|
|
24
24
|
def assert_process_args exp_files, exp_args, *args
|
25
25
|
expander.args.concat args
|
26
26
|
|
27
|
-
assert_equal [exp_files, exp_args], expander.process_args
|
27
|
+
assert_equal [exp_files.sort, exp_args], expander.process_args
|
28
28
|
end
|
29
29
|
|
30
30
|
def test_expand_dirs_to_files
|
@@ -34,6 +34,14 @@ class TestPathExpander < Minitest::Test
|
|
34
34
|
assert_equal %w[Rakefile], expander.expand_dirs_to_files("Rakefile")
|
35
35
|
end
|
36
36
|
|
37
|
+
def test_expand_dirs_to_files_sorting
|
38
|
+
exp = %w[test/test_bad.rb test/test_path_expander.rb]
|
39
|
+
input = %w[test/test_path_expander.rb test/test_bad.rb]
|
40
|
+
|
41
|
+
assert_equal exp, expander.expand_dirs_to_files(*input)
|
42
|
+
assert_equal %w[Rakefile], expander.expand_dirs_to_files("Rakefile")
|
43
|
+
end
|
44
|
+
|
37
45
|
def test_filter_files_dir
|
38
46
|
assert_filter_files [], "test/"
|
39
47
|
assert_filter_files_absolute_paths [], "test/"
|
@@ -142,6 +150,27 @@ class TestPathExpander < Minitest::Test
|
|
142
150
|
"42")
|
143
151
|
end
|
144
152
|
|
153
|
+
def test_process_args_root
|
154
|
+
assert_process_args(%w[],
|
155
|
+
%w[-n /./],
|
156
|
+
"-n",
|
157
|
+
"/./")
|
158
|
+
end
|
159
|
+
|
160
|
+
def test_process_args_no_files
|
161
|
+
self.expander = PathExpander.new args, "*.rb", "test" # extra test default
|
162
|
+
|
163
|
+
assert_process_args(%w[test/test_bad.rb test/test_path_expander.rb],
|
164
|
+
%w[-v],
|
165
|
+
"-v")
|
166
|
+
end
|
167
|
+
|
168
|
+
def test_process_args_dash
|
169
|
+
assert_process_args(%w[-],
|
170
|
+
%w[-v],
|
171
|
+
"-", "-v")
|
172
|
+
end
|
173
|
+
|
145
174
|
def test_process_flags
|
146
175
|
exp = %w[a b c]
|
147
176
|
act = expander.process_flags %w[a b c]
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: path_expander
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBBjANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
15
|
+
GRYDY29tMB4XDTIxMTIyMzIzMTkwNFoXDTIyMTIyMzIzMTkwNFowRTETMBEGA1UE
|
16
16
|
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
17
17
|
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
18
18
|
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
@@ -20,46 +20,51 @@ cert_chain:
|
|
20
20
|
oOvjtt5P8+GSK9zLzxQP0gVLS/D0FmoE44XuDr3iQkVS2ujU5zZL84mMNqNB1znh
|
21
21
|
GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
|
22
22
|
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
23
|
-
gBEfoTEGr7Zii72cx+
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
fO6tdKQc/5RfA8oQEkg8hrxA5PQSz4TOFJGLpFvIapEk6tMruQ0bHgkhr9auXg==
|
23
|
+
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
24
|
+
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
|
25
|
+
AQCKB5jfsuSnKb+t/Wrh3UpdkmX7TrEsjVmERC0pPqzQ5GQJgmEXDD7oMgaKXaAq
|
26
|
+
x2m+KSZDrqk7c8uho5OX6YMqg4KdxehfSLqqTZGoeV78qwf/jpPQZKTf+W9gUSJh
|
27
|
+
zsWpo4K50MP+QtdSbKXZwjAafpQ8hK0MnnZ/aeCsW9ov5vdXpYbf3dpg6ADXRGE7
|
28
|
+
lQY2y1tJ5/chqu6h7dQmnm2ABUqx9O+JcN9hbCYoA5i/EeubUEtFIh2w3SpO6YfB
|
29
|
+
JFmxn4h9YO/pVdB962BdBNNDia0kgIjI3ENnkLq0dKpYU3+F3KhEuTksLO0L6X/V
|
30
|
+
YsuyUzsMz6GQA4khyaMgKNSD
|
32
31
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
32
|
+
date: 2022-07-04 00:00:00.000000000 Z
|
34
33
|
dependencies:
|
35
34
|
- !ruby/object:Gem::Dependency
|
36
35
|
name: rdoc
|
37
36
|
requirement: !ruby/object:Gem::Requirement
|
38
37
|
requirements:
|
39
|
-
- - "
|
38
|
+
- - ">="
|
40
39
|
- !ruby/object:Gem::Version
|
41
40
|
version: '4.0'
|
41
|
+
- - "<"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '7'
|
42
44
|
type: :development
|
43
45
|
prerelease: false
|
44
46
|
version_requirements: !ruby/object:Gem::Requirement
|
45
47
|
requirements:
|
46
|
-
- - "
|
48
|
+
- - ">="
|
47
49
|
- !ruby/object:Gem::Version
|
48
50
|
version: '4.0'
|
51
|
+
- - "<"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '7'
|
49
54
|
- !ruby/object:Gem::Dependency
|
50
55
|
name: hoe
|
51
56
|
requirement: !ruby/object:Gem::Requirement
|
52
57
|
requirements:
|
53
58
|
- - "~>"
|
54
59
|
- !ruby/object:Gem::Version
|
55
|
-
version: '3.
|
60
|
+
version: '3.24'
|
56
61
|
type: :development
|
57
62
|
prerelease: false
|
58
63
|
version_requirements: !ruby/object:Gem::Requirement
|
59
64
|
requirements:
|
60
65
|
- - "~>"
|
61
66
|
- !ruby/object:Gem::Version
|
62
|
-
version: '3.
|
67
|
+
version: '3.24'
|
63
68
|
description: |-
|
64
69
|
PathExpander helps pre-process command-line arguments expanding
|
65
70
|
directories into their constituent files. It further helps by
|
@@ -94,8 +99,9 @@ files:
|
|
94
99
|
homepage: https://github.com/seattlerb/path_expander
|
95
100
|
licenses:
|
96
101
|
- MIT
|
97
|
-
metadata:
|
98
|
-
|
102
|
+
metadata:
|
103
|
+
homepage_uri: https://github.com/seattlerb/path_expander
|
104
|
+
post_install_message:
|
99
105
|
rdoc_options:
|
100
106
|
- "--main"
|
101
107
|
- README.rdoc
|
@@ -112,9 +118,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
118
|
- !ruby/object:Gem::Version
|
113
119
|
version: '0'
|
114
120
|
requirements: []
|
115
|
-
|
116
|
-
|
117
|
-
signing_key:
|
121
|
+
rubygems_version: 3.3.12
|
122
|
+
signing_key:
|
118
123
|
specification_version: 4
|
119
124
|
summary: PathExpander helps pre-process command-line arguments expanding directories
|
120
125
|
into their constituent files
|
metadata.gz.sig
CHANGED
Binary file
|