class ROM::Cache

Thread-safe cache used by various rom components

@api private

Attributes

objects[R]

Public Class Methods

new() click to toggle source

@api private

# File lib/rom/cache.rb, line 48
def initialize
  @objects = Concurrent::Map.new
  @namespaced = {}
end

Public Instance Methods

[](key) click to toggle source
# File lib/rom/cache.rb, line 53
def [](key)
  cache[key]
end
fetch_or_store(*args, &block) click to toggle source

@api private

# File lib/rom/cache.rb, line 58
def fetch_or_store(*args, &block)
  objects.fetch_or_store(args.hash, &block)
end
inspect() click to toggle source

@api private

# File lib/rom/cache.rb, line 73
def inspect
  %(#<#{self.class} size=#{size} namespaced=#{@namespaced.inspect}>)
end
namespaced(namespace) click to toggle source

@api private

# File lib/rom/cache.rb, line 68
def namespaced(namespace)
  @namespaced[namespace] ||= Namespaced.new(objects, namespace)
end
size() click to toggle source

@api private

# File lib/rom/cache.rb, line 63
def size
  objects.size
end