class Medo::FileTaskStorage
Public Class Methods
new(filename, reader_class = JsonTaskReader, writer_class = JsonTaskWriter)
click to toggle source
# File lib/medo/file_task_storage.rb, line 15 def initialize(filename, reader_class = JsonTaskReader, writer_class = JsonTaskWriter) @filename, @reader_class, @writer_class = filename, reader_class, writer_class FileUtils.touch(@filename) end
using_storage(filename) { |storage| ... }
click to toggle source
# File lib/medo/file_task_storage.rb, line 8 def self.using_storage(filename) storage = self.new(filename) yield storage ensure storage.dispose if storage end
Public Instance Methods
commit()
click to toggle source
# File lib/medo/file_task_storage.rb, line 38 def commit FileUtils.cp(tempfile.path, @filename) end
dispose()
click to toggle source
# File lib/medo/file_task_storage.rb, line 42 def dispose tempfile.unlink end
read()
click to toggle source
# File lib/medo/file_task_storage.rb, line 20 def read begin File.open(@filename, "rb") do |f| @reader_class.new(f).read end rescue => e [] end end
write(tasks)
click to toggle source
# File lib/medo/file_task_storage.rb, line 30 def write(tasks) serializer = @writer_class.new(tempfile) serializer.add_tasks(tasks) serializer.write ensure tempfile.close end
Private Instance Methods
tempfile()
click to toggle source
# File lib/medo/file_task_storage.rb, line 48 def tempfile @tempfile ||= Tempfile.new(File.basename(@filename)) end