fakefs 2.2.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fakefs/dir.rb +1 -1
- data/lib/fakefs/file_system.rb +24 -3
- data/lib/fakefs/fileutils.rb +2 -2
- data/lib/fakefs/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b40516abdee28793eb6152f979b453e79ed3dfd42c205e65f500efca0bded1f
|
4
|
+
data.tar.gz: 249b21fc04c49b15cf5f81e5a1497bdb957749d78261337490308f2fa1bb756a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54376515f03734c2058dcc29733830dae79882dc235042a15bf2bfde1d6256f0eb373c85ae2408118c3f32bec00730cb7a2304225149c97a2d3a44cfe8b0a2ee
|
7
|
+
data.tar.gz: 2e15d1c5e506602d955bbcadc7b890946f133949a65e20327dd5bac5995fa6e69fc296750fd2dd3fe1e5b219e04f69a8f8f2cf9a528f63fe8971192e7c614aa8
|
data/lib/fakefs/dir.rb
CHANGED
@@ -130,7 +130,7 @@ module FakeFS
|
|
130
130
|
def self.glob(pattern, _flags = 0, flags: _flags, base: nil, &block) # rubocop:disable Lint/UnderscorePrefixedVariableName
|
131
131
|
pwd = FileSystem.normalize_path(base || Dir.pwd)
|
132
132
|
matches_for_pattern = lambda do |matcher|
|
133
|
-
[FileSystem.
|
133
|
+
[FileSystem.find_with_glob(matcher, flags, true, dir: pwd) || []].flatten.map do |e|
|
134
134
|
pwd_regex = %r{\A#{pwd.gsub('+') { '\+' }}/?}
|
135
135
|
if pwd.match(%r{\A/?\z}) ||
|
136
136
|
!e.to_s.match(pwd_regex)
|
data/lib/fakefs/file_system.rb
CHANGED
@@ -20,13 +20,22 @@ module FakeFS
|
|
20
20
|
fs.entries
|
21
21
|
end
|
22
22
|
|
23
|
-
|
23
|
+
# Finds files/directories using the exact path, without expanding globs.
|
24
|
+
def find(path, dir: nil)
|
25
|
+
parts = path_parts(normalize_path(path, dir: dir))
|
26
|
+
return fs if parts.empty? # '/'
|
27
|
+
|
28
|
+
find_recurser(fs, parts)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Finds files/directories expanding globs.
|
32
|
+
def find_with_glob(path, find_flags = 0, gave_char_class = false, dir: nil)
|
24
33
|
parts = path_parts(normalize_path(path, dir: dir))
|
25
34
|
return fs if parts.empty? # '/'
|
26
35
|
|
27
36
|
entries = Globber.expand(path).flat_map do |pattern|
|
28
37
|
parts = path_parts(normalize_path(pattern, dir: dir))
|
29
|
-
|
38
|
+
find_with_glob_recurser(fs, parts, find_flags, gave_char_class).flatten
|
30
39
|
end
|
31
40
|
|
32
41
|
case entries.length
|
@@ -120,6 +129,18 @@ module FakeFS
|
|
120
129
|
private
|
121
130
|
|
122
131
|
def find_recurser(dir, parts, find_flags = 0, gave_char_class = false)
|
132
|
+
return nil unless dir.respond_to? :[]
|
133
|
+
head, *parts = parts
|
134
|
+
match = dir.entries.find { |e| e.name == head }
|
135
|
+
|
136
|
+
if parts.empty? # we're done recursing
|
137
|
+
match
|
138
|
+
else
|
139
|
+
find_recurser(match, parts, find_flags, gave_char_class)
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def find_with_glob_recurser(dir, parts, find_flags = 0, gave_char_class = false)
|
123
144
|
return [] unless dir.respond_to? :[]
|
124
145
|
pattern, *parts = parts
|
125
146
|
matches =
|
@@ -149,7 +170,7 @@ module FakeFS
|
|
149
170
|
if parts.empty? # we're done recursing
|
150
171
|
matches
|
151
172
|
else
|
152
|
-
matches.map { |entry|
|
173
|
+
matches.map { |entry| find_with_glob_recurser(entry, parts, find_flags, gave_char_class) }
|
153
174
|
end
|
154
175
|
end
|
155
176
|
|
data/lib/fakefs/fileutils.rb
CHANGED
@@ -232,7 +232,7 @@ module FakeFS
|
|
232
232
|
list = Array(list)
|
233
233
|
list.each do |file|
|
234
234
|
chown(user, group, file)
|
235
|
-
[FileSystem.
|
235
|
+
[FileSystem.find_with_glob("#{file}/**/**")].flatten.each do |f|
|
236
236
|
chown(user, group, f.to_s)
|
237
237
|
end
|
238
238
|
end
|
@@ -255,7 +255,7 @@ module FakeFS
|
|
255
255
|
list = Array(list)
|
256
256
|
list.each do |file|
|
257
257
|
chmod(mode, file)
|
258
|
-
[FileSystem.
|
258
|
+
[FileSystem.find_with_glob("#{file}/**/**")].flatten.each do |f|
|
259
259
|
chmod(mode, f.to_s)
|
260
260
|
end
|
261
261
|
end
|
data/lib/fakefs/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fakefs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Wanstrath
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2023-02-
|
15
|
+
date: 2023-02-12 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: bump
|