Class: Cassie::Statements::Statement::Preparation::Cache

Inherits:
Object
  • Object
show all
Defined in:
lib/cassie/statements/statement/preparation/cache.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCache

Returns a new instance of Cache.



6
7
8
9
# File 'lib/cassie/statements/statement/preparation/cache.rb', line 6

def initialize
  clear
  @monitor = Monitor.new
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



4
5
6
# File 'lib/cassie/statements/statement/preparation/cache.rb', line 4

def data
  @data
end

Instance Method Details

#clearObject



25
26
27
# File 'lib/cassie/statements/statement/preparation/cache.rb', line 25

def clear
  @data = {}
end

#closeObject



28
29
30
# File 'lib/cassie/statements/statement/preparation/cache.rb', line 28

def close
  clear
end

#fetch(key) ⇒ Object



21
22
23
24
# File 'lib/cassie/statements/statement/preparation/cache.rb', line 21

def fetch(key)
  return read(key) if data.has_key?(key)
  write(key, yield) if block_given?
end

#read(key) ⇒ Object



16
17
18
19
20
# File 'lib/cassie/statements/statement/preparation/cache.rb', line 16

def read(key)
  synchronize do
    data[key]
  end
end

#write(key, value) ⇒ Object



11
12
13
14
15
# File 'lib/cassie/statements/statement/preparation/cache.rb', line 11

def write(key, value)
  synchronize do
    @data[key] = value
  end
end