Class: Rembrandt::Stores::File

Inherits:
Object
  • Object
show all
Includes:
Fetchable
Defined in:
lib/rembrandt/stores/file.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Fetchable

#fetch, #key_for

Constructor Details

#initialize(directory = nil) ⇒ File

Returns a new instance of File.



11
12
13
14
# File 'lib/rembrandt/stores/file.rb', line 11

def initialize(directory = nil)
  self.output_directory = directory || Config.file_store_directory
  create_directory
end

Instance Attribute Details

#output_directoryObject

Returns the value of attribute output_directory.



9
10
11
# File 'lib/rembrandt/stores/file.rb', line 9

def output_directory
  @output_directory
end

Instance Method Details

#create_directoryObject



21
22
23
# File 'lib/rembrandt/stores/file.rb', line 21

def create_directory
  FileUtils.mkdir_p output_directory
end

#filename_for(key) ⇒ Object



38
39
40
# File 'lib/rembrandt/stores/file.rb', line 38

def filename_for(key)
  output_directory + prefix + key
end

#flushObject



46
47
48
# File 'lib/rembrandt/stores/file.rb', line 46

def flush
  `rm -rf #{output_directory}/*` if Dir.exist?(output_directory)
end

#prefixObject



42
43
44
# File 'lib/rembrandt/stores/file.rb', line 42

def prefix
  'rembrandt_'
end

#read(key) ⇒ Object



31
32
33
34
35
36
# File 'lib/rembrandt/stores/file.rb', line 31

def read(key)
  filename = filename_for(key)
  if ::File.exist?(filename)
    ::File.read(filename_for(key))
  end
end

#write(key, data) ⇒ Object



25
26
27
28
29
# File 'lib/rembrandt/stores/file.rb', line 25

def write(key, data)
  ::File.open( filename_for(key), "w" ) do |f|
    f.write(data)
  end
end