Class: Graphiti::Util::PublicIdMap

Inherits:
Object
  • Object
show all
Defined in:
lib/graphiti/util/public_id_map.rb

Instance Method Summary collapse

Constructor Details

#initialize(resource_class, filter_name) ⇒ PublicIdMap

Returns a new instance of PublicIdMap.



4
5
6
7
8
9
# File 'lib/graphiti/util/public_id_map.rb', line 4

def initialize(resource_class, filter_name)
  @resource_class = resource_class
  @filter_name = filter_name
  @pending = Concurrent::Map.new
  @resolved = {}
end

Instance Method Details

#[](primary_key) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/graphiti/util/public_id_map.rb', line 15

def [](primary_key)
  return if primary_key.nil?

  resolve(@pending.keys) unless @pending.empty?
  resolve([primary_key]) unless @resolved.key?(primary_key)
  @resolved[primary_key]
end

#add(primary_keys) ⇒ Object



11
12
13
# File 'lib/graphiti/util/public_id_map.rb', line 11

def add(primary_keys)
  primary_keys.each { |key| @pending[key] = true unless @resolved.key?(key) }
end