vfs 0.3.15 → 0.4.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.
- data/Rakefile +1 -0
- data/lib/vfs.rb +5 -4
- data/lib/vfs/drivers/local.rb +179 -0
- data/lib/vfs/drivers/specification.rb +169 -0
- data/lib/vfs/entries/dir.rb +28 -57
- data/lib/vfs/entries/entry.rb +39 -21
- data/lib/vfs/entries/file.rb +20 -73
- data/lib/vfs/entries/universal_entry.rb +8 -8
- data/lib/vfs/integration.rb +30 -0
- data/lib/vfs/vfs.rb +2 -2
- data/readme.md +1 -1
- data/spec/container_spec.rb +12 -11
- data/spec/dir_spec.rb +44 -44
- data/spec/entry_spec.rb +6 -6
- data/spec/file_spec.rb +30 -46
- data/spec/misc_spec.rb +19 -0
- data/spec/spec_helper.rb +8 -8
- data/spec/storages/local_spec.rb +14 -14
- data/spec/universal_entry_spec.rb +32 -10
- metadata +6 -6
- data/lib/vfs/integration/string.rb +0 -20
- data/lib/vfs/storages/local.rb +0 -183
- data/lib/vfs/storages/specification.rb +0 -161
- data/lib/vfs/support.rb +0 -2
data/spec/entry_spec.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'Entry' do
|
4
|
-
|
4
|
+
with_test_dir
|
5
5
|
|
6
6
|
before do
|
7
|
-
@path =
|
7
|
+
@path = test_dir['a/b/c']
|
8
8
|
end
|
9
9
|
|
10
10
|
it "name" do
|
@@ -17,12 +17,12 @@ describe 'Entry' do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'tmp' do
|
20
|
-
tmp =
|
20
|
+
tmp = test_dir.tmp
|
21
21
|
tmp.should be_dir
|
22
22
|
tmp.destroy
|
23
23
|
|
24
24
|
tmp = nil
|
25
|
-
|
25
|
+
test_dir.tmp do |path|
|
26
26
|
tmp = path
|
27
27
|
tmp.should be_dir
|
28
28
|
end
|
@@ -30,11 +30,11 @@ describe 'Entry' do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'should respond to local?' do
|
33
|
-
|
33
|
+
test_dir.should respond_to(:local?)
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'created_at, updated_at, size' do
|
37
|
-
file =
|
37
|
+
file = test_dir.file('file').write 'data'
|
38
38
|
file.created_at.class.should == Time
|
39
39
|
file.updated_at.class.should == Time
|
40
40
|
file.size.should == 4
|
data/spec/file_spec.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'File' do
|
4
|
-
|
4
|
+
with_test_dir
|
5
5
|
|
6
6
|
before do
|
7
|
-
@path =
|
7
|
+
@path = test_dir['a/b/c']
|
8
8
|
end
|
9
9
|
|
10
10
|
describe 'existence' do
|
@@ -13,7 +13,7 @@ describe 'File' do
|
|
13
13
|
@path.dir.create
|
14
14
|
@path.should be_dir
|
15
15
|
@path.file.should_not exist
|
16
|
-
@path.file.create
|
16
|
+
@path.file.create
|
17
17
|
@path.should be_file
|
18
18
|
@path.file.should exist
|
19
19
|
end
|
@@ -38,10 +38,10 @@ describe 'File' do
|
|
38
38
|
data = ""; @path.read{|buff| data << buff}; data.should == 'something'
|
39
39
|
end
|
40
40
|
|
41
|
-
it 'content' do
|
42
|
-
|
43
|
-
|
44
|
-
end
|
41
|
+
# it 'content' do
|
42
|
+
# @path.write('something')
|
43
|
+
# @path.content.should == 'something'
|
44
|
+
# end
|
45
45
|
end
|
46
46
|
|
47
47
|
describe 'creation' do
|
@@ -50,14 +50,10 @@ describe 'File' do
|
|
50
50
|
|
51
51
|
file.should_receive(:write).with('', {})
|
52
52
|
file.create
|
53
|
-
|
54
|
-
file.should_receive(:write).with('', override: true)
|
55
|
-
file.create!
|
56
53
|
end
|
57
54
|
|
58
55
|
it 'should be chainable' do
|
59
56
|
@path.file.create.should == @path
|
60
|
-
@path.file.create!.should == @path
|
61
57
|
end
|
62
58
|
end
|
63
59
|
|
@@ -68,20 +64,17 @@ describe 'File' do
|
|
68
64
|
@path.read.should == 'something'
|
69
65
|
end
|
70
66
|
|
71
|
-
it 'should
|
67
|
+
it 'should override existing file' do
|
72
68
|
@path.write 'something'
|
73
69
|
@path.should be_file
|
74
|
-
|
75
|
-
|
76
|
-
@path.write! 'other'
|
70
|
+
@path.write 'other'
|
77
71
|
@path.read.should == 'other'
|
78
72
|
end
|
79
73
|
|
80
|
-
it 'should override existing dir
|
74
|
+
it 'should override existing dir' do
|
81
75
|
@path.dir.create
|
82
76
|
@path.should be_dir
|
83
|
-
|
84
|
-
@path.write! 'another'
|
77
|
+
@path.write 'another'
|
85
78
|
@path.read.should == 'another'
|
86
79
|
end
|
87
80
|
|
@@ -89,7 +82,7 @@ describe 'File' do
|
|
89
82
|
@path.write 'something'
|
90
83
|
@path.read.should == 'something'
|
91
84
|
|
92
|
-
@path.write
|
85
|
+
@path.write do |writer|
|
93
86
|
writer.write 'another'
|
94
87
|
end
|
95
88
|
@path.read.should == 'another'
|
@@ -102,8 +95,7 @@ describe 'File' do
|
|
102
95
|
end
|
103
96
|
|
104
97
|
it 'should correctly display errors (from error)' do
|
105
|
-
-> {
|
106
|
-
-> {test_fs['test'].write!{|writer| raise 'some error'}}.should raise_error(/some error/)
|
98
|
+
-> {test_dir['test'].write{|writer| raise 'some error'}}.should raise_error(/some error/)
|
107
99
|
end
|
108
100
|
end
|
109
101
|
|
@@ -131,33 +123,32 @@ describe 'File' do
|
|
131
123
|
target.read.should == 'something'
|
132
124
|
target.should == to
|
133
125
|
|
134
|
-
|
135
|
-
|
136
|
-
target = @from.copy_to
|
126
|
+
# overriding
|
127
|
+
@from.write 'another'
|
128
|
+
target = @from.copy_to to
|
137
129
|
target.read.should == 'another'
|
138
130
|
target.should == to
|
139
131
|
end
|
140
132
|
|
141
|
-
it 'should copy to file (and overwrite
|
142
|
-
check_copy_for
|
133
|
+
it 'should copy to file (and overwrite)' do
|
134
|
+
check_copy_for test_dir.file('to')
|
143
135
|
end
|
144
136
|
|
145
|
-
it 'should copy to dir (and overwrite
|
146
|
-
check_copy_for
|
137
|
+
it 'should copy to dir (and overwrite)' do
|
138
|
+
check_copy_for test_dir.dir("to")
|
147
139
|
end
|
148
140
|
|
149
|
-
it 'should copy to UniversalEntry (and overwrite
|
150
|
-
check_copy_for
|
141
|
+
it 'should copy to UniversalEntry (and overwrite)' do
|
142
|
+
check_copy_for test_dir.entry('to')
|
151
143
|
end
|
152
144
|
|
153
145
|
it 'should be chainable' do
|
154
|
-
to =
|
146
|
+
to = test_dir['to']
|
155
147
|
@from.copy_to(to).should == to
|
156
|
-
@from.copy_to!(to).should == to
|
157
148
|
end
|
158
149
|
|
159
150
|
it "should autocreate parent's path if not exist (from error)" do
|
160
|
-
to =
|
151
|
+
to = test_dir['parent_path/to']
|
161
152
|
@from.copy_to(to)
|
162
153
|
to.read.should == 'something'
|
163
154
|
end
|
@@ -166,27 +157,21 @@ describe 'File' do
|
|
166
157
|
describe 'moving' do
|
167
158
|
it 'move_to' do
|
168
159
|
from, to = @path.file('from'), @path.file('to')
|
169
|
-
from.should_receive(:copy_to).with(to
|
170
|
-
from.should_receive(:destroy).with(
|
160
|
+
from.should_receive(:copy_to).with(to)
|
161
|
+
from.should_receive(:destroy).with()
|
171
162
|
from.move_to to
|
172
|
-
|
173
|
-
from.should_receive(:move_to).with(to, override: true)
|
174
|
-
from.move_to! to
|
175
163
|
end
|
176
164
|
|
177
165
|
it 'should be chainable' do
|
178
166
|
from, to = @path.file('from').create, @path.file('to')
|
179
167
|
from.move_to(to).should == to
|
180
|
-
from.create
|
181
|
-
from.move_to!(to).should == to
|
182
168
|
end
|
183
169
|
end
|
184
170
|
|
185
171
|
describe 'destroying' do
|
186
|
-
it "should raise error if it's trying to destroy a dir
|
172
|
+
it "should not raise error if it's trying to destroy a dir" do
|
187
173
|
@path.dir.create
|
188
|
-
|
189
|
-
@path.file.destroy!
|
174
|
+
@path.file.destroy
|
190
175
|
@path.entry.should_not exist
|
191
176
|
end
|
192
177
|
|
@@ -196,13 +181,12 @@ describe 'File' do
|
|
196
181
|
|
197
182
|
it 'should be chainable' do
|
198
183
|
@path.file.destroy.should == @path
|
199
|
-
@path.file.destroy!.should == @path
|
200
184
|
end
|
201
185
|
end
|
202
186
|
|
203
187
|
describe "extra stuff" do
|
204
188
|
it 'render' do
|
205
|
-
template =
|
189
|
+
template = test_dir / 'letter.erb'
|
206
190
|
template.write "Hello dear <%= name %>"
|
207
191
|
template.render(name: 'Mary').should == "Hello dear Mary"
|
208
192
|
end
|
@@ -211,7 +195,7 @@ describe 'File' do
|
|
211
195
|
require 'haml'
|
212
196
|
|
213
197
|
it 'render using other template engines' do
|
214
|
-
template =
|
198
|
+
template = test_dir / 'letter.haml'
|
215
199
|
template.write "Hello dear \#{name}"
|
216
200
|
template.render(name: 'Mary').should =~ /Hello dear Mary/
|
217
201
|
end
|
data/spec/misc_spec.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Miscellaneous' do
|
4
|
+
with_test_dir
|
5
|
+
|
6
|
+
it "File should respond to :to_file, :to_entry" do
|
7
|
+
path = "#{test_dir.path}/file"
|
8
|
+
File.open(path, 'w'){|f| f.write 'something'}
|
9
|
+
|
10
|
+
file = nil
|
11
|
+
begin
|
12
|
+
file = File.open path
|
13
|
+
file.to_file.path.should == file.path
|
14
|
+
file.to_entry.path.should == file.path
|
15
|
+
ensure
|
16
|
+
file.close
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -5,22 +5,22 @@ require 'tilt'
|
|
5
5
|
require 'vfs'
|
6
6
|
|
7
7
|
rspec do
|
8
|
-
def self.
|
8
|
+
def self.with_test_dir
|
9
9
|
before do
|
10
|
-
@
|
10
|
+
@test_dir = "/tmp/test_dir".to_dir
|
11
11
|
|
12
|
-
FileUtils.rm_r
|
13
|
-
FileUtils.mkdir_p
|
12
|
+
FileUtils.rm_r test_dir.path if File.exist? test_dir.path
|
13
|
+
FileUtils.mkdir_p test_dir.path
|
14
14
|
end
|
15
15
|
|
16
16
|
after do
|
17
|
-
FileUtils.rm_r
|
18
|
-
@
|
17
|
+
FileUtils.rm_r test_dir.path if File.exist? test_dir.path
|
18
|
+
@test_dir = nil
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
def
|
23
|
-
@
|
22
|
+
def test_dir
|
23
|
+
@test_dir
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
data/spec/storages/local_spec.rb
CHANGED
@@ -1,24 +1,24 @@
|
|
1
|
-
require 'vfs/
|
2
|
-
require 'vfs/
|
1
|
+
require 'vfs/drivers/local'
|
2
|
+
require 'vfs/drivers/specification'
|
3
3
|
|
4
|
-
describe Vfs::
|
4
|
+
describe Vfs::Drivers::Local do
|
5
5
|
with_tmp_spec_dir
|
6
6
|
|
7
7
|
before do
|
8
|
-
@
|
9
|
-
@
|
8
|
+
@driver = Vfs::Drivers::Local.new root: spec_dir
|
9
|
+
@driver.open
|
10
10
|
end
|
11
11
|
|
12
12
|
after do
|
13
|
-
@
|
13
|
+
@driver.close
|
14
14
|
end
|
15
15
|
|
16
|
-
it_should_behave_like 'vfs
|
17
|
-
it_should_behave_like 'vfs
|
18
|
-
it_should_behave_like 'vfs
|
19
|
-
it_should_behave_like 'vfs
|
20
|
-
it_should_behave_like 'vfs
|
21
|
-
it_should_behave_like 'vfs
|
22
|
-
it_should_behave_like 'vfs
|
23
|
-
it_should_behave_like 'vfs
|
16
|
+
it_should_behave_like 'vfs driver basic'
|
17
|
+
it_should_behave_like 'vfs driver attributes basic'
|
18
|
+
it_should_behave_like 'vfs driver files'
|
19
|
+
it_should_behave_like 'vfs driver full attributes for files'
|
20
|
+
it_should_behave_like 'vfs driver dirs'
|
21
|
+
it_should_behave_like 'vfs driver full attributes for dirs'
|
22
|
+
it_should_behave_like 'vfs driver query'
|
23
|
+
it_should_behave_like 'vfs driver tmp dir'
|
24
24
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'UniversalEntry' do
|
4
|
-
|
4
|
+
with_test_dir
|
5
5
|
|
6
6
|
before do
|
7
|
-
@path =
|
7
|
+
@path = test_dir['a/b/c']
|
8
8
|
end
|
9
9
|
|
10
10
|
describe 'existence' do
|
@@ -14,7 +14,7 @@ describe 'UniversalEntry' do
|
|
14
14
|
@path.should be_dir
|
15
15
|
@path.should exist
|
16
16
|
|
17
|
-
@path.file.create
|
17
|
+
@path.file.create
|
18
18
|
@path.should be_file
|
19
19
|
@path.should exist
|
20
20
|
end
|
@@ -24,17 +24,13 @@ describe 'UniversalEntry' do
|
|
24
24
|
it "should destroy both files and dirs" do
|
25
25
|
@path.dir.create
|
26
26
|
@path.should be_dir
|
27
|
-
@path.destroy
|
27
|
+
@path.entry.destroy
|
28
28
|
@path.should_not exist
|
29
29
|
|
30
30
|
@path.file.create
|
31
31
|
@path.should be_file
|
32
|
-
@path.destroy
|
32
|
+
@path.entry.destroy
|
33
33
|
@path.should_not exist
|
34
|
-
|
35
|
-
@path.file.create
|
36
|
-
@path.destroy!
|
37
|
-
@path.file.should_not exist
|
38
34
|
end
|
39
35
|
|
40
36
|
it "shouldn't raise if file not exist" do
|
@@ -42,6 +38,32 @@ describe 'UniversalEntry' do
|
|
42
38
|
end
|
43
39
|
end
|
44
40
|
|
45
|
-
describe 'copy_to'
|
41
|
+
describe 'copy_to' do
|
42
|
+
before do
|
43
|
+
@from = @path.dir
|
44
|
+
@from.create
|
45
|
+
@from.file('file').write 'something'
|
46
|
+
@from.dir('dir').create.tap do |dir|
|
47
|
+
dir.file('file2').write 'something2'
|
48
|
+
end
|
49
|
+
|
50
|
+
@to = test_dir['to']
|
51
|
+
end
|
52
|
+
|
53
|
+
it "shoud copy dir" do
|
54
|
+
@from.entry.copy_to @to
|
55
|
+
@to['dir/file2'].file?.should be_true
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should copy file" do
|
59
|
+
@from['file'].entry.copy_to @to
|
60
|
+
@to.file.should be_true
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should raise if entry not exist" do
|
64
|
+
-> {@from['non existing'].entry.copy_to @to}.should raise_error(/not exist/)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
46
68
|
describe 'move_to'
|
47
69
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vfs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-08
|
12
|
+
date: 2011-09-08 00:00:00.000000000Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email:
|
@@ -19,23 +19,23 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- Rakefile
|
21
21
|
- readme.md
|
22
|
+
- lib/vfs/drivers/local.rb
|
23
|
+
- lib/vfs/drivers/specification.rb
|
22
24
|
- lib/vfs/entries/dir.rb
|
23
25
|
- lib/vfs/entries/entry.rb
|
24
26
|
- lib/vfs/entries/file.rb
|
25
27
|
- lib/vfs/entries/universal_entry.rb
|
26
28
|
- lib/vfs/entry_proxy.rb
|
27
29
|
- lib/vfs/error.rb
|
28
|
-
- lib/vfs/integration
|
30
|
+
- lib/vfs/integration.rb
|
29
31
|
- lib/vfs/path.rb
|
30
|
-
- lib/vfs/storages/local.rb
|
31
|
-
- lib/vfs/storages/specification.rb
|
32
|
-
- lib/vfs/support.rb
|
33
32
|
- lib/vfs/vfs.rb
|
34
33
|
- lib/vfs.rb
|
35
34
|
- spec/container_spec.rb
|
36
35
|
- spec/dir_spec.rb
|
37
36
|
- spec/entry_spec.rb
|
38
37
|
- spec/file_spec.rb
|
38
|
+
- spec/misc_spec.rb
|
39
39
|
- spec/path_spec.rb
|
40
40
|
- spec/spec_helper.rb
|
41
41
|
- spec/storages/local_spec/emptygit
|
@@ -1,20 +0,0 @@
|
|
1
|
-
class String
|
2
|
-
def to_entry_on storage = nil
|
3
|
-
path = self
|
4
|
-
storage ||= Vfs.default_storage
|
5
|
-
|
6
|
-
path = "./#{path}" unless path =~ /^[\/\.\~]/
|
7
|
-
Vfs::Dir.new(storage, path)
|
8
|
-
end
|
9
|
-
alias_method :to_entry, :to_entry_on
|
10
|
-
|
11
|
-
def to_file_on storage = nil
|
12
|
-
to_entry_on(storage).file
|
13
|
-
end
|
14
|
-
alias_method :to_file, :to_file_on
|
15
|
-
|
16
|
-
def to_dir_on storage = nil
|
17
|
-
to_entry_on(storage).dir
|
18
|
-
end
|
19
|
-
alias_method :to_dir, :to_dir_on
|
20
|
-
end
|