Class: Plangrade::Resources::IdentityMap

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

Defined Under Namespace

Classes: InvalidKeyError

Instance Method Summary collapse

Constructor Details

#initializeIdentityMap

Returns a new instance of IdentityMap.



7
8
9
10
# File 'lib/plangrade/resources/identity_map.rb', line 7

def initialize
  @map  = {}
  @size = 0
end

Instance Method Details

#get(key, default = nil) ⇒ Hash

Note:

retrives key from identity map

Parameters:

  • key (string)
  • default (Hash) (defaults to: nil)

Returns:

  • (Hash)


16
17
18
# File 'lib/plangrade/resources/identity_map.rb', line 16

def get(key, default=nil)
  @map["#{key}"] || default
end

#purge!Hash

clears the entire identity map

Returns:

  • (Hash)


39
40
41
# File 'lib/plangrade/resources/identity_map.rb', line 39

def purge!
  @map = {}
end

#put(key, value) ⇒ Hash

Note:

inserts a hash of attributes into identity map

Parameters:

  • key (string)
  • value (Hash)

Returns:

  • (Hash)


24
25
26
27
28
29
# File 'lib/plangrade/resources/identity_map.rb', line 24

def put(key, value)
  if key.nil? || key.empty?
    raise InvalidKeyError.new
  end
  @map["#{key}"] = value
end

#sizeInteger

Note:

returns the current size of identity map

Returns:

  • (Integer)


33
34
35
# File 'lib/plangrade/resources/identity_map.rb', line 33

def size
  @map.keys.count
end