Class: Smith::Cache

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/smith/cache.rb

Instance Method Summary collapse

Constructor Details

#initializeCache

Returns a new instance of Cache.



7
8
9
# File 'lib/smith/cache.rb', line 7

def initialize
  @cache = {}
end

Instance Method Details

#delete(name) ⇒ Object



49
50
51
# File 'lib/smith/cache.rb', line 49

def delete(name)
  @cache.delete(name)
end

#eachObject



37
38
39
# File 'lib/smith/cache.rb', line 37

def each
  @cache.each_value { |v| yield v }
end

#empty?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/smith/cache.rb', line 41

def empty?
  @cache.empty?
end

#entriesObject



29
30
31
# File 'lib/smith/cache.rb', line 29

def entries
  @cache.keys.map(&:to_s)
end

#entry(name, options = nil) ⇒ Object Also known as: []



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/smith/cache.rb', line 15

def entry(name, options=nil)
  if @cache[name]
    @cache[name]
  else
    if @operator.respond_to?(:call)
      @cache[name] = @operator.call(name, options)
    else
      nil
    end
  end
end

#exist?(name) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/smith/cache.rb', line 45

def exist?(name)
  !@cache[name].nil?
end

#invalidate(name) ⇒ Object



33
34
35
# File 'lib/smith/cache.rb', line 33

def invalidate(name)
  @cache.delete(name)
end

#operator(operator) ⇒ Object



11
12
13
# File 'lib/smith/cache.rb', line 11

def operator(operator)
  @operator = operator
end

#sizeObject



53
54
55
# File 'lib/smith/cache.rb', line 53

def size
  @cache.size
end

#to_sObject



57
58
59
# File 'lib/smith/cache.rb', line 57

def to_s
  @cache.to_s
end

#update(name, entry) ⇒ Object



61
62
63
# File 'lib/smith/cache.rb', line 61

def update(name, entry)
  @cache[name] = entry
end