path_expander 1.0.3 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ec7c57457d6cf828c608a367e073b7c689c15c5dbc3808621fc57ff53431d08
4
- data.tar.gz: 829d40e46dc078546f0bf00dde8e40f2c1df6b22535882a9e64863fe684a4077
3
+ metadata.gz: 95157151cd3523ba3bcd9ca1668dbfa436e87b9dfabb3431ca218ea66571c436
4
+ data.tar.gz: b0714ed15b27ae4b4dc16f1f87ec20dd2732299ffbadff80b9e51ba004855ef6
5
5
  SHA512:
6
- metadata.gz: 263d65b97f69b4f586888532cc374659889bb707c6ca2502c6cef9e8f5f446c6d3023b2a7930689a34a416e47ab7aa11c482f4ba2c0d66aebd66f9fabad4e7f2
7
- data.tar.gz: 60f9b4ef1107c2d61f646c72635e09f7f46032aed00c5110852d23ce6b026d6e52ae3ed464a639c1855339c6ca9b6e97202951a0e454198dd0de0f7813f59be9
6
+ metadata.gz: c53f545816dc9c6341c1bddfede9b4ef137e64100dd4883df1ee7bf81d4df2adf91f78fabfa2ce431d1f85c03d65941dadd6e1e8b50de6f27ab9a63724da1398
7
+ data.tar.gz: 017eb994f9a635e8b780d326a364cae4fc82fd3852cd792c8819ccb9550539b14f49fc01a68b076a7fb367a7e6020099b7dfb9d6f5134cc33cb464ea13fabf9d
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,3 +1,27 @@
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
+
1
25
  === 1.0.3 / 2018-03-16
2
26
 
3
27
  * 1 bug fix:
@@ -21,4 +45,3 @@
21
45
  * 1 major enhancement
22
46
 
23
47
  * Birthday!
24
-
data/lib/path_expander.rb CHANGED
@@ -13,7 +13,7 @@
13
13
  # PathExpander.
14
14
 
15
15
  class PathExpander
16
- VERSION = "1.0.3" # :nodoc:
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,22 +74,32 @@ 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
@@ -90,6 +107,7 @@ class PathExpander
90
107
  else
91
108
  root_path = File.expand_path(arg) == "/" # eg: -n /./
92
109
  if File.exist? arg and not root_path then
110
+ clean = false
93
111
  pos_files += expand_dirs_to_files(arg)
94
112
  else
95
113
  flags << arg
@@ -97,7 +115,10 @@ class PathExpander
97
115
  end
98
116
  end
99
117
 
100
- [pos_files - neg_files, flags]
118
+ files = pos_files - neg_files
119
+ files += expand_dirs_to_files(self.path) if files.empty? && clean
120
+
121
+ [files, flags]
101
122
  end
102
123
 
103
124
  ##
@@ -144,7 +165,7 @@ class PathExpander
144
165
  def filter_files files, ignore
145
166
  ignore_paths = if ignore.respond_to? :read then
146
167
  ignore.read
147
- elsif File.exists? ignore then
168
+ elsif File.exist? ignore then
148
169
  File.read ignore
149
170
  end
150
171
 
@@ -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/"
@@ -149,6 +157,20 @@ class TestPathExpander < Minitest::Test
149
157
  "/./")
150
158
  end
151
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
+
152
174
  def test_process_flags
153
175
  exp = %w[a b c]
154
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.0.3
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
- MIIDPjCCAiagAwIBAgIBAjANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
13
+ MIIDPjCCAiagAwIBAgIBBjANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
14
14
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
15
- GRYDY29tMB4XDTE3MTEyMTIxMTExMFoXDTE4MTEyMTIxMTExMFowRTETMBEGA1UE
15
+ GRYDY29tMB4XDTIxMTIyMzIzMTkwNFoXDTIyMTIyMzIzMTkwNFowRTETMBEGA1UE
16
16
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
17
17
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
18
18
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -21,44 +21,50 @@ cert_chain:
21
21
  GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
22
22
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
23
23
  gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
24
- HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
25
- AQAfAXSQpsW7YSxd1csRtA/M4Zt0AMXFMd76GJ8Lgtg8G0+VFbdChRyDuDb0kPlW
26
- h9QQX/YABfCW8vxmssbMGrP+VGBAn7BbdTcfTlgCWrvMX1uL5aRL74nA4urKXqdW
27
- a0nP70K4958P3GffBdtE3KGkU5xstFnXGajxuBRnL66E15KU0BNehVxdG258bdPu
28
- EKN6MqBPftFiev3tuwqDV11r2GquDpniYcT+Mi8/PgeAgVT/afBeVgbB3KaZeTRR
29
- AhXhF6Wi2GTMezlj5jlI5XV7WsJUSwTp/YiVvcmT74ZaCRvexm6EnNhkrvJJ1Xeu
30
- V+HB+LYYhXWitInO/eXxDrFB
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
31
31
  -----END CERTIFICATE-----
32
- date: 2018-03-16 00:00:00.000000000 Z
32
+ date: 2022-07-04 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rdoc
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '4.0'
41
+ - - "<"
42
+ - !ruby/object:Gem::Version
43
+ version: '7'
41
44
  type: :development
42
45
  prerelease: false
43
46
  version_requirements: !ruby/object:Gem::Requirement
44
47
  requirements:
45
- - - "~>"
48
+ - - ">="
46
49
  - !ruby/object:Gem::Version
47
50
  version: '4.0'
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: '7'
48
54
  - !ruby/object:Gem::Dependency
49
55
  name: hoe
50
56
  requirement: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '3.16'
60
+ version: '3.24'
55
61
  type: :development
56
62
  prerelease: false
57
63
  version_requirements: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '3.16'
67
+ version: '3.24'
62
68
  description: |-
63
69
  PathExpander helps pre-process command-line arguments expanding
64
70
  directories into their constituent files. It further helps by
@@ -93,8 +99,9 @@ files:
93
99
  homepage: https://github.com/seattlerb/path_expander
94
100
  licenses:
95
101
  - MIT
96
- metadata: {}
97
- post_install_message:
102
+ metadata:
103
+ homepage_uri: https://github.com/seattlerb/path_expander
104
+ post_install_message:
98
105
  rdoc_options:
99
106
  - "--main"
100
107
  - README.rdoc
@@ -111,9 +118,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
118
  - !ruby/object:Gem::Version
112
119
  version: '0'
113
120
  requirements: []
114
- rubyforge_project:
115
- rubygems_version: 2.7.3
116
- signing_key:
121
+ rubygems_version: 3.3.12
122
+ signing_key:
117
123
  specification_version: 4
118
124
  summary: PathExpander helps pre-process command-line arguments expanding directories
119
125
  into their constituent files
metadata.gz.sig CHANGED
Binary file