Class: MidwireCommon::DataFileCache

Inherits:
Object
  • Object
show all
Defined in:
lib/midwire_common/data_file_cache.rb

Overview

A simple class to cache data in a file

Instance Method Summary collapse

Constructor Details

#initialize(filename) ⇒ DataFileCache

Returns a new instance of DataFileCache.



4
5
6
7
8
# File 'lib/midwire_common/data_file_cache.rb', line 4

def initialize(filename)
  @cache_dir  = File.dirname(filename)
  @cache_file = normalize_filename(filename)
  ensure_cache_dir
end

Instance Method Details

#ageObject



20
21
22
23
# File 'lib/midwire_common/data_file_cache.rb', line 20

def age
  return 999_999_99.0 unless File.exist?(@cache_file)
  (Time.now - File.ctime(@cache_file)).to_f
end

#getObject



16
17
18
# File 'lib/midwire_common/data_file_cache.rb', line 16

def get
  File.read(@cache_file)
end

#put(data) ⇒ Object



10
11
12
13
14
# File 'lib/midwire_common/data_file_cache.rb', line 10

def put(data)
  newdata = data.dup
  newdata = newdata.join("\n") if newdata.is_a? Array
  File.open(@cache_file, 'w') { |file| file.write(newdata) }
end