given_filesystem 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/.gitignore ADDED
@@ -0,0 +1 @@
1
+ .rspec
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/MIT-LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2014 Cornelius Schumacher <schumacher@kde.org>
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,188 @@
1
+ # GivenFilesystem
2
+
3
+ GivenFilesystem is a set of helpers for testing code which operates on file
4
+ systems. It lets you create temporary directories and files with given content as
5
+ test data. You can write to these directories and GivenFilesystem takes care of
6
+ cleaning up after the test. It only assumes that you can set the path to your
7
+ file system data in your tests.
8
+
9
+ GivenFilesystem provides helpers for RSpec and a standalone class.
10
+
11
+ ## Usage with RSpec
12
+
13
+ ### Setup
14
+
15
+ To use the GivenFilesystem helpers in a RSpec test you have to include the
16
+ `GivenFileSystemSpecHelpers` module to get access to the helper methods, and
17
+ set up the temporary test directory by calling `use_given_filesystem`:
18
+
19
+ ```ruby
20
+ include GivenFileSystemSpecHelpers
21
+
22
+ describe "some test" do
23
+ use_given_filesystem
24
+
25
+ it "tests something" do
26
+ ...
27
+ end
28
+ end
29
+ ```
30
+
31
+ The activation with `use_given_filesystem` gives you fine-grained control
32
+ about in which scope the test directories are created. It takes a parameter to
33
+ optionally keep the created test files around:
34
+
35
+ ```ruby
36
+ use_given_filesystem( :keep_files => true )
37
+ ```
38
+
39
+ This can be useful when debugging tests.
40
+
41
+
42
+ ### File fixtures
43
+
44
+ With GivenFilesystem you can create directories and files with pre-defined
45
+ content. These can be used as test fixtures for code reading from a file
46
+ system.
47
+
48
+ File fixtures, i.e. files containing test content, are stored in the
49
+ `spec/data/` directory. GivenFilesystem provides helper functions to create
50
+ temporary directories with defined structure and content using the file
51
+ fixtures. The file names can be taken directly from the name of the file
52
+ fixtures or be defined when creating the test directory structure.
53
+
54
+
55
+ ### Creating directories
56
+
57
+ Create a temporary directory for writing test data:
58
+
59
+ ```ruby
60
+ path = given_directory
61
+ ```
62
+
63
+ Use the returned path to access the directory.
64
+
65
+ Create an empty temporary directory with a given name for writing test data:
66
+
67
+ ```ruby
68
+ path = given_directory "myname"
69
+ ```
70
+
71
+ Create a temporary directory with a given from data you provide in the
72
+ directory `spec/data` of your project:
73
+
74
+ ```ruby
75
+ path = given_directory_from_data "myname"
76
+ ```
77
+
78
+ This copies the directory `spec/data/myname` to a temporary test directory
79
+ and returns the path to the `myname` directory.
80
+
81
+ You can also create the directory under a different name:
82
+
83
+ ```ruby
84
+ path = given_directory_from_data "myothername", :from => "myname"
85
+ ```
86
+
87
+ This will copy the same data, but put it into a directory named `myothername`.
88
+
89
+
90
+ ### Creating files
91
+
92
+ Create a temporary file with arbitrary content:
93
+
94
+ ```ruby
95
+ path = given_dummy_file
96
+ ```
97
+
98
+ Use the returned path to access the file.
99
+
100
+ Create a temporary file with given content taken from a file fixture:
101
+
102
+ ```ruby
103
+ path = given_file "myfixture"
104
+ ```
105
+
106
+ The content of the file is taken from a file fixture stored in your `spec/data`
107
+ directory. The name of the created file is the same as the name of the file
108
+ containing the test content.
109
+
110
+ Create a temporary file with given content under a different name:
111
+
112
+ ```ruby
113
+ path = given_file "myspecialfile", :from => "myfixture"
114
+ ```
115
+
116
+ The content of the file is taken from the file `spec/data/myfixture` and stored
117
+ under the name `myspecialfile` in a temporary directory. You can access it under
118
+ the returned path.
119
+
120
+
121
+ ### Creating structures of directories and files
122
+
123
+ You can combine `given_directory` and `given_file` to create file system
124
+ structures as input for you tests. Here is an example:
125
+
126
+ ```ruby
127
+ path = given_directory "mydir" do
128
+ given_directory "one" do
129
+ given_file "myfile"
130
+ given_file "myotherfile"
131
+ end
132
+ given_directory "two" do
133
+ given_file "myfile2", :from => "myfile"
134
+ end
135
+ end
136
+ ```
137
+
138
+ This will create the following file system structure and return the path to the
139
+ temporary directory `mydir`, which you can then use in your tests to access the
140
+ data:
141
+
142
+ ```
143
+ /tmp/
144
+ given_filesystem/
145
+ 3845-20140216-74592/
146
+ mydir/
147
+ one/
148
+ myfile
149
+ myotherfile
150
+ two/
151
+ myfile2
152
+ ```
153
+
154
+ ### Using directory structures in name parameters
155
+
156
+ All directory or file name parameters can contain additional directory
157
+ structure. The required nested directories are automatically created. For
158
+ example the call
159
+
160
+ ```ruby
161
+ given_directory( "a/b/c" )
162
+ ```
163
+
164
+ will create the following structure:
165
+
166
+ ```
167
+ /tmp/
168
+ given_filesystem/
169
+ 7373-2014-03-15-98223/
170
+ a/
171
+ b/
172
+ c/
173
+ ```
174
+
175
+ and return the path to the directory `a`.
176
+
177
+ ## License
178
+
179
+ You may use GivenFilesystem under the terms of the MIT license.
180
+
181
+ ## Contact
182
+
183
+ If you have questions or comments about GivenFilesystem don't hesitate to get in
184
+ touch with [Cornelius Schumacher](mailto:schumacher@kde.org).
185
+
186
+ ## Thanks
187
+
188
+ Thanks to David Majda for reviewing code and documentation.
@@ -0,0 +1,77 @@
1
+ # Copyright (c) 2014 Cornelius Schumacher <schumacher@kde.org>
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
20
+
21
+ require_relative "../given_filesystem"
22
+
23
+ module GivenFilesystemSpecHelpers
24
+ def self.included(example_group)
25
+ example_group.extend(self)
26
+ end
27
+
28
+ def use_given_filesystem options = {}
29
+ before do
30
+ @__given_filesystem = GivenFilesystem.new
31
+ end
32
+
33
+ if !options[:keep_files]
34
+ after do
35
+ @__given_filesystem.cleanup
36
+ end
37
+ end
38
+ end
39
+
40
+ def given_directory directory_name = nil
41
+ check_initialization
42
+ if block_given?
43
+ path = @__given_filesystem.directory directory_name do
44
+ yield
45
+ end
46
+ else
47
+ path = @__given_filesystem.directory directory_name
48
+ end
49
+ path
50
+ end
51
+
52
+ def given_directory_from_data directory_name, options = {}
53
+ check_initialization
54
+ path = @__given_filesystem.directory_from_data directory_name, options[:from]
55
+ end
56
+
57
+ def given_file file_name, options = {}
58
+ check_initialization
59
+ if !options[:from]
60
+ options[:from] = file_name
61
+ end
62
+ @__given_filesystem.file file_name, options
63
+ end
64
+
65
+ def given_dummy_file file_name = nil
66
+ check_initialization
67
+ @__given_filesystem.file file_name
68
+ end
69
+
70
+ private
71
+
72
+ def check_initialization
73
+ if !@__given_filesystem
74
+ raise "Call use_given_filesystem before calling other methods"
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,110 @@
1
+ # Copyright (c) 2014 Cornelius Schumacher <schumacher@kde.org>
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
20
+
21
+ require "tmpdir"
22
+
23
+ class GivenFilesystem
24
+ def initialize
25
+ @path_elements = [ Dir.tmpdir, "given_filesystem" ]
26
+ @base_paths = Array.new
27
+ end
28
+
29
+ def cleanup
30
+ @base_paths.each do |base_path|
31
+ # Better safe than sorry, so do sanity check on path before removing it
32
+ if base_path =~ /given_filesystem/
33
+ FileUtils.rm_r base_path
34
+ end
35
+ end
36
+ end
37
+
38
+ def directory dir_name = nil
39
+ create_random_base_path unless path_has_base?
40
+
41
+ @path_elements.push dir_name || random_name
42
+
43
+ created_path = path
44
+ FileUtils.mkdir_p created_path
45
+ yield if block_given?
46
+ @path_elements.pop
47
+ created_path
48
+ end
49
+
50
+ def directory_from_data to, from = nil
51
+ from ||= to
52
+
53
+ create_random_base_path unless path_has_base?
54
+
55
+ FileUtils.mkdir_p path
56
+ @path_elements.push to
57
+ FileUtils.cp_r test_data_path(from), path
58
+ path
59
+ end
60
+
61
+ def file file_name = nil, options = {}
62
+ create_random_base_path unless path_has_base?
63
+
64
+ if file_name
65
+ @path_elements.push file_name
66
+ else
67
+ @path_elements.push random_name
68
+ end
69
+
70
+ FileUtils.mkdir_p File.dirname(path)
71
+
72
+ created_path = path
73
+ File.open(created_path,"w") do |file|
74
+ if options[:from]
75
+ test_data = test_data_path(options[:from])
76
+ if !File.exists? test_data
77
+ raise "Test data file '#{test_data}' doesn't exist"
78
+ end
79
+ file.write File.read(test_data)
80
+ else
81
+ file.puts "GivenFilesystem was here"
82
+ end
83
+ end
84
+ @path_elements.pop
85
+ created_path
86
+ end
87
+
88
+ private
89
+
90
+ def create_random_base_path
91
+ @path_elements.push random_name
92
+ @base_paths.push path
93
+ end
94
+
95
+ def random_name
96
+ "#{Process.pid}-#{Time.now.strftime("%Y%m%d")}-#{rand(99999).to_s}"
97
+ end
98
+
99
+ def path
100
+ @path_elements.join("/")
101
+ end
102
+
103
+ def path_has_base?
104
+ @path_elements.count > 2
105
+ end
106
+
107
+ def test_data_path name
108
+ File.expand_path('spec/data/' + name)
109
+ end
110
+ end
@@ -0,0 +1 @@
1
+ This is my test content.
@@ -0,0 +1 @@
1
+ I was here
@@ -0,0 +1,158 @@
1
+ require File.expand_path('../spec_helper', __FILE__)
2
+
3
+ describe GivenFilesystem do
4
+
5
+ before(:each) do
6
+ @given = GivenFilesystem.new
7
+ end
8
+
9
+ after(:each) do
10
+ @given.cleanup
11
+ end
12
+
13
+ it "creates directory" do
14
+ path = @given.directory
15
+ expect( File.exists? path ).to be_true
16
+ expect( File.directory? path ).to be_true
17
+ expect( path ).to match /tmp/
18
+ expect( path.split("/").length).to be > 3
19
+ end
20
+
21
+ it "creates nested unnamed directories" do
22
+ nested_path = nil
23
+ path = @given.directory do
24
+ nested_path = @given.directory
25
+ end
26
+ expect( File.exists? nested_path ).to be_true
27
+ expect( nested_path.split("/").count ).to eq path.split("/").count + 1
28
+ end
29
+
30
+ it "creates named directory" do
31
+ path = @given.directory "abc"
32
+ expect( File.exists? path ).to be_true
33
+ expect( path ).to match /tmp/
34
+ expect( path.split("/").length).to be > 4
35
+ expect( path ).to match /abc$/
36
+ end
37
+
38
+ it "creates named directory including path" do
39
+ path = @given.directory "abc"
40
+ deep_path = @given.directory "x/y/z"
41
+ expect( File.exists? deep_path ).to be_true
42
+ expect( File.directory? deep_path ).to be_true
43
+ expect( deep_path.split("/").count ).to eq path.split("/").count + 2
44
+ end
45
+
46
+ it "creates file" do
47
+ path = @given.file
48
+ expect( path ).to match /tmp/
49
+ expect( path.split("/").length).to be > 3
50
+ expect( File.exists? path ).to be_true
51
+ expect( File.directory? path ).to be_false
52
+ end
53
+
54
+ it "creates named file" do
55
+ path = @given.file "def"
56
+ expect( path ).to match /tmp/
57
+ expect( path.split("/").length).to be > 4
58
+ expect( path ).to match /def$/
59
+ end
60
+
61
+ it "creates named file including path" do
62
+ path = @given.file "def"
63
+ deep_path = @given.file "x/y/z"
64
+ expect( File.exists? deep_path ).to be_true
65
+ expect( File.directory? deep_path ).to be_false
66
+ expect( deep_path.split("/").count ).to eq path.split("/").count + 2
67
+ end
68
+
69
+ it "throws error on invalid test data file name" do
70
+ expect{@given.file "def", :from => "invalidname"}.to raise_error
71
+ end
72
+
73
+ it "creates file with content" do
74
+ path = @given.file "def", :from => "testcontent"
75
+ expect( path ).to match /tmp/
76
+ expect( path.split("/").length).to be > 4
77
+ expect( path ).to match /def$/
78
+ expect( File.read(path) ).to eq "This is my test content.\n"
79
+ end
80
+
81
+ it "creates directory tree" do
82
+ path = @given.directory do
83
+ @given.directory "one" do
84
+ @given.file "first"
85
+ end
86
+ @given.directory "two" do
87
+ @given.file "second"
88
+ @given.file "third"
89
+ end
90
+ end
91
+
92
+ expect( File.exists? path).to be_true
93
+ expect( File.directory? path).to be_true
94
+ expect( File.exists? File.join(path,"one")).to be_true
95
+ expect( File.exists? File.join(path,"one")).to be_true
96
+ expect( File.directory? File.join(path,"one")).to be_true
97
+ expect( File.directory? File.join(path,"two")).to be_true
98
+ expect( File.exists? File.join(path,"one","first")).to be_true
99
+ expect( File.exists? File.join(path,"two","second")).to be_true
100
+ expect( File.exists? File.join(path,"two","third")).to be_true
101
+ end
102
+
103
+ it "creates directory from data" do
104
+ path = @given.directory_from_data( "welcome" )
105
+ expect( path ).to match /\/welcome$/
106
+ expect( File.exists? path ).to be_true
107
+ expect( File.directory? path ).to be_true
108
+
109
+ expect( File.exist? File.join( path, "universe" ) ).to be_true
110
+ expect( File.directory? File.join( path, "universe" ) ).to be_false
111
+ expect( File.read( File.join( path, "universe" ) ) ).to eq "I was here\n"
112
+
113
+ expect( File.exist? File.join( path, "space" ) ).to be_true
114
+ expect( File.directory? File.join( path, "space" ) ).to be_true
115
+ end
116
+
117
+ it "creates directory from data under different name" do
118
+ path = @given.directory_from_data( "hi", "welcome" )
119
+ expect( path ).to match /\/hi$/
120
+ expect( File.exists? path ).to be_true
121
+ expect( File.directory? path ).to be_true
122
+
123
+ expect( File.exist? File.join( path, "universe" ) ).to be_true
124
+ expect( File.directory? File.join( path, "universe" ) ).to be_false
125
+ expect( File.read( File.join( path, "universe" ) ) ).to eq "I was here\n"
126
+
127
+ expect( File.exist? File.join( path, "space" ) ).to be_true
128
+ expect( File.directory? File.join( path, "space" ) ).to be_true
129
+ end
130
+
131
+ it "returns paths" do
132
+ path1 = @given.directory "one"
133
+ expect( path1 ).to match /^\/tmp\/given_filesystem\/[\d-]+\/one$/
134
+
135
+ path2 = @given.directory "two"
136
+ expect( path2 ).to match /^\/tmp\/given_filesystem\/[\d-]+\/two$/
137
+
138
+ path3 = @given.directory "three" do
139
+ @given.file "first"
140
+ end
141
+ expect( path3 ).to match /^\/tmp\/given_filesystem\/[\d-]+\/three$/
142
+ end
143
+
144
+ it "cleans up directory tree" do
145
+ given = GivenFilesystem.new
146
+ path1 = given.directory
147
+ path2 = given.directory
148
+
149
+ expect( File.exists? path1).to be_true
150
+ expect( File.exists? path2).to be_true
151
+
152
+ given.cleanup
153
+
154
+ expect( File.exists? path1).to be_false
155
+ expect( File.exists? path2).to be_false
156
+ end
157
+
158
+ end
@@ -0,0 +1,108 @@
1
+ require File.expand_path('../spec_helper', __FILE__)
2
+
3
+ describe GivenFilesystem do
4
+
5
+ include GivenFilesystemSpecHelpers
6
+
7
+ context "not initialized" do
8
+ describe "#given_directory" do
9
+ it "raises error" do
10
+ expect{ given_directory }.to raise_error /given_filesystem/
11
+ end
12
+ end
13
+
14
+ describe "#given_file" do
15
+ it "raises error" do
16
+ expect{ given_directory }.to raise_error /given_filesystem/
17
+ end
18
+ end
19
+ end
20
+
21
+ context "with keeping of files enabled" do
22
+ use_given_filesystem :keep_files => true
23
+
24
+ it "creates directories" do
25
+ path = given_directory "hello"
26
+ expect( File.exists? path ).to be_true
27
+
28
+ # Manually clean up, so test doesn't leave files around
29
+ @__given_filesystem.cleanup
30
+ end
31
+ end
32
+
33
+ context "using the module" do
34
+ use_given_filesystem
35
+
36
+ describe "#given_directory" do
37
+ it "creates unnamed directory" do
38
+ path = given_directory
39
+ expect( File.exists? path ).to be_true
40
+ expect( File.directory? path ).to be_true
41
+ end
42
+
43
+ it "creates directory" do
44
+ path = given_directory "hello"
45
+ expect( path ).to match /\/hello$/
46
+ end
47
+
48
+ it "creates nested directory" do
49
+ path = nil
50
+ given_directory "hello" do
51
+ path = given_directory "world"
52
+ end
53
+ expect( path ).to match /\/hello\/world$/
54
+ end
55
+ end
56
+
57
+ describe "#give_directory_from_data" do
58
+ it "creates directory with content from data" do
59
+ path = given_directory_from_data "welcome"
60
+ expect( path ).to match /\/welcome$/
61
+ end
62
+
63
+ it "creates directory with content from named data" do
64
+ path = given_directory_from_data "hi", :from => "welcome"
65
+ expect( path ).to match /\/hi$/
66
+ end
67
+ end
68
+
69
+ describe "#given_dummy_file" do
70
+ it "creates unnamed dummy file" do
71
+ path = given_dummy_file
72
+ expect( File.exists? path ).to be_true
73
+ expect( File.directory? path ).to be_false
74
+ end
75
+
76
+ it "creates named dummy file" do
77
+ path = given_dummy_file "welcome"
78
+ expect( path ).to match /\/welcome$/
79
+ expect( File.exists? path ).to be_true
80
+ expect( File.directory? path ).to be_false
81
+ end
82
+ end
83
+
84
+ describe "#given_file" do
85
+ it "creates file with content" do
86
+ path = given_file "testcontent"
87
+ expect( path ).to match /\/testcontent$/
88
+ expect( File.read( path ) ).to eq "This is my test content.\n"
89
+ end
90
+
91
+ it "creates file with content and given filename" do
92
+ path = given_file "welcome", :from => "testcontent"
93
+ expect( path ).to match /\/welcome$/
94
+ expect( File.read( path ) ).to eq "This is my test content.\n"
95
+ end
96
+
97
+ it "creates file in directory" do
98
+ path = nil
99
+ given_directory "hello" do
100
+ path = given_file "world", :from => "testcontent"
101
+ end
102
+ expect( File.exists? path ).to be_true
103
+ expect( File.read( path ) ).to eq "This is my test content.\n"
104
+ end
105
+ end
106
+ end
107
+
108
+ end
@@ -0,0 +1 @@
1
+ require_relative('../lib/given_filesystem/spec_helpers')
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: given_filesystem
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Cornelius Schumacher
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-04-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ description: GivenFilesystem is a set of helpers for testing code which operates on
31
+ file systems.
32
+ email:
33
+ - schumacher@kde.org
34
+ executables: []
35
+ extensions: []
36
+ extra_rdoc_files: []
37
+ files:
38
+ - .gitignore
39
+ - .rspec
40
+ - MIT-LICENSE
41
+ - README.md
42
+ - lib/given_filesystem.rb
43
+ - lib/given_filesystem/spec_helpers.rb
44
+ - spec/data/testcontent
45
+ - spec/data/welcome/universe
46
+ - spec/given_filesystem_spec.rb
47
+ - spec/given_filesystem_spec_helpers_spec.rb
48
+ - spec/spec_helper.rb
49
+ homepage: http://github.com/cornelius/given_filesystem
50
+ licenses:
51
+ - MIT
52
+ post_install_message:
53
+ rdoc_options: []
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ required_rubygems_version: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: 1.3.6
68
+ requirements: []
69
+ rubyforge_project: given_filesystem
70
+ rubygems_version: 1.8.23
71
+ signing_key:
72
+ specification_version: 3
73
+ summary: A library for setting up files as test data
74
+ test_files: []