summaryrefslogtreecommitdiff
path: root/lib/humble/identity_map.rb
blob: b19db43e0a2d51d713bd84e1a4d4bdd4bb2528f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class IdentityMap
  def initialize(items = {})
    @items = items
  end

  def fetch(key, &block)
    if @items.key?(key)
      @items[key]
    else
      @items[key] = block.call
      @items[key]
    end
  end
end