Class: Waves::Caches::File
Instance Method Summary collapse
- #clear ⇒ Object
- #delete(key) ⇒ Object
- #fetch(key) ⇒ Object
-
#initialize(args) ⇒ File
constructor
A new instance of File.
- #store(key, value) ⇒ Object
Methods inherited from Simple
Constructor Details
#initialize(args) ⇒ File
Returns a new instance of File.
8 9 10 11 |
# File 'lib/caches/file.rb', line 8 def initialize( args ) raise ArgumentError, ":directory is nil" if args[ :directory ].nil? @directory = args[ :directory ] ; @keys = [] end |
Instance Method Details
#clear ⇒ Object
25 26 27 |
# File 'lib/caches/file.rb', line 25 def clear @keys.each { |key| delete( key ) } end |
#delete(key) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/caches/file.rb', line 18 def delete( key ) if @keys.include? key ::File.delete( @directory / key ) @keys.delete( key ) end end |
#fetch(key) ⇒ Object
29 30 31 32 33 |
# File 'lib/caches/file.rb', line 29 def fetch( key ) Marshal.load( ::File.read( @directory / key ) ) if @keys.include?( key ) rescue ArgumentError nil end |
#store(key, value) ⇒ Object
13 14 15 16 |
# File 'lib/caches/file.rb', line 13 def store( key, value ) @keys << key ::File.open( @directory / key, 'w') { |f| Marshal.dump( value, f ) } end |