fs 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -3,3 +3,5 @@
3
3
  Gemfile.lock
4
4
  pkg/*
5
5
  .rvmrc
6
+ .yardoc/
7
+ doc/
data/Rakefile CHANGED
@@ -3,4 +3,10 @@ Bundler::GemHelper.install_tasks
3
3
 
4
4
  require 'rspec/core/rake_task'
5
5
  RSpec::Core::RakeTask.new
6
- task :default => :spec
6
+ task :default => :spec
7
+
8
+ require 'yard'
9
+ YARD::Rake::YardocTask.new do |t|
10
+ t.files = ['lib/**/*.rb']
11
+ t.options = ["--title", "FS #{FS::VERSION}"]
12
+ end
data/fs.gemspec CHANGED
@@ -13,7 +13,8 @@ Gem::Specification.new do |s|
13
13
  s.description = %q{FS gathers the cluttered methods for working with files and dirs. Internally using the good old standard library, but providing simple methods in a single place.}
14
14
 
15
15
  s.add_development_dependency 'rspec', '2.5.0'
16
- s.add_development_dependency 'fakefs', '0.3.1'
16
+ s.add_development_dependency 'yard', '0.6.5'
17
+ s.add_development_dependency 'bluecloth', '2.1.0'
17
18
 
18
19
  s.files = `git ls-files`.split("\n")
19
20
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
data/lib/fs.rb CHANGED
@@ -1,80 +1,10 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__)) unless $LOAD_PATH.include?(File.dirname(__FILE__))
2
+
1
3
  require 'fileutils'
4
+ require 'etc'
5
+ require 'fs/base'
2
6
 
3
7
  module FS
4
8
  extend self
