files 0.0.4 → 0.1.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/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