Class: ComposableFixtures::FixtureDirectory
- Inherits:
-
Object
- Object
- ComposableFixtures::FixtureDirectory
show all
- Defined in:
- lib/composable_fixtures/fixture_directory.rb
Defined Under Namespace
Classes: DirectoryAlreadyExistsError, DirectoryDoesntExistError
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of FixtureDirectory.
9
10
11
|
# File 'lib/composable_fixtures/fixture_directory.rb', line 9
def initialize(name)
@dir = Dir.mktmpdir(name)
end
|
Class Method Details
.create(fixtures) ⇒ Object
35
36
37
38
39
40
|
# File 'lib/composable_fixtures/fixture_directory.rb', line 35
def self.create(fixtures)
key = repository_key(fixtures)
raise DirectoryAlreadyExistsError if @@repository.has_key?(key)
repository[key] = new(key)
end
|
.destroy_all ⇒ Object
42
43
44
45
46
|
# File 'lib/composable_fixtures/fixture_directory.rb', line 42
def self.destroy_all
repository.each do |key, dir|
dir.destroy
end
end
|
.get(fixtures) ⇒ Object
30
31
32
33
|
# File 'lib/composable_fixtures/fixture_directory.rb', line 30
def self.get(fixtures)
key = repository_key(fixtures)
repository.fetch(key, nil)
end
|
.repository ⇒ Object
52
53
54
|
# File 'lib/composable_fixtures/fixture_directory.rb', line 52
def self.repository
@@repository ||= {}
end
|
.repository_key(fixtures) ⇒ Object
48
49
50
|
# File 'lib/composable_fixtures/fixture_directory.rb', line 48
def self.repository_key(fixtures)
fixtures.join('-')
end
|
Instance Method Details
#destroy ⇒ Object
13
14
15
16
|
# File 'lib/composable_fixtures/fixture_directory.rb', line 13
def destroy
raise DirectoryDoesntExistError unless @dir
FileUtils.remove_entry @dir
end
|
#path ⇒ Object
26
27
28
|
# File 'lib/composable_fixtures/fixture_directory.rb', line 26
def path
@dir.to_s
end
|
#write(name_to_fixtures) ⇒ Object
18
19
20
21
22
23
24
|
# File 'lib/composable_fixtures/fixture_directory.rb', line 18
def write(name_to_fixtures)
name_to_fixtures.each do |(name, yaml)|
File.open(File.join(path, name), "w") do |f|
f.write yaml
end
end
end
|