Class: Medo::FileTaskStorage
- Inherits:
-
Object
- Object
- Medo::FileTaskStorage
- Defined in:
- lib/medo/file_task_storage.rb
Class Method Summary collapse
Instance Method Summary collapse
- #commit ⇒ Object
- #dispose ⇒ Object
-
#initialize(filename, reader_class = JsonTaskReader, writer_class = JsonTaskWriter) ⇒ FileTaskStorage
constructor
A new instance of FileTaskStorage.
- #read ⇒ Object
- #write(tasks) ⇒ Object
Constructor Details
#initialize(filename, reader_class = JsonTaskReader, writer_class = JsonTaskWriter) ⇒ FileTaskStorage
Returns a new instance of FileTaskStorage.
15 16 17 18 |
# 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 |
Class Method Details
.using_storage(filename) ⇒ Object
8 9 10 11 12 13 |
# 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 |
Instance Method Details
#commit ⇒ Object
38 39 40 |
# File 'lib/medo/file_task_storage.rb', line 38 def commit FileUtils.cp(tempfile.path, @filename) end |
#dispose ⇒ Object
42 43 44 |
# File 'lib/medo/file_task_storage.rb', line 42 def dispose tempfile.unlink end |
#read ⇒ Object
20 21 22 23 24 25 26 27 28 |
# 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) ⇒ Object
30 31 32 33 34 35 36 |
# 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 |