memfs 0.5.0 → 2.0.0
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
- data/.github/dependabot.yml +19 -0
- data/.github/workflows/ci.yml +64 -0
- data/.gitignore +1 -0
- data/.rspec +2 -2
- data/.rubocop.yml +81 -12
- data/CHANGELOG.md +41 -10
- data/Gemfile +19 -0
- data/Guardfile +5 -3
- data/README.md +7 -6
- data/Rakefile +4 -2
- data/bin/_guard-core +16 -0
- data/bin/coverage_summary +51 -0
- data/bin/guard +16 -0
- data/bin/rake +16 -0
- data/bin/rspec +16 -0
- data/bin/rubocop +16 -0
- data/lib/memfs/dir.rb +86 -21
- data/lib/memfs/fake/directory.rb +31 -3
- data/lib/memfs/fake/entry.rb +41 -25
- data/lib/memfs/fake/file/content.rb +6 -5
- data/lib/memfs/fake/file.rb +6 -5
- data/lib/memfs/fake/symlink.rb +2 -0
- data/lib/memfs/file/stat.rb +21 -14
- data/lib/memfs/file.rb +92 -77
- data/lib/memfs/file_system.rb +17 -12
- data/lib/memfs/filesystem_access.rb +2 -0
- data/lib/memfs/io.rb +183 -153
- data/lib/memfs/version.rb +3 -1
- data/lib/memfs.rb +112 -5
- data/memfs.gemspec +0 -14
- data/spec/fileutils_spec.rb +86 -58
- data/spec/memfs/dir_spec.rb +175 -27
- data/spec/memfs/fake/directory_spec.rb +8 -4
- data/spec/memfs/fake/entry_spec.rb +16 -10
- data/spec/memfs/fake/file/content_spec.rb +1 -1
- data/spec/memfs/fake/file_spec.rb +1 -1
- data/spec/memfs/fake/symlink_spec.rb +3 -3
- data/spec/memfs/file/stat_spec.rb +30 -15
- data/spec/memfs/file_spec.rb +271 -104
- data/spec/memfs/file_system_spec.rb +20 -19
- data/spec/memfs_spec.rb +67 -2
- data/spec/spec_helper.rb +40 -23
- metadata +17 -135
- data/.travis.yml +0 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
module MemFs
|
|
4
|
-
describe FileSystem do
|
|
4
|
+
::RSpec.describe FileSystem do
|
|
5
5
|
subject { _fs }
|
|
6
6
|
|
|
7
7
|
before :each do
|
|
@@ -11,7 +11,7 @@ module MemFs
|
|
|
11
11
|
describe '#chdir' do
|
|
12
12
|
it 'changes the current working directory' do
|
|
13
13
|
subject.chdir '/test-dir'
|
|
14
|
-
expect(subject.getwd).to eq('/test-dir')
|
|
14
|
+
expect(subject.getwd).to eq(expected_path('/test-dir'))
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it 'raises an error if directory does not exist' do
|
|
@@ -29,7 +29,7 @@ module MemFs
|
|
|
29
29
|
subject.chdir '/test-dir' do
|
|
30
30
|
location = subject.getwd
|
|
31
31
|
end
|
|
32
|
-
expect(location).to eq('/test-dir')
|
|
32
|
+
expect(location).to eq(expected_path('/test-dir'))
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
it 'gets back to previous directory once the block is finished' do
|
|
@@ -44,7 +44,7 @@ module MemFs
|
|
|
44
44
|
it 'sets current directory as the last link chain target' do
|
|
45
45
|
subject.symlink('/test-dir', '/test-link')
|
|
46
46
|
subject.chdir('/test-link')
|
|
47
|
-
expect(subject.getwd).to eq('/test-dir')
|
|
47
|
+
expect(subject.getwd).to eq(expected_path('/test-dir'))
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
end
|
|
@@ -52,16 +52,16 @@ module MemFs
|
|
|
52
52
|
describe '#chmod' do
|
|
53
53
|
it 'changes permission bits on the named file' do
|
|
54
54
|
subject.touch('/some-file')
|
|
55
|
-
subject.chmod(
|
|
56
|
-
expect(subject.find!('/some-file').mode).to be(
|
|
55
|
+
subject.chmod(0o777, '/some-file')
|
|
56
|
+
expect(subject.find!('/some-file').mode).to be(0o100777)
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
context 'when the named file is a symlink' do
|
|
60
60
|
it 'changes the permission bits on the symlink itself' do
|
|
61
61
|
subject.touch('/some-file')
|
|
62
62
|
subject.symlink('/some-file', '/some-link')
|
|
63
|
-
subject.chmod(
|
|
64
|
-
expect(subject.find!('/some-link').mode).to be(
|
|
63
|
+
subject.chmod(0o777, '/some-link')
|
|
64
|
+
expect(subject.find!('/some-link').mode).to be(0o100777)
|
|
65
65
|
end
|
|
66
66
|
end
|
|
67
67
|
end
|
|
@@ -140,7 +140,7 @@ module MemFs
|
|
|
140
140
|
|
|
141
141
|
it 'sets the current directory to /' do
|
|
142
142
|
subject.clear!
|
|
143
|
-
expect(subject.getwd).to eq(
|
|
143
|
+
expect(subject.getwd).to eq(root_path)
|
|
144
144
|
end
|
|
145
145
|
end
|
|
146
146
|
|
|
@@ -200,7 +200,7 @@ module MemFs
|
|
|
200
200
|
|
|
201
201
|
context 'when there is no entry for the given path' do
|
|
202
202
|
it 'raises an exception' do
|
|
203
|
-
expect { subject.find!('/no-file') }.to
|
|
203
|
+
expect { subject.find!('/no-file') }.to raise_error Errno::ENOENT
|
|
204
204
|
end
|
|
205
205
|
end
|
|
206
206
|
|
|
@@ -221,7 +221,7 @@ module MemFs
|
|
|
221
221
|
it 'raises an exception' do
|
|
222
222
|
expect {
|
|
223
223
|
subject.find!('/test-no-link/test-file')
|
|
224
|
-
}.to raise_error
|
|
224
|
+
}.to raise_error Errno::ENOENT
|
|
225
225
|
end
|
|
226
226
|
end
|
|
227
227
|
end
|
|
@@ -256,7 +256,7 @@ module MemFs
|
|
|
256
256
|
describe '#getwd' do
|
|
257
257
|
it 'returns the current working directory' do
|
|
258
258
|
subject.chdir '/test-dir'
|
|
259
|
-
expect(subject.getwd).to eq('/test-dir')
|
|
259
|
+
expect(subject.getwd).to eq(expected_path('/test-dir'))
|
|
260
260
|
end
|
|
261
261
|
end
|
|
262
262
|
|
|
@@ -289,15 +289,15 @@ module MemFs
|
|
|
289
289
|
expect(subject.find!('/new-dir')).to be_a(Fake::Directory)
|
|
290
290
|
end
|
|
291
291
|
|
|
292
|
-
it 'sets directory permissions to default
|
|
292
|
+
it 'sets directory permissions to default 0o777' do
|
|
293
293
|
subject.mkdir '/new-dir'
|
|
294
|
-
expect(subject.find!('/new-dir').mode).to eq(
|
|
294
|
+
expect(subject.find!('/new-dir').mode).to eq(0o100777)
|
|
295
295
|
end
|
|
296
296
|
|
|
297
297
|
context 'when permissions are specified' do
|
|
298
298
|
it 'sets directory permission to specified value' do
|
|
299
|
-
subject.mkdir '/new-dir',
|
|
300
|
-
expect(subject.find!('/new-dir').mode).to eq(
|
|
299
|
+
subject.mkdir '/new-dir', 0o644
|
|
300
|
+
expect(subject.find!('/new-dir').mode).to eq(0o100644)
|
|
301
301
|
end
|
|
302
302
|
end
|
|
303
303
|
|
|
@@ -329,8 +329,8 @@ module MemFs
|
|
|
329
329
|
end
|
|
330
330
|
|
|
331
331
|
it 'returns the list of all the existing paths' do
|
|
332
|
-
|
|
333
|
-
|
|
332
|
+
expected = %w[/ /tmp /test-dir /test-dir/subdir /test-dir/subdir/file1 /test-dir/subdir/file2]
|
|
333
|
+
expect(subject.paths).to eq(expected.map { |p| expected_path(p) })
|
|
334
334
|
end
|
|
335
335
|
end
|
|
336
336
|
|
|
@@ -374,6 +374,7 @@ module MemFs
|
|
|
374
374
|
|
|
375
375
|
describe '#symlink' do
|
|
376
376
|
it 'creates a symbolic link' do
|
|
377
|
+
subject.touch('/some-file')
|
|
377
378
|
subject.symlink('/some-file', '/some-link')
|
|
378
379
|
expect(subject.find!('/some-link')).to be_a(Fake::Symlink)
|
|
379
380
|
end
|
|
@@ -433,7 +434,7 @@ module MemFs
|
|
|
433
434
|
|
|
434
435
|
context 'when the entry is a directory' do
|
|
435
436
|
it 'raises an exception' do
|
|
436
|
-
expect { subject.unlink('/test-dir') }.to raise_error
|
|
437
|
+
expect { subject.unlink('/test-dir') }.to raise_error Errno::EPERM
|
|
437
438
|
end
|
|
438
439
|
end
|
|
439
440
|
end
|
data/spec/memfs_spec.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
+
require 'tempfile'
|
|
2
3
|
|
|
3
|
-
describe MemFs do
|
|
4
|
+
RSpec.describe MemFs do
|
|
4
5
|
describe '.activate' do
|
|
5
6
|
it 'calls the given block with MemFs activated' do
|
|
6
7
|
described_class.activate do
|
|
@@ -16,7 +17,7 @@ describe MemFs do
|
|
|
16
17
|
it 'deactivates MemFs even when an exception occurs' do
|
|
17
18
|
begin
|
|
18
19
|
described_class.activate { fail 'Some error' }
|
|
19
|
-
rescue
|
|
20
|
+
rescue RuntimeError
|
|
20
21
|
end
|
|
21
22
|
expect(::Dir).to be(described_class::OriginalDir)
|
|
22
23
|
end
|
|
@@ -50,6 +51,70 @@ describe MemFs do
|
|
|
50
51
|
end
|
|
51
52
|
end
|
|
52
53
|
|
|
54
|
+
describe '.halt' do
|
|
55
|
+
before(:each) { described_class.activate! }
|
|
56
|
+
after(:each) { described_class.deactivate! }
|
|
57
|
+
|
|
58
|
+
it 'switches back to the original Ruby Dir & File classes' do
|
|
59
|
+
described_class.halt do
|
|
60
|
+
expect(::Dir).to be(described_class::OriginalDir)
|
|
61
|
+
expect(::File).to be(described_class::OriginalFile)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it 'switches back to the faked Dir & File classes' do
|
|
66
|
+
described_class.halt
|
|
67
|
+
expect(::Dir).to be(described_class::Dir)
|
|
68
|
+
expect(::File).to be(described_class::File)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it 'switches back to the faked Dir & File classes no matter what' do
|
|
72
|
+
begin
|
|
73
|
+
described_class.halt { fail 'Fatal Error' }
|
|
74
|
+
rescue
|
|
75
|
+
expect(::Dir).to be(described_class::Dir)
|
|
76
|
+
expect(::File).to be(described_class::File)
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it 'maintains the state of the faked fs' do
|
|
81
|
+
_fs.touch('file.rb')
|
|
82
|
+
|
|
83
|
+
described_class.halt do
|
|
84
|
+
expect(File.exist?('file.rb')).to be false
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
expect(File.exist?('file.rb')).to be true
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
describe 'Tempfile.create' do
|
|
92
|
+
around(:each) { |example| described_class.activate { example.run } }
|
|
93
|
+
|
|
94
|
+
context 'without a block' do
|
|
95
|
+
it 'creates the file in the in-memory filesystem' do
|
|
96
|
+
file = Tempfile.create('memfs')
|
|
97
|
+
expect(file).to be_a(File)
|
|
98
|
+
expect(file.path).to start_with(expected_path('/tmp/memfs'))
|
|
99
|
+
expect(_fs.find(file.path)).not_to be_nil
|
|
100
|
+
file.close
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
context 'with a block' do
|
|
105
|
+
it 'yields a writable file whose content is stored in the in-memory filesystem' do
|
|
106
|
+
path = nil
|
|
107
|
+
Tempfile.create('memfs') do |f|
|
|
108
|
+
path = f.path
|
|
109
|
+
f.write('hello')
|
|
110
|
+
expect(File.read(path)).to eq('hello')
|
|
111
|
+
expect(_fs.find(path)).not_to be_nil
|
|
112
|
+
end
|
|
113
|
+
expect(_fs.find(path)).to be_nil
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
53
118
|
describe '.touch' do
|
|
54
119
|
around(:each) { |example| described_class.activate { example.run } }
|
|
55
120
|
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,36 +1,53 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'simplecov'
|
|
4
|
+
|
|
5
|
+
SimpleCov.start
|
|
6
|
+
|
|
2
7
|
require 'memfs'
|
|
3
8
|
|
|
4
|
-
|
|
9
|
+
def _fs
|
|
10
|
+
MemFs::FileSystem.instance
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Returns the platform-appropriate root path
|
|
14
|
+
def root_path
|
|
15
|
+
MemFs.platform_root
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Converts Unix-style path to platform path for expectations
|
|
19
|
+
# expected_path('/test-file') => '/test-file' on Unix, 'D:/test-file' on Windows
|
|
20
|
+
def expected_path(unix_path)
|
|
21
|
+
MemFs.normalize_path(unix_path)
|
|
22
|
+
end
|
|
5
23
|
|
|
6
24
|
RSpec.configure do |config|
|
|
7
|
-
config.
|
|
8
|
-
|
|
25
|
+
config.expect_with :rspec do |expectations|
|
|
26
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
|
9
27
|
end
|
|
10
28
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
expect(subject.method(method)).to eq(subject.method(original_method))
|
|
14
|
-
end
|
|
29
|
+
config.mock_with :rspec do |mocks|
|
|
30
|
+
mocks.verify_partial_doubles = true
|
|
15
31
|
end
|
|
16
|
-
end
|
|
17
32
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
end
|
|
33
|
+
config.color = true
|
|
34
|
+
config.filter_run :focus
|
|
35
|
+
config.run_all_when_everything_filtered = true
|
|
36
|
+
config.example_status_persistence_file_path = 'spec/examples.txt'
|
|
37
|
+
config.disable_monkey_patching!
|
|
38
|
+
config.warnings = true
|
|
39
|
+
if config.files_to_run.one?
|
|
40
|
+
config.default_formatter = 'doc'
|
|
27
41
|
end
|
|
42
|
+
# config.profile_examples = 10
|
|
43
|
+
config.order = :random
|
|
44
|
+
Kernel.srand config.seed
|
|
28
45
|
|
|
29
|
-
|
|
30
|
-
true
|
|
31
|
-
end
|
|
46
|
+
config.before { MemFs::FileSystem.instance.clear! }
|
|
32
47
|
end
|
|
33
48
|
|
|
34
|
-
|
|
35
|
-
|
|
49
|
+
RSpec.shared_examples 'aliased method' do |method, original_method|
|
|
50
|
+
it "##{original_method}" do
|
|
51
|
+
expect(subject.method(method)).to eq(subject.method(original_method))
|
|
52
|
+
end
|
|
36
53
|
end
|
metadata
CHANGED
|
@@ -1,127 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: memfs
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Simon COURTOIS
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
-
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: coveralls
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0.6'
|
|
20
|
-
type: :development
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0.6'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: rake
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - "~>"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '10.0'
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - "~>"
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '10.0'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: rspec
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '3.0'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '3.0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: guard
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '2.6'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '2.6'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: guard-rspec
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '4.3'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '4.3'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: rb-inotify
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - "~>"
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0.8'
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - "~>"
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0.8'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: rb-fsevent
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - "~>"
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: '0.9'
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - "~>"
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0.9'
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: rb-fchange
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - "~>"
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0.0'
|
|
118
|
-
type: :development
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - "~>"
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0.0'
|
|
11
|
+
date: 2026-02-03 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
125
13
|
description: MemFs provides a fake file system that can be used for tests. Strongly
|
|
126
14
|
inspired by FakeFS.
|
|
127
15
|
email:
|
|
@@ -130,16 +18,23 @@ executables: []
|
|
|
130
18
|
extensions: []
|
|
131
19
|
extra_rdoc_files: []
|
|
132
20
|
files:
|
|
21
|
+
- ".github/dependabot.yml"
|
|
22
|
+
- ".github/workflows/ci.yml"
|
|
133
23
|
- ".gitignore"
|
|
134
24
|
- ".rspec"
|
|
135
25
|
- ".rubocop.yml"
|
|
136
|
-
- ".travis.yml"
|
|
137
26
|
- CHANGELOG.md
|
|
138
27
|
- Gemfile
|
|
139
28
|
- Guardfile
|
|
140
29
|
- LICENSE.txt
|
|
141
30
|
- README.md
|
|
142
31
|
- Rakefile
|
|
32
|
+
- bin/_guard-core
|
|
33
|
+
- bin/coverage_summary
|
|
34
|
+
- bin/guard
|
|
35
|
+
- bin/rake
|
|
36
|
+
- bin/rspec
|
|
37
|
+
- bin/rubocop
|
|
143
38
|
- lib/memfs.rb
|
|
144
39
|
- lib/memfs/dir.rb
|
|
145
40
|
- lib/memfs/fake/directory.rb
|
|
@@ -171,7 +66,7 @@ homepage: http://github.com/simonc/memfs
|
|
|
171
66
|
licenses:
|
|
172
67
|
- MIT
|
|
173
68
|
metadata: {}
|
|
174
|
-
post_install_message:
|
|
69
|
+
post_install_message:
|
|
175
70
|
rdoc_options: []
|
|
176
71
|
require_paths:
|
|
177
72
|
- lib
|
|
@@ -186,21 +81,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
186
81
|
- !ruby/object:Gem::Version
|
|
187
82
|
version: '0'
|
|
188
83
|
requirements: []
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
signing_key:
|
|
84
|
+
rubygems_version: 3.5.23
|
|
85
|
+
signing_key:
|
|
192
86
|
specification_version: 4
|
|
193
|
-
summary: memfs-0.
|
|
194
|
-
test_files:
|
|
195
|
-
- spec/fileutils_spec.rb
|
|
196
|
-
- spec/memfs/dir_spec.rb
|
|
197
|
-
- spec/memfs/fake/directory_spec.rb
|
|
198
|
-
- spec/memfs/fake/entry_spec.rb
|
|
199
|
-
- spec/memfs/fake/file/content_spec.rb
|
|
200
|
-
- spec/memfs/fake/file_spec.rb
|
|
201
|
-
- spec/memfs/fake/symlink_spec.rb
|
|
202
|
-
- spec/memfs/file/stat_spec.rb
|
|
203
|
-
- spec/memfs/file_spec.rb
|
|
204
|
-
- spec/memfs/file_system_spec.rb
|
|
205
|
-
- spec/memfs_spec.rb
|
|
206
|
-
- spec/spec_helper.rb
|
|
87
|
+
summary: memfs-2.0.0
|
|
88
|
+
test_files: []
|