files 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Files
2
2
 
3
- *a simple DSL for creating files and directories*
3
+ *a simple DSL for creating temporary files and directories*
4
4
 
5
5
  ## Usage
6
6
 
@@ -28,12 +28,12 @@ see `test/files_test.rb` for more examples
28
28
 
29
29
  ## TODO
30
30
 
31
- * :path option -- specifying the location of the temporary dir (default: Dir.tmpdir)
31
+ * :path option -- specifying the parent of the temporary dir (default: Dir.tmpdir)
32
32
  * take a hash
33
33
  * take a YAML file or string
34
34
  * emit a hash
35
35
  * emit a YAML file or string
36
- * symlinks (?)
36
+ * support symlinks (?)
37
37
  * specify file mode
38
38
  * copy an entire data dir
39
39
  * play nice with FakeFS (possibly with a :fake option)
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.authors = ["Alex Chaffee"]
9
9
  s.email = ["alex@stinky.com"]
10
10
  s.homepage = ""
11
- s.summary = %q{a simple DSL for creating files and directories}
11
+ s.summary = %q{a simple DSL for creating temporary files and directories}
12
12
  s.description = %q{Sometimes you want to create a whole bunch of files at once, like when you're testing a tool that processes a whole bunch of files. The Files gem lets you cleanly specify those files and their contents inside your test code, instead of making you create a fixture directory and check it in to your repo. It puts them in a temporary directory and cleans up when your test is done.}
13
13
 
14
14
  s.rubyforge_project = "files"
@@ -29,19 +29,18 @@ module Files
29
29
 
30
30
  def initialize path, block, options
31
31
  @root = path
32
- @dirs = [path]
33
-
34
- Dir.mkdir(path)
32
+ @dirs = []
33
+ dir path, &block
35
34
  at_exit {FileUtils.rm_rf(path) if File.exists?(path)} if options[:remove]
36
-
37
- instance_eval &block if block
38
35
  end
39
36
 
40
37
  def dir name, &block
41
38
  path = "#{current}/#{name}"
42
39
  Dir.mkdir path
43
40
  @dirs << name
44
- instance_eval &block if block
41
+ Dir.chdir(path) do
42
+ instance_eval &block if block
43
+ end
45
44
  @dirs.pop
46
45
  path
47
46
  end
@@ -1,3 +1,3 @@
1
1
  module Files
2
- VERSION = "0.0.4"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -85,3 +85,13 @@ end
85
85
  assert { stuff == "#{dir}/stuff" }
86
86
  assert { hello == "#{dir}/stuff/hello.txt" }
87
87
 
88
+ dir_inside_do_block = nil
89
+ dir = Files do
90
+ dir_inside_do_block = Dir.pwd
91
+ dir "xyzzy" do
92
+ assert("sets the current directory inside the dir block") { File.basename(Dir.pwd) == "xyzzy" }
93
+ end
94
+ end
95
+ assert("sets the current directory inside the Files block") { File.basename(dir_inside_do_block) == File.basename(dir) }
96
+ # note that we can't just compare the full paths because some OS's hard link their temp dir to different base paths
97
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: files
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -45,7 +45,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
45
45
  version: '0'
46
46
  segments:
47
47
  - 0
48
- hash: -1672027565997057285
48
+ hash: -255388511158483173
49
49
  required_rubygems_version: !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
@@ -54,13 +54,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
54
54
  version: '0'
55
55
  segments:
56
56
  - 0
57
- hash: -1672027565997057285
57
+ hash: -255388511158483173
58
58
  requirements: []
59
59
  rubyforge_project: files
60
60
  rubygems_version: 1.8.6
61
61
  signing_key:
62
62
  specification_version: 3
63
- summary: a simple DSL for creating files and directories
63
+ summary: a simple DSL for creating temporary files and directories
64
64
  test_files:
65
65
  - test/data/cheez_doing_it_wrong.jpg
66
66
  - test/files_test.rb