5
-
6
- # FileUtils.touch
7
- def touch(files)
8
- FileUtils.touch(files)
9
- end
10
-
11
- # FileUtils#mkdir
12
- def makedir(dirs)
13
- FileUtils.mkdir(dirs)
14
- end
15
-
16
- # FileUtils#mkdir_p
17
- def makedirs(dirs)
18
- FileUtils.mkdir_p(dirs)
19
- end
20
-
21
- # Dir#entries
22
- def list(dir, pattern='*')
23
- glob(dir, pattern)
24
- end
25
-
26
- # Find#find
27
- def find(dir, pattern='*')
28
- glob(dir, '**', pattern)
29
- end
30
-
31
- # FileUtils#mv
32
- def move(*froms, to)
33
- froms.each do |from|
34
- FileUtils.mv(from, to)
35
- end
36
- end
37
-
38
- # FileUtils#rm
39
- def remove(*pathes)
40
- FileUtils.rm(pathes, :verbose => true)
41
- end
42
-
43
- # File#open(file, 'w')
44
- def write(file, content=nil, &block)
45
- if block_given?
46
- File.open(file, 'w', &block)
47
- else
48
- File.open(file, 'w') {|f| f.write(content) }
49
- end
50
- end
51
-
52
- # File#open(file, 'r')
53
- def read(file, &block)
54
- if block_given?
55
- File.open(file, 'r', &block)
56
- else
57
- content = nil
58
- File.open(file, 'r') {|f| content = f.read }
59
- content
60
- end
61
- end
62
-
63
-
64
- def root
65
- '/'
66
- end
67
-
68
- def home(user=nil)
69
- Dir.home(user)
70
- end
71
-
72
- private
73
-
74
- def glob(dir, *patterns)
75
- Dir.glob(File.join(dir, patterns)).map do |path|
76
- path.gsub(/^\.?#{dir}\/?/, '')
77
- end
78
- end
79
-
9
+ extend FS::Base
80
10
  end
data/lib/fs/base.rb ADDED
@@ -0,0 +1,83 @@
1
+ module FS
2
+ module Base
3
+ # FileUtils.touch
4
+ def touch(files)
5
+ FileUtils.touch(files)
6
+ end
7
+
8
+ # FileUtils#mkdir
9
+ def makedir(dirs)
10
+ FileUtils.mkdir(dirs)
11
+ end
12
+
13
+ # FileUtils#mkdir_p
14
+ def makedirs(dirs)
15
+ FileUtils.mkdir_p(dirs)
16
+ end
17
+
18
+ # Dir#glob
19
+ def list(dir='.', pattern='*')
20
+ glob(dir, pattern)
21
+ end
22
+
23
+ # Dir#glob
24
+ # TODO: use Find#find
25
+ def find(dir='.', pattern='*')
26
+ glob(dir, '**', pattern)
27
+ end
28
+
29
+ # FileUtils#mv
30
+ def move(*froms, to)
31
+ froms.each do |from|
32
+ FileUtils.mv(from, to)
33
+ end
34
+ end
35
+
36
+ # FileUtils#rm
37
+ def remove(*pathes)
38
+ FileUtils.rm(pathes)
39
+ end
40
+
41
+ # File#open(file, 'w')
42
+ def write(file, content=nil, &block)
43
+ if block_given?
44
+ File.open(file, 'w', &block)
45
+ else
46
+ File.open(file, 'w') {|f| f.write(content) }
47
+ end
48
+ end
49
+
50
+ # File#open(file, 'r')
51
+ def read(file, &block)
52
+ if block_given?
53
+ File.open(file, 'r', &block)
54
+ else
55
+ content = nil
56
+ File.open(file, 'r') {|f| content = f.read }
57
+ content
58
+ end
59
+ end
60
+
61
+ # Dir#home
62
+ def home(user=nil)
63
+ Dir.home(user)
64
+ end
65
+
66
+ # always returns '/'
67
+ def root
68
+ '/'
69
+ end
70
+
71
+ private
72
+
73
+ def assert_dir(path)
74
+ raise "not a directory: #{path}" unless File.directory?(path)
75
+ end
76
+
77
+ def glob(dir, *patterns)
78
+ Dir.glob(File.join(dir, patterns)).map do |path|
79
+ path.gsub(/^\.?#{dir}\/?/, '')
80
+ end
81
+ end
82
+ end
83
+ end
data/lib/fs/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module FS
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/spec/base_spec.rb ADDED
@@ -0,0 +1,221 @@
1
+ require 'spec_helper'
2
+
3
+ describe FS::Base do
4
+
5
+ describe 'touch' do
6
+ it 'touches a single file' do
7
+ file = 'foobar.txt'
8
+ FS.touch(file)
9
+ File.exist?(file).should be_true
10
+ end
11
+
12
+ it 'touches a list of files' do
13
+ files = ['foo.txt', 'bar.txt']
14
+ FS.touch(files)
15
+ files.each do |file|
16
+ File.exist?(file).should be_true
17
+ end
18
+ end
19
+ end
20
+
21
+ describe 'makedir' do
22
+ it 'creates a dir' do
23
+ FS.makedir('foo')
24
+ File.directory?('foo').should be_true
25
+ end
26
+
27
+ it 'fails if a parent dir is missing' do
28
+ lambda {FS.makedir('foo/bar')}.should raise_error
29
+ end
30
+ end
31
+
32
+ describe 'makedirs' do
33
+ it 'creates all missing parent dirs' do
34
+ FS.makedirs 'foo/bar/baz'
35
+ File.directory?('foo').should be_true
36
+ File.directory?('foo/bar').should be_true
37
+ File.directory?('foo/bar/baz').should be_true
38
+ end
39
+ end
40
+
41
+ describe 'list' do
42
+ it 'returns an empty list if there are no files' do
43
+ FS.list.should be_empty
44
+ end
45
+
46
+ it 'lists all files and dirs (without . and ..)' do
47
+ FS.touch('file')
48
+ FS.makedir('dir')
49
+ FS.list.should eql(['dir', 'file'])
50
+ end
51
+
52
+ it 'lists files and dirs in the current dir' do
53
+ FS.makedir('foo')
54
+ FS.makedir('foo/dir')
55
+ FS.touch('foo/file')
56
+ Dir.chdir('foo')
57
+ FS.list.should eql(['dir', 'file'])
58
+ end
59
+
60
+ it 'globs files and dirs' do
61
+ FS.touch('file.txt')
62
+ FS.touch('file.rb')
63
+ FS.makedir('dir.txt')
64
+ FS.makedir('dir.rb')
65
+ FS.list('.', '*.txt').should eql(['dir.txt', 'file.txt'])
66
+ end
67
+
68
+ it 'globs files and dirs' do
69
+ FS.touch('file.txt')
70
+ FS.touch('file.rb')
71
+ FS.makedir('dir.txt')
72
+ FS.makedir('dir.rb')
73
+ FS.list('.', '*.txt').should eql(['dir.txt', 'file.txt'])
74
+ end
75
+
76
+ it 'lists files and dirs in a subdir' do
77
+ FS.makedir('foo')
78
+ FS.makedir('foo/dir')
79
+ FS.touch('foo/file')
80
+ FS.list('foo').should eql(['dir', 'file'])
81
+ end
82
+
83
+ it 'globs files and dirs in a subdir' do
84
+ FS.makedir('foo')
85
+ FS.touch('foo/file.txt')
86
+ FS.touch('foo/file.rb')
87
+ FS.makedir('foo/dir.txt')
88
+ FS.makedir('foo/dir.rb')
89
+ FS.list('foo', '*.txt').should eql(['dir.txt', 'file.txt'])
90
+ end
91
+ end
92
+
93
+ describe 'find' do
94
+ it 'returns an empty list if there are no files' do
95
+ FS.find('.').should be_empty
96
+ end
97
+
98
+ it 'finds files in all subdirs' do
99
+ FS.makedirs('one/two/three')
100
+ FS.touch('one/file.one')
101
+ FS.touch('one/two/three/file.three')
102
+ FS.find.should eql([
103
+ 'one',
104
+ 'one/file.one',
105
+ 'one/two',
106
+ 'one/two/three',
107
+ 'one/two/three/file.three'
108
+ ])
109
+ end
110
+
111
+ it 'globs files in all subdirs' do
112
+ FS.makedirs('one/two/three')
113
+ FS.touch('one/file.one')
114
+ FS.touch('one/two/three/file.three')
115
+ FS.find('.', 'file.*').should eql([
116
+ 'one/file.one',
117
+ 'one/two/three/file.three'
118
+ ])
119
+ end
120
+ end
121
+
122
+ describe 'move' do
123
+ it 'rename a file' do
124
+ FS.touch('foo.txt')
125
+ FS.move('foo.txt', 'bar.txt')
126
+ FS.list.should eql(['bar.txt'])
127
+ end
128
+
129
+ it 'moves a file' do
130
+ FS.touch('foo.txt')
131
+ FS.makedirs('tmp')
132
+ FS.move('foo.txt', 'tmp')
133
+ FS.list.should eql(['tmp'])
134
+ FS.list('tmp').should eql(['foo.txt'])
135
+ end
136
+
137
+ it 'moves files and dirs' do
138
+ FS.touch('file')
139
+ FS.makedir('dir')
140
+ FS.makedir('tmp')
141
+ FS.move('file', 'dir', 'tmp')
142
+ FS.list.should eql(['tmp'])
143
+ FS.list('tmp').should eql(['dir', 'file'])
144
+ end
145
+ end
146
+
147
+ describe 'remove' do
148
+ it 'removes files' do
149
+ FS.touch('file')
150
+ FS.remove('file')
151
+ FS.list.should be_empty
152
+ end
153
+
154
+ it 'removes multiple files' do
155
+ FS.touch('file.a')
156
+ FS.touch('file.b')
157
+ FS.remove('file.a', 'file.b')
158
+ FS.list.should be_empty
159
+ end
160
+
161
+ it 'fails on dirs' do
162
+ FS.makedir('dir')
163
+ lambda {FS.remove('dir')}.should raise_error
164
+ end
165
+
166
+ # FIXME: fakefs
167
+ # it 'fails if the dir is not empty' do
168
+ # FS.makedir('/foo')
169
+ # FS.touch('/foo/bar')
170
+ # lambda {FS.remove('/foo')}.should raise_error
171
+ # end
172
+ end
173
+
174
+ describe 'write' do
175
+ it 'writes content from a string' do
176
+ FS.write('foo.txt', 'bar')
177
+ File.open('foo.txt').read.should eql('bar')
178
+ end
179
+
180
+ it 'writes content from a block' do
181
+ FS.write('foo.txt') {|f| f.write 'bar' }
182
+ File.open('foo.txt').read.should eql('bar')
183
+ end
184
+ end
185
+
186
+ describe 'read' do
187
+ it 'reads the content to a string' do
188
+ File.open('foo.txt', 'w') {|f| f.write 'bar' }
189
+ FS.read('foo.txt').should eql('bar')
190
+ end
191
+
192
+ it 'reads the content to a block' do
193
+ File.open('foo.txt', 'w') {|f| f.write 'bar' }
194
+ FS.read('foo.txt') {|f| f.read.should eql('bar')}
195
+ end
196
+ end
197
+
198
+ describe 'root' do
199
+ it 'always returns /' do
200
+ FS.root.should eql('/')
201
+ end
202
+ end
203
+
204
+ describe 'home' do
205
+ it 'returns the home of the current user' do
206
+ FS.home.should match(/\/#{Etc.getlogin}$/)
207
+ end
208
+
209
+ it 'returns the home of another user' do
210
+ FS.home('root').should match(/\/root$/)
211
+ end
212
+ end
213
+
214
+ # describe 'removedir'
215
+ # describe 'removedirs'
216
+ # describe 'currentdir'
217
+ # describe 'changedir'
218
+ # describe 'copy'
219
+ # describe 'link'
220
+
221
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  require 'rspec/core'
2
- Dir['./spec/support/**/*.rb'].map {|f| require f}
2
+ require 'fs'
3
3
 
4
- require 'fs'
4
+ Dir['./spec/support/**/*.rb'].map {|f| require f}
@@ -0,0 +1,33 @@
1
+ module FS
2
+ module SpecHelpers
3
+
4
+ def self.extended(example_group)
5
+ example_group.use_helper(example_group)
6
+ end
7
+
8
+ def self.included(example_group)
9
+ example_group.extend self
10
+ end
11
+
12
+ def use_helper(describe_block)
13
+ describe_block.before :each do
14
+ unless @test_dir
15
+ @test_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'tmp', 'test'))
16
+ FileUtils.mkdir_p(@test_dir)
17
+ Dir.chdir(@test_dir)
18
+ end
19
+ end
20
+
21
+ describe_block.after :each do
22
+ if @test_dir
23
+ FileUtils.rm_r(@test_dir)
24
+ @test_dir = nil
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ RSpec.configure do |config|
32
+ config.include FS::SpecHelpers
33
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe FS do
4
+ describe 'test dir' do
5
+ it 'is absolute' do
6
+ Pathname.new(@test_dir).should be_absolute
7
+ end
8
+
9
+ it 'is created' do
10
+ File.exist?(@test_dir).should be_true
11
+ end
12
+
13
+ it 'is a directory' do
14
+ File.directory?(@test_dir).should be_true
15
+ end
16
+
17
+ it 'is empty' do
18
+ Dir.entries(@test_dir).should eql([".", ".."])
19
+ end
20
+
21
+ it 'is the current dir' do
22
+ File.expand_path(Dir.pwd).should eql(@test_dir)
23
+ end
24
+
25
+ it 'is deleted when not empty' do
26
+ filename = 'test.file'
27
+ FileUtils.touch(filename)
28
+ File.exist?(File.join(@test_dir, filename)).should be_true
29
+ end
30
+ end
31
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: fs
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.1
5
+ version: 0.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - "Bernd J\xC3\xBCnger"
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-03-28 00:00:00 +02:00
13
+ date: 2011-03-29 00:00:00 +02:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -25,16 +25,27 @@ dependencies:
25
25
  type: :development
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
28
- name: fakefs
28
+ name: yard
29
29
  prerelease: false
30
30
  requirement: &id002 !ruby/object:Gem::Requirement
31
31
  none: false
32
32
  requirements:
33
33
  - - "="
34
34
  - !ruby/object:Gem::Version
35
- version: 0.3.1
35
+ version: 0.6.5
36
36
  type: :development
37
37
  version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: bluecloth
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - "="
45
+ - !ruby/object:Gem::Version
46
+ version: 2.1.0
47
+ type: :development
48
+ version_requirements: *id003
38
49
  description: FS gathers the cluttered methods for working with files and dirs. Internally using the good old standard library, but providing simple methods in a single place.
39
50
  email:
40
51
  - blindgaenger@gmail.com
@@ -51,10 +62,12 @@ files:
51
62
  - Rakefile
52
63
  - fs.gemspec
53
64
  - lib/fs.rb
65
+ - lib/fs/base.rb
54
66
  - lib/fs/version.rb
55
- - spec/fs_spec.rb
67
+ - spec/base_spec.rb
56
68
  - spec/spec_helper.rb
57
- - spec/support/fakefs_support.rb
69
+ - spec/support/test_dir_support.rb
70
+ - spec/test_dir_spec.rb
58
71
  has_rdoc: true
59
72
  homepage: http://github.com/blindgaenger/fs
60
73
  licenses: []
@@ -84,6 +97,7 @@ signing_key:
84
97
  specification_version: 3
85
98
  summary: Work with your filesystem!
86
99
  test_files:
87
- - spec/fs_spec.rb
100
+ - spec/base_spec.rb
88
101
  - spec/spec_helper.rb
89
- - spec/support/fakefs_support.rb
102
+ - spec/support/test_dir_support.rb
103
+ - spec/test_dir_spec.rb
data/spec/fs_spec.rb DELETED
@@ -1,196 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FS do
4
-
5
- describe 'touch' do
6
- it 'touches a single file' do
7
- file = '/foobar.txt'
8
- FS.touch(file)
9
- File.exist?(file).should be_true
10
- end
11
-
12
- it 'touches a list of files' do
13
- files = ['/foo.txt', '/bar.txt']
14
- FS.touch(files)
15
- files.each do |file|
16
- File.exist?(file).should be_true
17
- end
18
- end
19
- end
20
-
21
- describe 'makedir' do
22
- it 'creates a dir' do
23
- FS.makedir('/foo')
24
- File.directory?('/foo').should be_true
25
- end
26
-
27
- it 'fails if a parent dir is missing' do
28
- lambda {FS.makedir('/foo/bar')}.should raise_error
29
- end
30
- end
31
-
32
- describe 'makedirs' do
33
- it 'creates all missing parent dirs' do
34
- FS.makedirs '/foo/bar/baz'
35
- File.directory?('/foo').should be_true
36
- File.directory?('/foo/bar').should be_true
37
- File.directory?('/foo/bar/baz').should be_true
38
- end
39
- end
40
-
41
- describe 'list' do
42
- it 'returns an empty list if there are no files' do
43
- FS.list('/').should be_empty
44
- end
45
-
46
- it 'lists all files and dirs (without . and ..)' do
47
- FS.touch('/foo')
48
- FS.makedir('/bar')
49
- FS.list('/').should eql(['foo', 'bar'])
50
- end
51
-
52
- it 'globs files and dirs' do
53
- FS.touch('/file.txt')
54
- FS.touch('/file.rb')
55
- FS.makedir('/dir.txt')
56
- FS.makedir('/dir.rb')
57
- FS.list('/', '*.txt').should eql(['file.txt', 'dir.txt'])
58
- end
59
-
60
- it 'lists files and dirs in a subdir' do
61
- FS.makedir('/foo')
62
- FS.makedir('/foo/dir')
63
- FS.touch('/foo/file')
64
- FS.list('/foo').should eql(['dir', 'file'])
65
- end
66
-
67
- it 'globs files and dirs in a subdir' do
68
- FS.makedir('/foo')
69
- FS.touch('/foo/file.txt')
70
- FS.touch('/foo/file.rb')
71
- FS.makedir('/foo/dir.txt')
72
- FS.makedir('/foo/dir.rb')
73
- FS.list('/foo', '*.txt').should eql(['dir.txt', 'file.txt'])
74
- end
75
- end
76
-
77
- describe 'find' do
78
- it 'returns an empty list if there are no files' do
79
- FS.list('/').should be_empty
80
- end
81
-
82
- it 'finds files in all subdirs' do
83
- FS.makedirs('/one/two/three')
84
- FS.touch('/one/file.one')
85
- FS.touch('/one/two/three/file.three')
86
- FS.find('/').should eql([
87
- 'one',
88
- 'one/file.one',
89
- 'one/two',
90
- 'one/two/three',
91
- 'one/two/three/file.three'
92
- ])
93
- end
94
-
95
- it 'globs files in all subdirs' do
96
- FS.makedirs('/one/two/three')
97
- FS.touch('/one/file.one')
98
- FS.touch('/one/two/three/file.three')
99
- FS.find('/', 'file.*').should eql([
100
- 'one/file.one',
101
- 'one/two/three/file.three'
102
- ])
103
- end
104
- end
105
-
106
- describe 'move' do
107
- it 'rename a file' do
108
- FS.touch('/foo.txt')
109
- FS.move('/foo.txt', '/bar.txt')
110
- FS.list('/').should eql(['bar.txt'])
111
- end
112
-
113
- # FIXME: fakefs
114
- # it 'moves a file' do
115
- # FS.touch('/foo.txt')
116
- # FS.makedirs('/tmp')
117
- # FS.move('/foo.txt', '/tmp')
118
- # FS.list('/').should eql(['tmp'])
119
- # FS.list('/tmp').should eql(['foo.txt'])
120
- # end
121
-
122
- # FIXME: fakefs
123
- # it 'moves files and dirs' do
124
- # FS.touch('/file')
125
- # FS.makedir('/dir')
126
- # FS.makedir('/tmp')
127
- # FS.move('/file', '/dir', '/tmp')
128
- # FS.list('/').should eql(['tmp'])
129
- # FS.list('/tmp').should eql(['file', 'dir'])
130
- # end
131
- end
132
-
133
- describe 'remove' do
134
- it 'removes files and dirs' do
135
- FS.touch('/file')
136
- FS.makedir('/dir')
137
- FS.remove('/file', '/dir')
138
- FS.list('/').should be_empty
139
- end
140
-
141
- # FIXME: fakefs
142
- # it 'fails if the dir is not empty' do
143
- # FS.makedir('/foo')
144
- # FS.touch('/foo/bar')
145
- # lambda {FS.remove('/foo')}.should raise_error
146
- # end
147
- end
148
-
149
- describe 'write' do
150
- it 'writes content from a string' do
151
- FS.write('/foo.txt', 'bar')
152
- File.open('/foo.txt').read.should eql('bar')
153
- end
154
-
155
- it 'writes content from a block' do
156
- FS.write('/foo.txt') {|f| f.write 'bar' }
157
- File.open('/foo.txt').read.should eql('bar')
158
- end
159
- end
160
-
161
- describe 'read' do
162
- it 'reads the content to a string' do
163
- File.open('/foo.txt', 'w') {|f| f.write 'bar' }
164
- FS.read('/foo.txt').should eql('bar')
165
- end
166
-
167
- it 'reads the content to a block' do
168
- File.open('/foo.txt', 'w') {|f| f.write 'bar' }
169
- FS.read('/foo.txt') {|f| f.read.should eql('bar')}
170
- end
171
- end
172
-
173
- describe 'root' do
174
- it 'always returns /' do
175
- FS.root.should eql('/')
176
- end
177
- end
178
-
179
- describe 'home' do
180
- it 'returns the home of the current user' do
181
- FS.home.should eql('/Users/me')
182
- end
183
-
184
- it 'returns the home of another user' do
185
- FS.home('you').should eql('/Users/you')
186
- end
187
- end
188
-
189
- # describe 'removedir'
190
- # describe 'removedirs'
191
- # describe 'currentdir'
192
- # describe 'changedir'
193
- # describe 'copy'
194
- # describe 'link'
195
-
196
- end
@@ -1,32 +0,0 @@
1
- require 'fakefs/spec_helpers'
2
-
3
- RSpec.configure do |config|
4
- config.include FakeFS::SpecHelpers
5
- end
6
-
7
- # FileUtils.mkdir is not handled
8
- # https://github.com/defunkt/fakefs/issues/closed#issue/37
9
- #
10
- # Patch:
11
- # https://github.com/flavio/fakefs/blob/ea22773bc293ea3bce97317086b8171669780eab/lib/fakefs/fileutils.rb
12
- module FakeFS
13
- module FileUtils
14
- extend self
15
- def mkdir(path)
16
- parent = path.split('/')
17
- parent.pop
18
- raise Errno::ENOENT, "No such file or directory - #{path}" unless parent.join == "" || FileSystem.find(parent.join('/'))
19
- raise Errno::EEXIST, "File exists - #{path}" if FileSystem.find(path)
20
- FileSystem.add(path, FakeDir.new)
21
- end
22
- end
23
- end
24
-
25
-
26
- module FakeFS
27
- class Dir
28
- def self.home(user=nil)
29
- "/Users/#{user || 'me'}"
30
- end
31
- end
32
- end