Class: Schron::IdentityMap

Inherits:
Object
  • Object
show all
Defined in:
lib/schron/identity_map.rb

Instance Method Summary collapse

Constructor Details

#initializeIdentityMap

Returns a new instance of IdentityMap.



4
5
6
# File 'lib/schron/identity_map.rb', line 4

def initialize
  @data = {}
end

Instance Method Details

#clearObject



29
30
31
# File 'lib/schron/identity_map.rb', line 29

def clear
  @data = {}
end

#delete(id) ⇒ Object



25
26
27
# File 'lib/schron/identity_map.rb', line 25

def delete(id)
  @data.delete(id)
end

#fetch(id, &block) ⇒ Object



16
17
18
19
# File 'lib/schron/identity_map.rb', line 16

def fetch(id, &block)
  put(id, block.call) unless has?(id)
  get(id)
end

#get(id) ⇒ Object



12
13
14
# File 'lib/schron/identity_map.rb', line 12

def get(id)
  @data[id]
end

#has?(id) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/schron/identity_map.rb', line 21

def has?(id)
  @data.key?(id)
end

#put(id, object) ⇒ Object



8
9
10
# File 'lib/schron/identity_map.rb', line 8

def put(id, object)
  @data[id] = object
end