path_expander 1.0.5 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ed735c31f663a48f088d47a6de1ded3de2944a209cdd43de28299498da7f4f2d
4
- data.tar.gz: c0752e73ec8e3a12157aecf9b42bce92edbfb174f3e1a13804b4d99f5b80c53a
3
+ metadata.gz: fea80c4cff03e65125325d75b60a64e1e8fdfb2ae959483ea63fb1081decdc96
4
+ data.tar.gz: afbbf32a9ba9bffff56d42ecde177ac22411575276b45b70094a6ea026e6e9dc
5
5
  SHA512:
6
- metadata.gz: 3f02173165eeb07e29a03c235583ae327a9b3e329a3a7f66ca66bc3aa33eaa7298b03f04f3f06c9af76199fac1a2bd460e759bf2dfcd092ae121873c237ef547
7
- data.tar.gz: caee8354046efd7e537d9753e6623713e04a0a493ecdf2e98e7cfa30d7c87b9286304be06de30e2bcf849a9e4124de882e7a330468f0135b7df47b2ad830e81c
6
+ metadata.gz: 24a9797858c8a8b50a041d3a7855e30653ff0ce6c3c21086c9224e33bceb9feeb7dd14a4b38ab5789683b19cb17763e96bcdaf9b497d2e1a22ade78d3c7227e7
7
+ data.tar.gz: ce87766ab92c89098229bda19275ad41e54636e9d8a5b13605bbc46129c0e66d72793c6cf77421d0cf681806148e1af5cfeceb07d67f5be2044ea87154594a71
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,9 @@
1
+ === 1.1.0 / 2019-09-22
2
+
3
+ * 1 minor enhancement:
4
+
5
+ * Added a default path (default: ".") to scan if no files are initially found.
6
+
1
7
  === 1.0.5 / 2019-09-14
2
8
 
3
9
  * 1 bug fix:
@@ -13,7 +13,7 @@
13
13
  # PathExpander.
14
14
 
15
15
  class PathExpander
16
- VERSION = "1.0.5" # :nodoc:
16
+ VERSION = "1.1.0" # :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
  ##
@@ -71,18 +78,25 @@ class PathExpander
71
78
  # See expand_dirs_to_files for details on how expansion occurs.
72
79
  #
73
80
  # Subtraction happens last, regardless of argument ordering.
81
+ #
82
+ # If no files are found (which is not the same as having an empty
83
+ # file list after subtraction), then fall back to expanding on the
84
+ # default #path given to initialize.
74
85
 
75
86
  def process_args
76
87
  pos_files = []
77
88
  neg_files = []
78
89
  flags = []
90
+ clean = true
79
91
 
80
92
  args.each do |arg|
81
93
  case arg
82
94
  when /^@(.*)/ then # push back on, so they can have dirs/-/@ as well
95
+ clean = false
83
96
  args.concat process_file $1
84
97
  when /^-(.*)/ then
85
98
  if File.exist? $1 then
99
+ clean = false
86
100
  neg_files += expand_dirs_to_files($1)
87
101
  else
88
102
  flags << arg
@@ -90,6 +104,7 @@ class PathExpander
90
104
  else
91
105
  root_path = File.expand_path(arg) == "/" # eg: -n /./
92
106
  if File.exist? arg and not root_path then
107
+ clean = false
93
108
  pos_files += expand_dirs_to_files(arg)
94
109
  else
95
110
  flags << arg
@@ -97,7 +112,10 @@ class PathExpander
97
112
  end
98
113
  end
99
114
 
100
- [pos_files - neg_files, flags]
115
+ files = pos_files - neg_files
116
+ files += expand_dirs_to_files(self.path) if files.empty? && clean
117
+
118
+ [files, flags]
101
119
  end
102
120
 
103
121
  ##
@@ -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
@@ -157,6 +157,14 @@ class TestPathExpander < Minitest::Test
157
157
  "/./")
158
158
  end
159
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
+
160
168
  def test_process_flags
161
169
  exp = %w[a b c]
162
170
  act = expander.process_flags %w[a b c]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: path_expander
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -29,7 +29,7 @@ cert_chain:
29
29
  Em82dBUFsipwMLCYj39kcyHWAxyl6Ae1Cn9r/ItVBCxoeFdrHjfavnrIEoXUt4bU
30
30
  UfBugfLD19bu3nvL+zTAGx/U
31
31
  -----END CERTIFICATE-----
32
- date: 2019-09-15 00:00:00.000000000 Z
32
+ date: 2019-09-22 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rdoc
metadata.gz.sig CHANGED
Binary file