class FreezingEmail::Storage

Public Class Methods

cleanup(mask = "") click to toggle source
# File lib/freezing_email/storage.rb, line 3
def cleanup(mask = "")
  FileUtils.rm_rf(files_list(mask))
end
dir() click to toggle source
# File lib/freezing_email/storage.rb, line 28
def dir
  dir = FreezingEmail::Config[:store_path]

  if defined?(Rails)
    dir = Rails.root.join(dir)
  end

  Dir.mkdir(dir) unless Dir.exists?(dir)

  dir
end
index() click to toggle source
# File lib/freezing_email/storage.rb, line 7
def index
  emails = []

  files_list.each do |file|
    emails << load(file)
  end

  emails
end
load(name) click to toggle source
# File lib/freezing_email/storage.rb, line 21
def load(name)
  file_name = expand_name(name)
  if File.exists?(file_name)
    YAML::load(IO.read(file_name))
  end
end
save(name, object) click to toggle source
# File lib/freezing_email/storage.rb, line 17
def save(name, object)
  File.open(expand_name(name), 'w') { |f| f.puts YAML::dump(object) }
end

Private Class Methods

expand_name(name) click to toggle source
# File lib/freezing_email/storage.rb, line 46
def expand_name(name)
  name = File.join(dir, "#{File.basename(name)}")
  name = "#{name}.yml" unless File.extname(name) == ".yml"
  name
end
files_list(mask = "") click to toggle source
# File lib/freezing_email/storage.rb, line 42
def files_list(mask = "")
  Dir.glob(File.join(dir, "#{mask}*.yml"))
end